Skip to content
Limited-time offerevery video just HK$1only 1,000, first come first servedGet it now
Axiom Lab
Developer docs

Reference

API reference · Events and webhooks

Instead of polling, receive status changes through signed webhooks or the event list.

View Markdown

List Events

GET/v1/events

API key requiredSuccess 200

Parameters

NameTypeDescription
afterqueryintegerDefault 0; range ≥ 0
limitqueryintegerDefault 50; range 1–200
X-Project-IDheaderstringThe project to act on; the default project when omitted; nullable

Response 200 application/json

NameTypeDescription
datarequiredarray<object>
data[].idrequiredstring
data[].sequencerequiredinteger
data[].typerequiredstring
data[].created_atrequirednumber
data[].api_versionrequiredstring
data[].project_idrequiredstringnullable
data[].datarequiredobject
next_cursorrequiredintegerSequence number to pass as after; unchanged when the page is empty
has_morebooleanDefault false

Example

curl "https://axiomlab.online/v1/events" \
  -H "Authorization: Bearer $AZIMO_API_KEY"

List Webhooks

GET/v1/webhooks

API key requiredSuccess 200

Parameters

NameTypeDescription
limitqueryintegerDefault 50; range 1–200
cursorquerystringlength ≤ 256; nullable
afterquerystringlength ≤ 256; nullable
X-Project-IDheaderstringThe project to act on; the default project when omitted; nullable

Response 200 application/json

NameTypeDescription
datarequiredarray<object>
data[].idrequiredstring
data[].project_idrequiredstringnullable
data[].kindrequiredstring
data[].namerequiredstring
data[].versionrequiredinteger
data[].created_atrequirednumber
data[].updated_atrequirednumber
data[].datarequiredobject
data[].data.namerequiredstring
data[].data.urlrequiredstring
data[].data.activebooleanDefault true
data[].data.has_secretrequiredboolean
next_cursorstringOpaque; pass as cursor (or the after alias) for the next page; nullable
has_morebooleanDefault false

Example

curl "https://axiomlab.online/v1/webhooks" \
  -H "Authorization: Bearer $AZIMO_API_KEY"

Create Webhook

POST/v1/webhooks

API key requiredSuccess 201

Parameters

NameTypeDescription
Idempotency-KeyheaderstringA unique value you generate and keep; reuse it when retrying so the request never runs twice; length 1–128; nullable
X-Project-IDheaderstringThe project to act on; the default project when omitted; nullable

Request body application/json

NameTypeDescription
namestringDefault Webhook; length ≤ 160
urlrequiredstringlength ≤ 2000
activebooleanDefault true

Response 201 application/json

NameTypeDescription
idrequiredstring
project_idrequiredstringnullable
kindrequiredstring
namerequiredstring
versionrequiredinteger
created_atrequirednumber
updated_atrequirednumber
datarequiredobject
data.namerequiredstring
data.urlrequiredstring
data.activebooleanDefault true
data.has_secretrequiredboolean
signing_secretrequiredstringShown at creation/rotation and for the same actor's idempotent retry within 24 hours; nullable

Example

curl -X POST "https://axiomlab.online/v1/webhooks" \
  -H "Authorization: Bearer $AZIMO_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"url": "<url>"}'

Rotate Webhook Secret

POST/v1/webhooks/{webhook_id}/rotate-secret

API key requiredSuccess 200

Parameters

NameTypeDescription
webhook_idrequiredpathstring
expected_versionrequiredqueryintegerrange ≥ 1
Idempotency-KeyheaderstringA unique value you generate and keep; reuse it when retrying so the request never runs twice; length 1–128; nullable
X-Project-IDheaderstringThe project to act on; the default project when omitted; nullable

Response 200 application/json

NameTypeDescription
idrequiredstring
project_idrequiredstringnullable
kindrequiredstring
namerequiredstring
versionrequiredinteger
created_atrequirednumber
updated_atrequirednumber
datarequiredobject
data.namerequiredstring
data.urlrequiredstring
data.activebooleanDefault true
data.has_secretrequiredboolean
signing_secretrequiredstringShown at creation/rotation and for the same actor's idempotent retry within 24 hours; nullable

Example

curl -X POST "https://axiomlab.online/v1/webhooks/<webhook_id>/rotate-secret?expected_version=<expected_version>" \
  -H "Authorization: Bearer $AZIMO_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)"

Update Webhook

PUT/v1/webhooks/{webhook_id}

API key requiredSuccess 200

Parameters

NameTypeDescription
webhook_idrequiredpathstring
expected_versionrequiredqueryintegerrange ≥ 1
X-Project-IDheaderstringThe project to act on; the default project when omitted; nullable

Request body application/json

NameTypeDescription
namestringDefault Webhook; length ≤ 160
urlrequiredstringlength ≤ 2000
activebooleanDefault true

Response 200 application/json

NameTypeDescription
idrequiredstring
project_idrequiredstringnullable
kindrequiredstring
namerequiredstring
versionrequiredinteger
created_atrequirednumber
updated_atrequirednumber
datarequiredobject
data.namerequiredstring
data.urlrequiredstring
data.activebooleanDefault true
data.has_secretrequiredboolean

Example

curl -X PUT "https://axiomlab.online/v1/webhooks/<webhook_id>?expected_version=<expected_version>" \
  -H "Authorization: Bearer $AZIMO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "<url>"}'

Delete Webhook

DELETE/v1/webhooks/{webhook_id}

API key requiredSuccess 200

Parameters

NameTypeDescription
webhook_idrequiredpathstring
X-Project-IDheaderstringThe project to act on; the default project when omitted; nullable

Response 200 application/json

NameTypeDescription
idrequiredstring
deletedbooleanDefault true

Example

curl -X DELETE "https://axiomlab.online/v1/webhooks/<webhook_id>" \
  -H "Authorization: Bearer $AZIMO_API_KEY"

List Deliveries

GET/v1/webhook-deliveries

API key requiredSuccess 200

Parameters

NameTypeDescription
limitqueryintegerDefault 50; range 1–200
cursorquerystringlength ≤ 256; nullable
afterquerystringlength ≤ 256; nullable
X-Project-IDheaderstringThe project to act on; the default project when omitted; nullable

Response 200 application/json

NameTypeDescription
datarequiredarray<object>
data[].idrequiredstring
data[].event_idrequiredstring
data[].urlrequiredstring
data[].statusrequiredstring
data[].attemptsrequiredinteger
data[].last_errorrequiredstringnullable
data[].delivered_atrequirednumbernullable
next_cursorstringOpaque; pass as cursor (or the after alias) for the next page; nullable
has_morebooleanDefault false

Example

curl "https://axiomlab.online/v1/webhook-deliveries" \
  -H "Authorization: Bearer $AZIMO_API_KEY"

Replay

POST/v1/webhook-deliveries/{delivery_id}/replay

API key requiredSuccess 202

Parameters

NameTypeDescription
delivery_idrequiredpathstring
webhook_idquerystringlength ≤ 32; nullable
Idempotency-KeyheaderstringA unique value you generate and keep; reuse it when retrying so the request never runs twice; length 1–128; nullable
X-Project-IDheaderstringThe project to act on; the default project when omitted; nullable

Response 202 application/json

NameTypeDescription
idrequiredstring
statusrequiredstringOne of: pending

Example

curl -X POST "https://axiomlab.online/v1/webhook-deliveries/<delivery_id>/replay" \
  -H "Authorization: Bearer $AZIMO_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)"

← All endpoints