curl --request POST \
--url https://breadbox.example.com/api/v1/connections/link \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"user_id": "<string>",
"single_use": false,
"redirect_url": "<string>",
"label": "<string>",
"expires_in_seconds": 1800
}
'{
"token": "<string>",
"url": "<string>",
"id": "<string>",
"short_id": "<string>",
"user_id": "<string>",
"connection_id": "<string>",
"single_use": true,
"redirect_url": "<string>",
"label": "<string>",
"error_code": "<string>",
"error_message": "<string>",
"result_connection_ids": [
"<string>"
],
"expires_at": "2023-11-07T05:31:56Z",
"started_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z"
}Mint a hosted-link session
Creates a hosted-link session and returns the URL an end-user should
open in their browser to add a new bank connection. The response
carries a one-time-only bearer token and a fully-qualified url
(scheme + host + /link/<token>). The token is never echoed back
by GET /connections/link/{id} — capture it from this response and
keep the URL alongside it.
provideris optional. Empty means the hosted page presents a picker.expires_in_secondsis clamped to [0, 3600].0(or missing) selects the default of 900s (15 minutes).- Action is always
linkon this endpoint. Relink (re-authenticating an existing connection) is exposed separately viaPOST /connections/{id}/relink.
Requires full_access scope.
curl --request POST \
--url https://breadbox.example.com/api/v1/connections/link \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"user_id": "<string>",
"single_use": false,
"redirect_url": "<string>",
"label": "<string>",
"expires_in_seconds": 1800
}
'{
"token": "<string>",
"url": "<string>",
"id": "<string>",
"short_id": "<string>",
"user_id": "<string>",
"connection_id": "<string>",
"single_use": true,
"redirect_url": "<string>",
"label": "<string>",
"error_code": "<string>",
"error_message": "<string>",
"result_connection_ids": [
"<string>"
],
"expires_at": "2023-11-07T05:31:56Z",
"started_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z"
}Documentation Index
Fetch the complete documentation index at: https://docs.breadbox.sh/llms.txt
Use this file to discover all available pages before exploring further.
Authorizations
Breadbox API key with format bb_<base62>. Carries either read_only
or full_access scope. Write endpoints (and a handful of sensitive
reads — /api-keys, /users/{user_id}/login) require full_access;
endpoints that require it are flagged in their description.
Body
UUID or short_id of the household user the link is for.
Optional. Empty / omitted lets the hosted page display a picker.
, plaid, teller When true, the session burns after the first successful link.
Optional URL the hosted page redirects to after completion.
Optional human-readable label for the agent's audit timeline.
TTL in seconds. 0 (or omitted) selects the default of 900 (15
minutes). Values above 3600 are rejected.
0 <= x <= 3600Response
Hosted-link session created.
A hosted-link session is the agent-facing record of a "share this URL
with the user so they can connect a bank in their browser" flow.
Returned by GET /connections/link/{id} and (extended with token
and url) by POST /connections/link.
Plaintext bearer token. Returned exactly once at session
creation; never echoed back by GET /connections/link/{id}.
Fully-qualified URL the end-user should open. Built from the
request scheme + host + /link/<token>.
"plaid", "teller", or empty string. Empty means the hosted page
shows a picker so the user chooses a provider.
, plaid, teller link, relink Present only for action: "relink" — the connection being re-authenticated.
Optional URL the hosted page redirects to after completion.
Optional human-readable label shown in the agent's audit timeline.
pending, active, completed, failed, expired, consumed Present only on status: "failed".
Present only on status: "failed".
UUIDs of the bank connections the user added during the session. Always present; empty array until at least one connection has been recorded.
Stamped when the hosted page first transitions the session to active.
Stamped when the session reaches completed or failed.