AArtery
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

  1. Fetch GET /v1/webhooks/event-catalog with an Artery API key.
  2. Choose one or more Event Type IDs, versions, and optional filters.
  3. Create a webhook with POST /v1/webhooks and save the signing secret shown once.
  4. Verify X-Artery-Signature against the raw request body before parsing.
  5. Persist and deduplicate the CloudEvent id, then return a 2xx response.
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 filters object 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 raw and native payloads are not delivered.
  • Delivery is at least once. Retries keep the same event id and 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
Webhooks Overview · Artery API Docs