POST request containing the enriched record to the HTTPS endpoint you configure. Your server validates the shared secret in the request header, processes the payload, and returns an HTTP 2xx response to acknowledge receipt.
Prerequisites
Before you set up webhooks:- Authenticate with an API key (
Tokenheader) or OAuth (Authorization: Bearer). - Create a public HTTPS endpoint that accepts
POSTrequests and is reachable from the internet. - In your Seamless account, go to Settings → Webhooks, create a webhook, and select its type: Company Research or Contact Research. A webhook receives only the record type it was created for.
Payloads
The body is the enriched record itself. There is no event-type field; the webhook’s type decides which records it receives.
Example Company Research payload (fields may vary by record):
apiResearchId field corresponds to the requestId from your research response. Use it to match webhook deliveries to in-flight jobs.
Webhook setup
1
Submit a research request
Call Research
companies or
Research
contacts to start
enrichment. Save the
requestId returned in the response.2
Wait for the platform to send the event
When research completes, Seamless sends a
POST request to your
configured webhook endpoint. The request body contains the enriched
record as a JSON object.3
Validate the webhook secret
Read the
x-seamless-webhook-secret header from the incoming request
and compare it to the shared secret you configured in Settings →
Webhooks. Reject
requests where the values do not match.4
Parse the request body and process the event
Parse the JSON body and extract the enriched data. Run your application
logic — store the record, trigger a downstream action, or pass it to
another system.
5
Return an HTTP 2xx response
Respond with a
2xx status code after accepting the event. Seamless
treats any other status as a delivery failure and may retry the request.Receiver code examples
Test your endpoint
Use thiscurl command to send a test event to your local receiver before deploying:
Use polling instead
If you prefer a request-response pattern or cannot expose a public HTTPS endpoint, use polling:- Submit a research request using Research companies or Research contacts.
- Save the
requestIdfrom the response. - Call Poll company research results or Poll contact research results with your
requestIdat a regular interval until thestatusfield returnsdone.
Troubleshooting
Your endpoint does not receive events
Your endpoint does not receive events
Confirm all of the following:
- A webhook exists in Settings → Webhooks for your account.
- The webhook type is Company Research or Contact Research, depending on what you submitted.
- Your endpoint is publicly reachable over HTTPS — local addresses such as
localhostwill not receive deliveries from the platform.
Your endpoint returns 401
Your endpoint returns 401
A
401 response means the secret validation failed. Check that the value of
the x-seamless-webhook-secret header in the incoming request matches your
configured shared secret exactly, including case and whitespace. Verify that
the secret is correctly set in your deployed environment’s variables.Your endpoint returns 400
Your endpoint returns 400
A
400 response means the request body was rejected. Confirm that your
endpoint accepts POST requests and that your application parses the body
as JSON before attempting to read any fields. If you’re using Express,
ensure express.json() middleware runs before your route handler.You want a request-response pattern instead
You want a request-response pattern instead
Use the polling endpoints. See Poll company research results for companies and Poll contact research results for contacts. Polling requires no public endpoint and works in any environment that can make outbound HTTP requests.
Related guides
Authenticate and make your first request
Search, research, and poll with runnable examples.
Understand identifiers and request flow
Learn which identifiers to save at each step and how the endpoint types fit
together.
Agent quickstart
Give an AI agent the rules it needs to call the API reliably.
Troubleshoot authentication and request failures
Diagnose and resolve common errors in authentication, research submissions, and webhook delivery.