Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/prospectapis:prospectapis-funding-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: ProspectAPIs Funding API
summary: Funding signals and cited prospect research over one REST API.
description: 'The REST contract for ProspectAPIs: funding rounds you can filter and page, cited prospect research briefs, and funding watchlists that push new matches to a webhook. Built for sales teams and the AI agents that work for them.
Authentication is a bearer API key (`Authorization: Bearer pa_live_`), created in the dashboard. `GET /pricing`, `GET /health` and `GET /v1/version` need no key.
Every account starts with a one-time free balance (`signup_credit_usd` in `GET /pricing`), and every paid call draws from it at its own price: `GET /v1/funding` per returned record (a no-match is free), `POST /v1/email/verify` per valid or invalid result, `POST /v1/research` per completed brief. Paid responses carry `X-Credits-Remaining`. The live price list is `GET /pricing`; a key''s balance is `GET /v1/account`. This document describes shapes, not prices.'
version: 0.1.0
contact:
name: ProspectAPIs
url: https://prospectapis.com
email: emma@prospectapis.com
license:
name: Proprietary
url: https://prospectapis.com/terms
termsOfService: https://prospectapis.com/terms
servers:
- url: https://api.prospectapis.com
description: Production
security:
- bearerAuth: []
tags:
- name: Funding
description: Search and read funding rounds.
paths:
/v1/funding:
get:
tags:
- Funding
summary: Search funding rounds
description: 'Keyset-paginated funding rounds, newest first. Costs one record per record returned, drawn from the balance; a search that matches nothing is free. Pass `next_cursor` back as `cursor` for the next page. If the balance ends a page early the response carries `X-Result-Capped: balance` and `next_cursor` still continues exactly after the last record served. Price: $0.009 per record returned; a search that matches nothing is free. Coverage: funding rounds are complete from 2026-10-01, partial from 2026-09-22 to 2026-09-30, and only a few earlier rounds are held, so a company whose last round was before that returns none, and an empty answer carries a `coverage` object saying so.'
operationId: searchFunding
parameters:
- $ref: '#/components/parameters/since'
- $ref: '#/components/parameters/until'
- $ref: '#/components/parameters/round'
- $ref: '#/components/parameters/min_amount_usd'
- $ref: '#/components/parameters/max_amount_usd'
- $ref: '#/components/parameters/company'
- $ref: '#/components/parameters/domain'
- $ref: '#/components/parameters/investor'
- $ref: '#/components/parameters/country'
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/cursor'
responses:
'200':
description: A page of funding rounds.
headers:
X-Credits-Remaining:
$ref: '#/components/headers/X-Credits-Remaining'
X-Free-Records-Remaining:
$ref: '#/components/headers/X-Free-Records-Remaining'
X-Result-Capped:
description: Present and set to `balance` when the page was shortened to what the balance pays for. The data has more rows; pass `next_cursor` to continue.
schema:
type: string
enum:
- balance
RateLimit-Limit:
$ref: '#/components/headers/RateLimit-Limit'
RateLimit-Remaining:
$ref: '#/components/headers/RateLimit-Remaining'
RateLimit-Reset:
$ref: '#/components/headers/RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/FundingList'
example:
data:
- id: 6f0c2b1e-7a1d-4c55-9a3e-1b2c3d4e5f60
company_name: Acme
announced_at: '2026-11-01'
next_cursor: next cursor
count: 1
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'402':
$ref: '#/components/responses/PaymentRequired'
'429':
$ref: '#/components/responses/RateLimited'
x-price-usd: 0.009
x-agentic-access:
action-class: connected
consequence: read-billed
subject: optional
token:
max-ttl: 3600
audit: billing-ledger
/v1/funding/{id}:
get:
tags:
- Funding
summary: Read one funding round
description: 'One funding round by id. Costs one record when found; a 404 is free. Price: $0.009 per record returned; a 404 is free.'
operationId: getFunding
parameters:
- $ref: '#/components/parameters/id'
responses:
'200':
description: The funding round.
headers:
X-Credits-Remaining:
$ref: '#/components/headers/X-Credits-Remaining'
X-Free-Records-Remaining:
$ref: '#/components/headers/X-Free-Records-Remaining'
RateLimit-Limit:
$ref: '#/components/headers/RateLimit-Limit'
RateLimit-Remaining:
$ref: '#/components/headers/RateLimit-Remaining'
RateLimit-Reset:
$ref: '#/components/headers/RateLimit-Reset'
content:
application/json:
schema:
type: object
required:
- data
properties:
data:
$ref: '#/components/schemas/FundingRecord'
example:
data:
id: 6f0c2b1e-7a1d-4c55-9a3e-1b2c3d4e5f60
company_name: Acme
announced_at: '2026-11-01'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'402':
$ref: '#/components/responses/PaymentRequired'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/RateLimited'
x-price-usd: 0.009
x-agentic-access:
action-class: connected
consequence: read-billed
subject: optional
token:
max-ttl: 3600
audit: billing-ledger
components:
responses:
Unauthorized:
description: The API key is missing or invalid.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
BadRequest:
description: The request was invalid (e.g. a bad filter or input); nothing was charged.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
RateLimited:
description: Too many requests; retry after the window.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
PaymentRequired:
description: Out of credits. The body carries `top_up_url`; nothing was charged.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
NotFound:
description: No such record for this account.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
parameters:
country:
name: country
in: query
description: Headquarters country. A country name or any two-letter ISO 3166-1 code (United States, US, Germany, DE) matches country_code exactly; any other text, such as a city, matches the stated place (the record's location), case-insensitive.
schema:
type: string
maxLength: 60
cursor:
name: cursor
in: query
description: The previous page's `next_cursor`, passed back unchanged.
schema:
type: string
company:
name: company
in: query
description: Case-insensitive substring match on the company name (1 to 100 characters).
schema:
type: string
maxLength: 100
until:
name: until
in: query
description: Only rounds announced on or before this date (inclusive), YYYY-MM-DD.
schema:
type: string
format: date
id:
name: id
in: path
required: true
description: A UUID.
schema:
type: string
format: uuid
example: 3f6c1d2e-8b4a-4f7e-9c21-5a0d7e9b4c13
limit:
name: limit
in: query
description: Page size, 1 to 100 (default 25).
schema:
type: integer
minimum: 1
maximum: 100
default: 25
example: 10
domain:
name: domain
in: query
description: Exact company domain, a bare domain such as `example.com`.
schema:
type: string
example: example.com
round:
name: round
in: query
description: One or more round stages, comma-separated (1 to 20), such as `seed,series_a`.
schema:
type: string
example: seed,series_a
min_amount_usd:
name: min_amount_usd
in: query
description: Only rounds of at least this USD amount.
schema:
type: number
minimum: 0
investor:
name: investor
in: query
description: Rounds that include this investor (exact, case-insensitive).
schema:
type: string
maxLength: 100
since:
name: since
in: query
description: Only rounds announced on or after this date (inclusive), YYYY-MM-DD.
schema:
type: string
format: date
example: '2026-10-01'
max_amount_usd:
name: max_amount_usd
in: query
description: Only rounds of at most this USD amount.
schema:
type: number
minimum: 0
headers:
RateLimit-Limit:
description: Requests this API key may make per minute.
schema:
type: integer
RateLimit-Reset:
description: Seconds until the current window resets.
schema:
type: integer
X-Credits-Remaining:
description: USD credits left after this call settles.
schema:
type: string
RateLimit-Remaining:
description: Requests left in the current one-minute window.
schema:
type: integer
X-Free-Records-Remaining:
description: Kept for older clients. Always 0 since 2026-10-25, when a one-time signup balance replaced the monthly free records.
schema:
type: string
schemas:
FundingList:
type: object
required:
- data
- count
- next_cursor
properties:
data:
type: array
items:
$ref: '#/components/schemas/FundingRecord'
next_cursor:
type:
- string
- 'null'
description: Pass back as `cursor` for the next page; null on the last page.
count:
type: integer
description: How many records this page holds.
coverage:
type: object
description: 'Present only when the page holds no records: the window of funding rounds the data covers, so an empty answer is explained.'
properties:
complete_from:
type: string
format: date
description: Rounds announced on or after this date are complete.
partial:
type: array
description: Windows where only some rounds are held.
items:
type: object
properties:
from:
type: string
format: date
to:
type: string
format: date
required:
- from
- to
note:
type: string
description: The coverage in one sentence.
required:
- complete_from
- partial
- note
FundingRecord:
type: object
description: A single funding round. Fields that are unknown for a round are null.
required:
- id
- company_name
- announced_at
properties:
id:
type: string
format: uuid
company_name:
type: string
company_domain:
type:
- string
- 'null'
event_class:
type:
- string
- 'null'
description: The kind of event, e.g. a funding round.
round_label:
type:
- string
- 'null'
description: The human round label, e.g. "Series A".
round_stage:
type:
- string
- 'null'
description: The normalised round stage, e.g. "series_a" (the value `round` filters on).
amount_usd:
type:
- number
- 'null'
description: The round size in USD, when known.
amount_original:
type:
- number
- 'null'
description: The round size in its original currency, when it was not USD.
currency:
type:
- string
- 'null'
description: The original currency code for amount_original.
announced_at:
type: string
format: date
description: The announcement date (the sort key).
investors:
type:
- array
- 'null'
items:
type: string
lead_investors:
type:
- array
- 'null'
items:
type: string
location:
type:
- string
- 'null'
description: The headquarters place as the source states it, often a city, a state or a fragment. Null when no place was stated.
country:
type:
- string
- 'null'
description: The headquarters country name, such as United States, derived from country_code. Null when country_code is null.
country_code:
type:
- string
- 'null'
pattern: ^[A-Z]{2}$
description: The headquarters country as an ISO 3166-1 alpha-2 code, such as US. Null when the location is unknown, ambiguous or names two countries.
source_url:
type:
- string
- 'null'
format: uri
description: The public announcement a buyer verifies against.
attributes:
type:
- object
- 'null'
description: Extra, source-dependent fields.
additionalProperties: true
updated_at:
type:
- string
- 'null'
format: date-time
Error:
type: object
required:
- error
description: Every error answers with this shape. `error` is a human-readable message; `code` is a stable machine code when present.
properties:
error:
type: string
code:
type: string
description: A stable error code, e.g. INVALID_FILTER, INVALID_INPUT, INVALID_ID, NOT_FOUND, INSUFFICIENT_CREDITS, WATCHLIST_LIMIT, RATE_LIMITED.
message:
type: string
description: Extra guidance on some errors (401, 402).
field:
type: string
description: The offending field, on some 400s.
top_up_url:
type: string
format: uri
description: Where to add credits, on a 402.
additionalProperties: true
securitySchemes:
bearerAuth:
type: http
scheme: bearer
description: 'Your API key as a bearer token: `Authorization: Bearer pa_live_<48 hex>`. Create and manage keys in the dashboard at https://prospectapis.com.'
externalDocs:
description: API reference and quickstart
url: https://prospectapis.com/docs