API reference · Webhooks
Get webhook deliveries
GET
/v1/webhook-eventsFind deliveries for your application, including failures that you can request again.
PermissionNone
AuthenticationSigned read
Anis’s answerNot signed
Staff-set limits it counts towardAll requests
.NET SDK
anis.WebhookEvents.GetWebhookEventsAsync(query)Parameters
| Name | In | Type | Notes |
|---|---|---|---|
statusoptional | query | WebhookDeliveryStatus | Optional delivery state: pending, delivering, delivered, retrying, failed, waitingForProjection, waitingForEndpoint or cancelled. Omit it for all states. |
sinceoptional | query | string | Optional inclusive UTC lower bound on when the event occurred. |
cursoroptional | query | string | The nextCursor of the previous page, passed back exactly as received. Leave it out for the first page. |
Request
Signed with your key. No body, no nonce.
Headers: Signature-Input, Signature, X-Anis-Date, Accept-Language (optional). The SDKs set all of them for you.
Body: none.
Responses
| Status | Meaning | Body |
|---|---|---|
| 200 | Success. | WebhookEventCollection |
| 400 | Refused: the signed request is badly built. | Problem |
| 401 | Refused: not authenticated. | Problem |
| 403 | Refused: not allowed. | Problem |
| 404 | Refused: not found, or not yours. | Problem |
| 422 | Refused: the request breaks a rule. | Problem |
| 429 | Refused: a limit was reached. | Problem |
| 503 | No decision: a dependency was unavailable. | Problem |
The answers of this call are not signed — no Signature or Signature-Input header, success or refusal. There is nothing to verify; TLS protects them. Content-Digest and X-Request-Id are still present.
Refusals
A refusal of this call is a problem without a signature. Branch on its code; each links to what it means and what to do.
| Error | Code | Status |
|---|---|---|
| Invalid credentials | invalid_credentials | 401 |
| Malformed signed request | malformed_signed_request | 400 |
| Insufficient scope | insufficient_scope | 403 |
| Source address not allowed | source_ip_not_allowed | 403 |
| Rate limited | rate_limited | 429 |
| Validation failed | validation_failed | 422 |
| Service unavailable | dependency_unavailable | 503 |
| Request timeout | request_timeout | 504 |
| Internal error | internal_error | 500 |
| Not found | resource_not_found | 404 |
Types
WebhookEventCollection
| Field | Type | Notes |
|---|---|---|
itemsalways present | list of WebhookEvent | The records on this page. |
nextCursoralways present | string | Pass this opaque value unchanged as cursor; null marks the last page. |
WebhookEvent
| Field | Type | Notes |
|---|---|---|
idalways present | UUID | The identifier returned for this record. Keep it unchanged when reading it again. |
typealways present | string | The notification type describing what happened. |
statusalways present | WebhookDeliveryStatus | The delivery state, not the purchase state. |
attemptsalways present | integer | The number of delivery attempts recorded. |
lastAttemptAtalways present | string (date-time) | The previous or next scheduled attempt time, null when none is known. |
nextAttemptAtalways present | string (date-time) | The previous or next scheduled attempt time, null when none is known. |
lastResponseCodealways present | integer | The last destination HTTP status, null before one is received. |
lastFailureKindalways present | string | The recorded delivery failure category, null before a failure. Values: httpStatus, timeout, connect, tls, targetRefused, responseTooLarge, challengeMismatch, projectionUnavailable, endpointDisabled, signingUnavailable |