Quickstart
disburse turns one plain-English query into a ranked, structured list of the companies and people that fit, over a REST API or straight into your agent via MCP. This page gets you your first result in about a minute.
1. Get an API key
Create a key in the dashboard. Keys look like sk_live_…, or sk_test_… if you pick the test environment when creating one. Both are metered the same way; the prefix is what tells them apart in a log.
Treat it like a password; it authenticates every request and is metered against
your plan.
2. Make a request
Every endpoint is a POST under /v1, authenticated with a bearer token. The
base URL is your deployment (e.g. https://api.disburse.dev).
curl https://api.disburse.dev/v1/search/people \
-H "Authorization: Bearer sk_live_your_key" \
-H "Content-Type: application/json" \
-d '{"query": "heads of growth at Series B fintechs in Australia", "limit": 5}'You can also skip the natural-language parser and pass structured filters
directly:
curl https://api.disburse.dev/v1/search/companies \
-H "Authorization: Bearer sk_live_your_key" \
-H "Content-Type: application/json" \
-d '{"filters": {"location": {"country": "AU"}, "industry": ["software development"]}, "limit": 5}'Need a whole list, not a page? Pass count and the server handles pagination,
deduplication and quality filtering in one call — the response includes a
summary saying exactly what came back and why it stopped:
curl https://api.disburse.dev/v1/search/people \
-H "Authorization: Bearer sk_live_your_key" \
-H "Content-Type: application/json" \
-d '{"query": "founders in Australia", "count": 200}'3. Read the response
{
"interpreted_text": "People with a job title like head of growth, in the fintech industry, located in AU.",
"interpreted": { "entity": "person", "filters": { "title": ["head of growth"], "industry": ["fintech"], "location": { "country": "AU" } }, "limit": 5 },
"results": [
{ "id": "pv1:l:ada-lovelace", "name": "Ada Lovelace", "title": "Head of Growth", "company_name": "Acme", "company_domain": "acme.com", "email": "ada@acme.com", "email_status": "valid" }
],
"total": 128,
"strong_matches": 41,
"relaxed": [],
"next_cursor": "eyJ…"
}interpreted_text/interpreted: how your query was understood, in a sentence and as the structured query it compiled to.results: the matched records; ids are stable and safe to store.total: matches for the structured filters. On keyword searchesstrong_matchescounts the rows that clearly match the words: quote that one for "how many".relaxed: anything the engine changed to answer (a value it did not recognise, an employer it could not resolve). Empty means the query ran exactly as written.next_cursor: pass it back ascursorto page;nullwhen there are no more. For a whole list, prefercount.
Next steps
- Authentication: keys, headers, and errors.
- Rate limits: how fast you can call.
- MCP connect: use disburse as a tool inside Claude and other agents.
- API reference: every endpoint, parameter, and response.
Stuck? Email support@disburse.dev with the
X-Request-ID of the call that surprised you, and a founder will look at the
log behind it.