API reference / People reads
Search lead companies (live)
Written and maintained by The ProspectAPIs team
POST/v1/leads/companies/search
POST /v1/leads/companies/search is the ProspectAPIs operation searchLeadCompanies, in the People reads group of the REST API. Search companies as sales accounts by keywords and account filters, read fresh. Each result carries name, company_id, page_url, industry, size_band, employee_count, location and description. Returns the first 2,500 results per query; page with start. $0.0035 per result returned; an empty search is free. Not available yet: the call answers 503 temporarily_unavailable and nothing is charged until GET /pricing reports lead_search.available. Cost: Not available yet. Send your API key as a Bearer token in the Authorization header.
The quickstart shows this call in context, next to the first requests most integrations make.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| Idempotency-Key | header | string | Optional, 1 to 255 printable ASCII characters. A retry with the same key and body within 24 hours gets the first answer back with Idempotent-Replayed: true and is never charged again. The same key with a different body is 422; a retry while the first call is still running is 409. |
Request body
JSON. Give keywords or at least one filter.
| Field | Type | Description |
|---|---|---|
| keywords | string | Free-text keywords. At most 500 characters. |
| filters | object | Named filters: industry and location as numeric ids, headcount as bands, headcount_growth as { min, max } percent, annual_revenue as { min, max } USD millions, hiring true. |
| filters.industry | array of string | |
| filters.location | array of string | |
| filters.headcount | array of string: 1, 2-10, 11-50, 51-200, 201-500, 501-1000, 1001-5000, 5001-10000, 10001+ | |
| filters.headcount_growth | object | Headcount growth in percent, { min, max }. |
| filters.annual_revenue | object | Annual revenue in USD millions, { min, max }. |
| filters.hiring | boolean: true | true to include only these; omit otherwise. |
| start | integer | Zero-based offset into the first 2,500 results. 0 to 2499. |
| count | integer | Results per page. 1 to 25. |
{}Responses
| Status | Meaning |
|---|---|
| 200 | The matching companies and the page envelope, read fresh. |
| 400 | The request was invalid (e.g. a bad filter or input); nothing was charged. |
| 401 | The API key is missing or invalid. |
| 402 | Out of credits. The body carries top_up_url; nothing was charged. |
| 429 | Too many requests; retry after the window. |
| 503 | This read is temporarily unavailable. Nothing was charged. |
Every error answers with the same JSON body, an error string and sometimes a code; the errors page lists each status and when it happens. A per-key 429 carries Retry-After; see rate limits.
200 response fields
The matching companies and the page envelope, read fresh. The body is a PeopleReadResult.
| Field | Type | Description |
|---|---|---|
| data required | object | The read result. For search, posts, engagers and followers this is { items, page }; for a profile it is the profile object. |
| coverage required | object | How complete the source was. |
| coverage.filled | integer | |
| coverage.of | integer |
| Header | Meaning |
|---|---|
| RateLimit-Limit | Requests this API key may make per minute. |
| RateLimit-Remaining | Requests left in the current one-minute window. |
| RateLimit-Reset | Seconds until the current window resets. |
Code samples
Each sample sends the same request. Set PROSPECTAPIS_KEY in your environment first. Values come from the spec's examples; replace them with your own.
curl -X POST https://api.prospectapis.com/v1/leads/companies/search \
-H "Authorization: Bearer $PROSPECTAPIS_KEY" \
-H "Content-Type: application/json" \
-d '{}'const res = await fetch("https://api.prospectapis.com/v1/leads/companies/search", {
method: "POST",
headers: { Authorization: `Bearer ${process.env.PROSPECTAPIS_KEY}`, "Content-Type": "application/json" },
body: JSON.stringify({}),
});
if (!res.ok) throw new Error(`${res.status}: ${(await res.json().catch(() => ({}))).error ?? res.statusText}`);
const data = await res.json();
console.log(data);import os, requests
res = requests.post(
"https://api.prospectapis.com/v1/leads/companies/search",
headers={"Authorization": f"Bearer {os.environ['PROSPECTAPIS_KEY']}"},
json={},
timeout=30,
)
res.raise_for_status()
data = res.json()
print(data)Billing
Billing reserves before it serves: the call holds what it may cost, serves at most what that hold covers, and refunds the rest when the response closes. Any non-2xx answer refunds the whole hold, so a failed call costs nothing. The response reports your balance in X-Credits-Remaining.
Related
Previous operation: Search leads (live). Next operation: Get a company profile. Every operation, grouped by area, is on the API reference index.
Create a free account to get a key, then run the samples above with your own values (this call acts for real, so use real inputs).
Was this page helpful?