On this page
Webhooks
Artery Webhooks turn market, broker, signal, portfolio, and lifecycle changes
into signed HTTPS deliveries. Customer integrations select stable Event Type
IDs through subscriptions[]; internal transport routes are not part of the
public contract.
Every delivery is a structured CloudEvents 1.0 JSON object. The event catalog, OpenAPI schemas, and test fixtures are the machine-readable source of truth.
Integration flow
- Fetch
GET /v1/webhooks/event-catalogwith an Artery API key. - Choose one or more Event Type IDs, versions, and optional filters.
- Create a webhook with
POST /v1/webhooksand save the signing secret shown once. - Verify
X-Artery-Signatureagainst the raw request body before parsing. - Persist and deduplicate the CloudEvent
id, then return a2xxresponse.
json{
"url": "https://example.com/webhooks/artery",
"subscriptions": [
{
"eventType": "broker.trade.executed",
"version": 1,
"filters": { "brokers": ["polymarket", "hyperliquid"] }
},
{ "eventType": "broker.funding.updated", "version": 1 },
{ "eventType": "broker.position.liquidated", "version": 1 }
]
}Contract principles
- A readable product name and the exact Event Type ID are shown together in the Portal; integrations store the ID and version.
- An omitted
filtersobject means all values allowed by that event. - One URL can subscribe to events from any catalog group.
- Precise financial values are decimal strings or
null, never floating-point approximations or a fabricated zero. - Provider-native
rawandnativepayloads are not delivered. - Delivery is at least once. Retries keep the same event
idand raw body.
Continue with subscriptions and filters, review the CloudEvents payload contract, or open the Core/App integration guide.
Edit this page on GitHubLast updated