Prospects API

Search the contact databases connected to your account for free, download the people you choose into your organization's shared contacts (see the Contacts API), and look up missing emails and phones. Base URL: https://prospects.financialrebrand.com

Authentication

Send Authorization: Bearer <personal access token> — create one at API tokens with orgs:read, prospects:read (sources, search, history and purchases) and, to download or look up, prospects:write. Every call acts on the organization currently selected for that person. Errors are { "error": { "code": "…", "message": "…" } }, with a message written for a person; a token without the scope an endpoint needs gets a 403 with the code insufficient_scope.

Endpoints

GET /api/v1/sourcesThe sources this organization may search, each with its filters (name, label, type, options).
POST /api/v1/search{ "source": "mls", "filters": { … }, "page": 1 } — free. A total and one page of anonymous rows.
POST /api/v1/downloads{ "source", "filters", "count", "tag"? } — buy up to count new people (costs tokens; below).
GET /api/v1/downloadsDownload history, newest first; ?limit= up to 200.
GET /api/v1/purchasesPeople you've downloaded with their contact details; ?limit= (up to 500), ?offset=, ?source=.
POST /api/v1/enrich{ "contactIds": [ … up to 200 ], "fields": ["email", "phone"] } — costs tokens only when found.

Searching is anonymous

Search rows describe a person without identifying them: place, specialty or production band, and whether an email or phone is on file. No name, address, contact detail or record id. The total is { "value": 1234, "kind": "exact" }, or "capped" when counting stopped ("10,000+"). A filter that couldn't be honored comes back as notice.

Downloading

curl -X POST https://prospects.financialrebrand.com/api/v1/downloads \
  -H "Authorization: Bearer …" -H "Content-Type: application/json" \
  -d '{"source":"npi","filters":{ … },"count":100,"tag":"spring-outreach"}'

200 {"downloadId":"…","status":"complete","newCount":87,"alreadyOwned":10,"excluded":3,
     "tokens":87,"tag":"prospects:npi:2026-09-27","cappedByBalance":false,"message":"…"}

You're charged once per new person. People your organization already owns, people marked do not contact (or suppressed at the source) and people with no email or phone are skipped and free, so repeating a download never charges twice. The count is capped by your token balance (cappedByBalance). Everyone downloaded is tagged with tag, plus your own tag if you sent one — use it to pick them for a Cold Email or LinkedIn campaign. A download that fails refunds in full and returns 422 with status: "failed".

Downloaded people can't be added to Newsletters: they never opted in to hearing from you.

Finding missing emails and phones

POST /api/v1/enrich looks each contact up in turn with the available providers and returns one result per contact and field: found, not_found, failed, already_found, has_value, no_input or no_tokens. Only found is charged. A found value fills the contact only while that field is empty; nothing already stored is replaced.

From Claude or ChatGPT

The MCP server wraps these as prospects_sources, prospects_search, prospects_download, prospects_downloads, prospects_purchases and prospects_enrich. The two that spend tokens — prospects_download and prospects_enrich — ask the assistant to confirm with you first.