Skip to main content
The SphereScout REST API gives you programmatic access to the contact database. Use it to search and filter millions of business contacts by location, category, and contact method; stream results into your CRM; trigger CSV exports; and manage API credentials — all over standard HTTPS with JSON request and response bodies.

Base URL

All API endpoints are served from a single origin:
Every endpoint lives under the /api/ path prefix. For example, the company search endpoint is:

Authentication methods

The API supports two ways to authenticate requests. Both use the same Authorization: Bearer header format.
For integrations and server-side scripts, use API keys. They are simpler to manage and do not require a token-refresh cycle.

Request format

All requests that include a body (POST, PATCH) must send JSON and set the Content-Type header accordingly:
GET requests pass parameters as URL query strings. Boolean filters use the string values "true" and "false".

Quick example

The following request searches for contacts in France who have an email address on file:

Search and export flow

Exporting contacts is asynchronous. Preview the result set, start an export with the same filters, poll its search_id, then request the completed file.
1

Run a search

Call GET /api/companies with the filters that describe the contacts you want (country, category, contact method, etc.). The response includes a totalCount and a paginated preview of results. Previewing does not create a search ID.Permanently closed businesses are excluded by default. Set include_closed_businesses=true here and on the export request if you want to include them. Using the same value on both requests keeps the preview count and export credit cost aligned.
Response
2

Initiate the CSV export

Call GET /api/download-csv with the same filters to enqueue the export. This endpoint returns a numeric search_id. That value is the only identifier used for the rest of the export workflow.
Response
3

Poll for completion

Call GET /api/download-status/{search_id} periodically until status becomes completed or failed. We recommend polling every 2–5 seconds with exponential backoff; most exports complete in under a minute, but large result sets can take longer.Possible status values:
Completed response
4

Download the CSV

Call GET /api/download-completed-csv/{search_id} with the same search_id. The response contains a time-limited download_url; fetch that URL to download the file.
Response
search_id is created by the export request, not by the preview request. Persist the exact search_id returned in step 2 and use it for both status polling and file download.

Optional export fields

Both export options default to false, so existing integrations keep the same result set and column layout. For example:

Rate limits

The API enforces rate limits to ensure availability for all users. Specific thresholds depend on your plan. Contact support for rate limit details relevant to your account.

Endpoint reference

The table below groups the public API surface by category.

Authentication

Account

API key management

Reference data

Exports

Export history

Next steps

API keys

Generate and manage long-lived API credentials for server integrations.

Authentication

Learn the full JWT login flow and token-refresh cycle.