Register an account-scoped webhook endpoint.
const url = 'https://data.predictefy.com/v1/webhooks';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"url":"https://api.your-domain.com/webhooks","events":["ingest.run.completed"]}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://data.predictefy.com/v1/webhooks \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "url": "https://api.your-domain.com/webhooks", "events": [ "ingest.run.completed" ] }'DARK with the webhook route family behind READS_ENABLE_WEBHOOK_ROUTES. The URL must be a public HTTPS target and passes an SSRF guard at registration and again at delivery. Duplicate events are accepted and de-duplicated in first-seen order. The signing secret is returned exactly once in this response and never by reads.
Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”object
Public HTTPS target; private, loopback, link-local, and localhost targets are rejected.
Example
{ "url": "https://api.your-domain.com/webhooks", "events": [ "ingest.run.completed" ]}Responses
Section titled “Responses”The registered endpoint, including its one-time signing secret.
object
object
Signing secret returned exactly once when the endpoint is created.
Example
{ "data": { "id": "11111111-2222-3333-4444-555555555555", "url": "https://api.your-domain.com/webhooks", "events": [ "ingest.run.completed" ], "active": true, "createdAt": "2026-08-18T00:00:00Z" }}Enveloped error.
object
object
Always present on errors; quote this id when reporting a failed request.
Present only when a venue error is attributed to a specific exchange.
Example
{ "success": false, "error": { "code": "VALIDATION_ERROR" }}Enveloped error.
object
object
Always present on errors; quote this id when reporting a failed request.
Present only when a venue error is attributed to a specific exchange.
Example
{ "success": false, "error": { "code": "VALIDATION_ERROR" }}Enveloped error.
object
object
Always present on errors; quote this id when reporting a failed request.
Present only when a venue error is attributed to a specific exchange.
Example
{ "success": false, "error": { "code": "VALIDATION_ERROR" }}Enveloped error.
object
object
Always present on errors; quote this id when reporting a failed request.
Present only when a venue error is attributed to a specific exchange.
Example
{ "success": false, "error": { "code": "VALIDATION_ERROR" }}Enveloped error.
object
object
Always present on errors; quote this id when reporting a failed request.
Present only when a venue error is attributed to a specific exchange.
Example
{ "success": false, "error": { "code": "VALIDATION_ERROR" }}Enveloped error.
object
object
Always present on errors; quote this id when reporting a failed request.
Present only when a venue error is attributed to a specific exchange.
Example
{ "success": false, "error": { "code": "VALIDATION_ERROR" }}Enveloped error.
object
object
Always present on errors; quote this id when reporting a failed request.
Present only when a venue error is attributed to a specific exchange.
Example
{ "success": false, "error": { "code": "VALIDATION_ERROR" }}Enveloped error.
object
object
Always present on errors; quote this id when reporting a failed request.
Present only when a venue error is attributed to a specific exchange.
Example
{ "success": false, "error": { "code": "VALIDATION_ERROR" }}