API v0
Integration guides
Webhooks
Receive events instead of polling. Every delivery is signed.
Set a callback_url on a request, or a workspace-level URL in the Synquery app. Each delivery is a POST with a JSON body. For request events, data is the same body Get status and answers returns at the time of the event. Billing events carry no request_id.
Verifying signatures
Each delivery has a Synquery-Signature header in the form t=<unix seconds>,v1=<hex>. v1 is an HMAC SHA-256 of "<t>.<raw body>", using your webhook secret, which is shown once when you create the endpoint. Reject the delivery if the signature doesn't match or t is more than 5 minutes old.
Delivery rules
- Respond with a 2xx status within 10 seconds. Otherwise Synquery retries with backoff for 24 hours.
- Deliveries may repeat or arrive out of order. De-duplicate on
id. - For the current state of a request, fetch
GET /questions/{request_id}rather than assuming the latest delivery is the latest state.
Events
The request was accepted and sourcing has started.
One per confirmed expert answer;
data holds that response.The request completed, fully or partially.
The request failed, with a reason.
A follow-up round completed.
Credits fell below the threshold you set.
A spend or volume limit stopped a request.
Delivery body
When the event was created.
The request, for request events.
Next
Errors and retries →