Skip to content
ProspectAPIs

Docs

Quickstart

Written and maintained by The ProspectAPIs team

ProspectAPIs is a REST API at https://api.prospectapis.com. One key reaches both products: funding signals and prospect research. Requests and responses are JSON.

Per our API reference, the public API serves 13 endpoints under /v1, and 9 of them never cost a credit.

New to account research? Our guide to sales prospect research covers what to look up before a first message; the funding and research APIs below do those lookups for you.

1. Get a key

Create an account, open API keys and create one. Keys look like pa_live_ followed by 48 hex characters. The full key is shown once, when you create it; we store only a hash. An account can hold up to 25 active keys.

shell
export PROSPECTAPIS_KEY="pa_live_..."

2. Check the account

GET /v1/account is free. It returns your credit balance, the free records left this month and the current prices.

bash
curl https://api.prospectapis.com/v1/account \
  -H "Authorization: Bearer $PROSPECTAPIS_KEY"
200 OK
{
  "credits_remaining": 25,
  "free_records_remaining": 100,
  "free_records_per_month": 100,
  "free_period_start": "2026-10-01",
  "price_per_record_usd": 0.02,
  "research_price_usd": 0.15
}

3. Search funding rounds

Newest announcement first, 25 records a page by default. You pay $0.02 per record returned after 100 free a month, and a search that matches nothing is free. Every filter.

bash
curl -G https://api.prospectapis.com/v1/funding \
  -H "Authorization: Bearer $PROSPECTAPIS_KEY" \
  --data-urlencode "round=seed,series_a" \
  --data-urlencode "since=2026-09-01" \
  --data-urlencode "limit=10"

Read one record by its id:

bash
curl https://api.prospectapis.com/v1/funding/$FUNDING_ID \
  -H "Authorization: Bearer $PROSPECTAPIS_KEY"

4. Get new rounds pushed to you

A watchlist saves funding filters and an https webhook. Each new matching round is POSTed to it, signed, and costs $0.02 only when your webhook answers 2xx. Signatures, retries and limits.

bash
curl -X POST https://api.prospectapis.com/v1/watchlists \
  -H "Authorization: Bearer $PROSPECTAPIS_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name": "Seed rounds in Germany",
       "filters": {"round": "seed", "country": "Germany"},
       "webhook_url": "https://hooks.example.com/funding"}'

5. Research a prospect

Submit one identifier and, optionally, your own product as context. The API answers 202 with a research_id at once; the brief takes 20 to 90 seconds. The full contract.

bash
curl -X POST https://api.prospectapis.com/v1/research \
  -H "Authorization: Bearer $PROSPECTAPIS_KEY" \
  -H "Content-Type: application/json" \
  -d '{"domain": "acme.com", "purpose": "outreach",
       "context": "We sell route planning software for 3PLs"}'
202 Accepted
{ "research_id": "7f3c2a90-...", "status": "queued", "estimated_seconds": 60 }

Poll every 10 to 15 seconds until the status is completed or failed. Polling is free.

bash
curl https://api.prospectapis.com/v1/research/$RESEARCH_ID \
  -H "Authorization: Bearer $PROSPECTAPIS_KEY"

Authentication

Send the key in the Authorization header as a Bearer token on every /v1 request except GET /v1/version. Keep keys on the server or in your agent's environment; never ship one in a browser bundle. Revoke a leaked key from the dashboard and it stops working at once.

header
Authorization: Bearer $PROSPECTAPIS_KEY

Endpoints

MethodPathCost
GET/v1/funding$0.02 per record, after 100 free a month
GET/v1/funding/:id$0.02 when found, free on 404
POST/v1/research$0.15 per completed brief, refunded on failure
GET/v1/research/:idfree, owner only
POST/v1/watchlistsfree; $0.02 per delivered record
GET/v1/watchlistsfree
GET/v1/watchlists/:idfree
DELETE/v1/watchlists/:idfree
POST/v1/watchlists/:id/testfree, 5 a minute per account
GET/v1/watchlists/:id/deliveriesfree
GET/v1/accountfree
POST/v1/feedbackfree, 10 an hour
GET/v1/versionfree, no key

Two more answer at the API root, free and without a key. GET /pricing returns the live price list (funding records, research, watchlist deliveries) that this site renders its prices from. GET /health is the liveness check for uptime monitors; it answers "status": "ok" while the API is serving.

Errors

Every error is JSON with an error string, and sometimes a code, field or message. Unknown parameters are refused rather than ignored, so a typo never silently widens a search you pay for.

StatusMeaning
400Bad input: an unknown query parameter or body field, a malformed id or date, or more than one research identifier. The body names the problem.
401Missing or invalid API key. Send Authorization: Bearer pa_live_...
402Not enough credits for this call. The body carries top_up_url; nothing was charged.
404No record or research job with that id, or a job that belongs to another account. Never charged.
405HEAD on a /v1 data route. Use GET.
429Rate limit reached. Wait for the window to pass, then retry; do not retry in a tight loop.
502Feedback only: the report could not be delivered. Retry shortly.
503A dependency is unavailable (authentication, or a route that is not launched yet, such as research in early access). Retry later.
504The request ran past its deadline (45 seconds by default). Not charged.
402 Payment Required
{
  "error": "Insufficient credits",
  "top_up_url": "https://prospectapis.com/dashboard/credits",
  "message": "Out of credits and free records for this month. Top up at https://prospectapis.com/dashboard/credits to continue."
}

Rate limits

/v1 allows 60 requests a minute per API key by default. POST /v1/feedback also allows 10 delivered reports an hour per account. Responses carry the standard RateLimit headers; on a 429, wait for the window to reset.

Billing headers

Every response carries X-API-Version. Metered responses also carry your balance after the call, so a client can track spend without a second request.

HeaderMeaning
X-API-VersionThe API version that served the request.
X-Credits-RemainingCredit balance in dollars after this call.
X-Free-Records-RemainingFree funding records left this month. Not sent on research, which has no free allowance.

Billing reserves before it serves. A request holds the records it may return (free records first), the page is capped to that hold, and anything unserved is refunded when the response closes. A non-2xx response refunds the whole hold, and a request past its deadline is not charged.

Feedback

Found a wrong field or a missing capability? Send it from your code or agent. It is free and goes straight to the team. kind is bug (default), feature or question; never put secrets or keys in details.

bash
curl -X POST https://api.prospectapis.com/v1/feedback \
  -H "Authorization: Bearer $PROSPECTAPIS_KEY" \
  -H "Content-Type: application/json" \
  -d '{"kind": "bug", "title": "country filter ignores accents",
       "details": "GET /v1/funding?country=Curaçao returned 0; expected 2"}'
202 Accepted
{ "feedback_id": "...", "status": "sent" }

Every change to the API and the MCP server is dated on the changelog, and the about page explains where the funding data comes from and how each record keeps its source.