List the caller's statements
Lists the caller's own statements, newest first. Requires an authenticated, active user. Supports keyset pagination through the size, after, and before query parameters.
Authorization
oauth2 Create a client with POST /v1/oauth/clients, then exchange its credentials for an access token. AUTHORIZATION_CODE clients act on behalf of a signed-in user and always use PKCE; CLIENT_CREDENTIALS clients act as themselves. A client may only be granted scopes its creator already holds — read the grantable list from GET /v1/oauth/clients/scopes.
In: header
Query Parameters
Maximum number of statements to return.
0 < value20Opaque cursor for the page after this one. Omit for the first page.
Opaque cursor for the page before this one. Omit for the first page.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/v1/statements?size=20&after=eyJjcmVhdGVkQXQiOiIyMDI2LTAxLTE1VDA5OjMwOjAwWiJ9&before=eyJjcmVhdGVkQXQiOiIyMDI2LTAxLTEwVDA5OjMwOjAwWiJ9"{ "data": [ { "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "type": "TRANSACTION_HISTORY", "audience": "USER", "status": "PENDING", "parameters": {}, "data_as_of": "2026-01-15T00:00:00Z", "documents": [ { "format": "CSV", "status": "PENDING", "failure_reason": "[TOO_MANY_ROWS] The statement has more rows than the CSV export supports.", "failure_code": "TOO_MANY_ROWS" } ], "requested_at": "2026-01-15T09:30:00Z", "resource_id": "string" } ], "links": { "next": "/v1/payees?after=eyJpZCI6MX0", "prev": "/v1/payees?before=eyJpZCI6MX0" }}{ "code": "BAD_REQUEST", "description": "Bad Request"}{ "code": "UNAUTHORISED", "description": "Unauthorised"}{ "code": "FORBIDDEN", "description": "Forbidden"}{ "code": "RATE_LIMIT_EXCEEDED", "description": "Too Many Requests"}{ "code": "INTERNAL_ERROR", "description": "Internal Server Error"}Confirm the email OTP POST
Verifies the OTP code and marks the account's email `VERIFIED`. Requires an authenticated, active user. Confirming an already-verified email is a no-op that returns the same verified result. Returns 404 when the verification does not exist, belongs to another caller, or is not `AWAITING_OTP`. Returns 400 when the code is wrong or no longer valid.
Create a statement POST
Creates a statement, or returns the caller's existing statement for the same type and parameters. An expired artifact regenerates, and a retriable failure retries automatically. Requires an authenticated, active user. Accepts an optional `Idempotency-Key` header that replays the same response on a retried request. Returns 404 when `type` names no registered statement type. Generation runs asynchronously; poll `Get a statement` until every document reaches `READY`.