Docs
Docs
API reference

Events

Everything that happened to your domains, newest first, with webhook deliveries and redelivery.

Base URL https://api.apexly.dev. Send your key as Authorization: Bearer sk_live_… or sk_test_…; the examples read it from APEXLY_API_KEY.

List webhook events

GET/v1/events

Newest first (created_at desc), cursor-paginated. Filter by domain_id and type. Each event carries a delivery summary: delivered, pending (queued or retrying, with next_attempt_at), failed (retries exhausted) or none (no webhook URL was set).

Query parameters

FieldTypeDescription
domain_idstring
typestringOne of domain.created, domain.verified, domain.active, domain.dns_broken, domain.cert_failed, domain.certificate_renewed, domain.deleted, domain.held, domain.released.
limitintegerDefault 50. 1 to 100.
cursorstringnext_cursor of the previous page. At most 200 characters.

Response

200 OK. Errors use the error envelope.

FieldTypeDescription
dataobject[]
data[].idstringevt_… (the Apexly-Event-Id header).
data[].typestringOne of domain.created, domain.verified, domain.active, domain.dns_broken, domain.cert_failed, domain.certificate_renewed, domain.deleted, domain.held, domain.released.
data[].domain_idstring
data[].hostnamestring
data[].previous_statusstring | nullOne of pending_dns, verifying, issuing, active, dns_broken, cert_failed, expired, held, deleted.
data[].statusstring | nullThe domain status the event moved to. One of pending_dns, verifying, issuing, active, dns_broken, cert_failed, expired, held, deleted.
data[].created_atstring
data[].deliveryobject
data[].delivery.statusstringdelivered: an attempt got a 2xx. pending: queued or retrying. failed: every attempt failed and retries are over. none: no webhook URL was set. One of delivered, pending, failed, none.
data[].delivery.attemptsintegerWebhookDelivery rows, redeliveries included.
data[].delivery.last_status_codeinteger | null
data[].delivery.last_errorstring | nullurl_not_allowed | dns_failed | timeout | tls_error | connection_failed.
data[].delivery.last_attempt_atstring | null
data[].delivery.next_attempt_atstring | nullNext automatic attempt while pending.
next_cursorstring | null

Example

curl https://api.apexly.dev/v1/events \
  -H "Authorization: Bearer $APEXLY_API_KEY"

Get an event

GET/v1/events/{id}

The event with every delivery attempt, newest first (at most 50).

Path parameters

FieldTypeDescription
idstring

Response

200 OK. Errors use the error envelope.

FieldTypeDescription
idstringevt_… (the Apexly-Event-Id header).
typestringOne of domain.created, domain.verified, domain.active, domain.dns_broken, domain.cert_failed, domain.certificate_renewed, domain.deleted, domain.held, domain.released.
domain_idstring
hostnamestring
previous_statusstring | nullOne of pending_dns, verifying, issuing, active, dns_broken, cert_failed, expired, held, deleted.
statusstring | nullThe domain status the event moved to. One of pending_dns, verifying, issuing, active, dns_broken, cert_failed, expired, held, deleted.
created_atstring
deliveryobject
delivery.statusstringdelivered: an attempt got a 2xx. pending: queued or retrying. failed: every attempt failed and retries are over. none: no webhook URL was set. One of delivered, pending, failed, none.
delivery.attemptsintegerWebhookDelivery rows, redeliveries included.
delivery.last_status_codeinteger | null
delivery.last_errorstring | nullurl_not_allowed | dns_failed | timeout | tls_error | connection_failed.
delivery.last_attempt_atstring | null
delivery.next_attempt_atstring | nullNext automatic attempt while pending.
deliveriesobject[]Newest first, at most 50.
deliveries[].idstringdlv_… (the Apexly-Delivery-Id header).
deliveries[].event_idstring
deliveries[].attemptinteger1-based; counts every attempt of the event, redeliveries included.
deliveries[].status_codeinteger | nullThe receiver's HTTP status, when it answered.
deliveries[].response_msinteger | null
deliveries[].errorstring | nullWhy there was no HTTP answer.
deliveries[].delivered_atstring | null
deliveries[].next_attempt_atstring | nullWhen the automatic retry after this attempt was due.
deliveries[].created_atstring

Example

curl https://api.apexly.dev/v1/events/evt_01J9X8T4Q5M6N7P8R9S0V1W2X3 \
  -H "Authorization: Bearer $APEXLY_API_KEY"

Redeliver an event

POST/v1/events/{id}/redeliver

Sends the event's original body again now, freshly signed, to the app's current webhook URL, and returns the new attempt (a new delivery row; the receiver's answer is in status_code). A 2xx also takes the event off the automatic retry schedule. 10 per minute per app; 422 validation_failed when the app has no webhook URL.

Path parameters

FieldTypeDescription
idstring

Response

201 Created. Errors use the error envelope.

FieldTypeDescription
idstringdlv_… (the Apexly-Delivery-Id header).
event_idstring
attemptinteger1-based; counts every attempt of the event, redeliveries included.
status_codeinteger | nullThe receiver's HTTP status, when it answered.
response_msinteger | null
errorstring | nullWhy there was no HTTP answer.
delivered_atstring | null
next_attempt_atstring | nullWhen the automatic retry after this attempt was due.
created_atstring

Example

curl -X POST https://api.apexly.dev/v1/events/evt_01J9X8T4Q5M6N7P8R9S0V1W2X3/redeliver \
  -H "Authorization: Bearer $APEXLY_API_KEY"
Was this helpful?
Edit this page