List webhook deliveries
GEThttps://app.booksbyinstant.com/api/integrator/v1/webhook/deliveries
The integrator's deliveries, newest first, a page at a time. There is no replay: a failed delivery is not sent again, so read what it was about through the customer API.
listDeliveries · This page as markdown
Example request
cURL
curl -X GET 'https://app.booksbyinstant.com/api/integrator/v1/webhook/deliveries' \
-H "Authorization: Bearer $INTEGRATOR_CREDENTIAL"JavaScript
// Node 18 or later, in an ES module (.mjs), which allows the top-level await.
const res = await fetch("https://app.booksbyinstant.com/api/integrator/v1/webhook/deliveries", {
method: "GET",
headers: {
Authorization: `Bearer ${process.env.INTEGRATOR_CREDENTIAL}`,
},
});
const data = await res.json();Python
import os
import requests
res = requests.get(
"https://app.booksbyinstant.com/api/integrator/v1/webhook/deliveries",
headers={
"Authorization": f"Bearer {os.environ['INTEGRATOR_CREDENTIAL']}",
},
)
data = res.json()Authorization
Bearer token live_<100 hex>
Authorization: Bearer <secret>. A 401 answers WWW-Authenticate: Bearer realm="instant-integrator-api".
Query parameters
-
limitintegerHow many to answer: a whole number from 1 to 200, without a leading zero.
from
1to200· default50 -
cursorstring · uuidThe nextCursor of the previous page.
-
statusstringOnly the deliveries in this state.
One of
pendingdeliveredfailed
Responses
200
A page of deliveries.
Body application/json
object
-
itemsarray of object requiredEach item
-
idstring · uuid requiredThe delivery's id, which is its payload's id and Instant-Event-Id.
-
kindstring requiredOne of
reply.readyrun.finishedapproval.duetask.input_neededping.raisedbrowser.takeover_neededconnection.expiredcustomer.pausedcustomer.resumedconnection.syncedlink.finisheddocs.updated -
customerIdstring · uuid or null requiredThe customer it is about, or null for docs.updated.
-
customerReferencestring or null requiredThe integrator's reference for the customer, or null for docs.updated.
-
memberIdstring · uuid or null requiredThe member it is for, or null for connection.expired, connection.synced, link.finished, customer.paused, customer.resumed and docs.updated.
-
itemone of 4 shapes requiredWhat it is about, or null for docs.updated.
Either object
-
kindstring requiredalways
run -
actionIdstring · uuid requiredThe recurring action or background work.
-
runIdstring · uuid requiredThe run.
-
Or object
-
kindstring requiredOne of
approvaltaskpingdocumentpartnerpaymentthreadcustomerbank_connection -
idstring · uuidThe subject's id; absent when it is not a UUID.
-
Or object
-
kindstring requiredalways
bank_connection -
idstring · uuid requiredThe bank connection.
-
outcomestring requiredconnection.synced only: completed when every account was read (from the first day through yesterday for a backfill); failed when the consent ran out first, or a read asked for failed.
One of
completedfailed
-
Or object
-
kindstring requiredalways
bank_link -
idstring · uuid requiredThe bank connection link.
-
outcomestring requiredlink.finished only: connected when the consent gave a connection; cancelled when the person cancelled; failed when the bank or its provider refused, or Instant could not complete the consent; expired when nobody opened the link in time, or its consent never came back.
One of
connectedcancelledfailedexpired
-
-
statusstring requiredpending until a receiver answers 2xx (delivered), or until the 7th attempt fails, the webhook is removed or 30 days pass (failed).
One of
pendingdeliveredfailed -
attemptsinteger requiredHow many attempts were made, at most 7.
at least
0 -
lastErrorstring or null requiredWhy the last attempt failed: http_<status>, timeout, network, redirect, url_refused, webhook_removed or expired; null when none did.
matches
^(http_[0-9]{3}|timeout|network|redirect|url_refused|webhook_removed|expired)$ -
createdAtstring · date-time requiredWhen the delivery was created. ISO 8601 in UTC with milliseconds, such as 2026-11-06T10:00:00.000Z.
-
deliveredAtstring · date-time or null requiredWhen a receiver answered 2xx, or null. ISO 8601 in UTC with milliseconds, such as 2026-11-06T10:00:00.000Z.
-
nextAttemptAtstring · date-time or null requiredWhen the next attempt is due while pending; otherwise null. ISO 8601 in UTC with milliseconds, such as 2026-11-06T10:00:00.000Z.
-
-
nextCursorstring · uuid or null requiredThe cursor of the next page, or null on the last page.
Example, built from the schema
{
"items": [
{
"id": "01900000-0000-7000-8000-000000000000",
"kind": "reply.ready",
"customerId": "01900000-0000-7000-8000-000000000000",
"customerReference": "string",
"memberId": "01900000-0000-7000-8000-000000000000",
"item": {
"kind": "run",
"actionId": "01900000-0000-7000-8000-000000000000",
"runId": "01900000-0000-7000-8000-000000000000"
},
"status": "pending",
"attempts": 0,
"lastError": "string",
"createdAt": "2026-01-15T09:30:00.000Z",
"deliveredAt": "2026-01-15T09:30:00.000Z",
"nextAttemptAt": "2026-01-15T09:30:00.000Z"
}
],
"nextCursor": "01900000-0000-7000-8000-000000000000"
}400
A query parameter is unknown or invalid.
Body application/json
object Error
Every answer that is not a success.
-
errorstring requiredInstant's sentence for people. A 4xx keeps the refusal's own sentence; a 5xx always says "Instant is temporarily unavailable. Please try again shortly."
-
codestring requiredStable, and what a caller branches on: VALIDATION_ERROR (400), UNAUTHENTICATED (401), FORBIDDEN (403), NOT_FOUND (404), CONFLICT (409), LIMIT_EXCEEDED (413), UNSUPPORTED_MEDIA_TYPE (415), UNREADABLE_FILE (422), RATE_LIMITED (429) and UNAVAILABLE (5xx). More codes may be added; treat one you do not know by its status.
-
retryAfterintegerSeconds to wait before retrying, also sent as the
Retry-Afterheader. Present only when there is a wait, as on a 429.at least
1 -
existingIdstring · uuidOn a 409 that names the object already there, such as a customer with that reference: its id.
Example, built from the schema
{
"error": "string",
"code": "VALIDATION_ERROR",
"retryAfter": 1,
"existingId": "01900000-0000-7000-8000-000000000000"
}401
The credential is missing, malformed, unknown, revoked or rotated, or its integrator is disabled. All of these answer the same way.
Headers
-
WWW-AuthenticatestringBearer realm="instant-integrator-api"
Body application/json
The Error object, as in 400.
5XX
Instant is temporarily unavailable. Retry later, with backoff.
Body application/json
The Error object, as in 400.