Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.seamless.ai/llms.txt

Use this file to discover all available pages before exploring further.

Every Seamless API workflow passes two identifiers through a fixed sequence of endpoint types — search, research, and result delivery. Understanding which identifier belongs to which step, and why, prevent common integration errors: passing the wrong ID to the wrong endpoint, or starting a later step before the previous one has produced its output.

Request flow

Each endpoint type in the Seamless API has a distinct role. They are not interchangeable. Search finds targets. Call Search companies or Search contacts with filters to identify records you want to enrich. Each matching record in the response carries a searchResultId. Save this identifier — it is the input to the next stage. Research starts an enrichment request. Pass a searchResultId to Research companies or Research contacts. The API queues the record for enrichment and returns a requestId. Save this identifier — it is how you track the request through to completion. Polling checks request status. Call Poll company research results or Poll contact research results with your requestId at a regular interval. Continue polling until status returns done. Webhooks deliver completed results asynchronously. When research finishes, the platform sends a POST request to your configured endpoint. No polling required. See Receive research results with webhooks. Org data endpoints retrieve records already stored in your organization. Call Get companies or Get contacts to pull enriched records without starting a new research request. These endpoints do not accept a searchResultId or requestId — they are for retrieval, not enrichment.

Keep the right identifier at each step

StepIdentifier to saveWhy you need it
SearchsearchResultIdPass to the research endpoint to identify which record to enrich
ResearchrequestIdPass to the polling endpoint or match against webhook payloads to retrieve the result
PollingrequestIdRequired for every poll call until the request reaches a terminal status
1

Search companies

Call Search companies with filters such as companyName, domain, or industry.
2

Save the search result ID

Identify the matching record in the response and save its searchResultId.
3

Research companies

Pass your searchResultId to Research companies. The API queues the record and returns a requestId.
4

Save the request ID

Save the requestId from the research response. Do not overwrite or discard the searchResultId — keep both until your workflow is complete.
5

Choose a result delivery method

Retrieve the completed result using one of the following:
Store searchResultId and requestId as separate named values. Do not overwrite the search result ID with the request ID — they are different identifiers used at different steps. Do not start research until you have confirmed the correct searchResultId from the search response. After research starts, use only the requestId for polling and workflow tracking.

Troubleshooting

Two identifiers exist in this workflow, and each belongs to a specific step:If you are unsure which identifier you have, check where it came from. If it came from a search response, it is a searchResultId. If it came from a research response, it is a requestId.
Each endpoint type has a specific role and accepts specific inputs:If your call is failing, confirm you are using the correct endpoint type for the current step. For help choosing the right workflow, see Choose the right workflow.