Cowdidocs
API ReferenceStatements

Create a statement

POST
/v1/statements

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.

AuthorizationBearer <token>

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

Header Parameters

Idempotency-Key*string

Unique key that de-duplicates retries of this request: the first call executes and its response is stored, identical retries replay it, and reusing a key with a different request body is rejected with 409 Conflict.

Lengthlength <= 255

Request Body

application/json

Select the statement request that matches type.

Select the statement request that matches type.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/v1/statements" \  -H "Idempotency-Key: string" \  -H "Content-Type: application/json" \  -d '{    "type": "TRANSACTION_HISTORY",    "parameters": {      "account_id": "660e8400-e29b-41d4-a716-446655440111",      "period": {        "from": "2026-09-01T00:00:00+03:00",        "to": "2026-09-15T00:00:00+03:00"      },      "statuses": [        "COMPLETED"      ]    }  }'
{  "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"}
{  "code": "BAD_REQUEST",  "description": "Bad Request"}
{  "code": "UNAUTHORISED",  "description": "Unauthorised"}
{  "code": "FORBIDDEN",  "description": "Forbidden"}
{  "code": "BAD_REQUEST",  "description": "Invalid input"}
{  "code": "RATE_LIMIT_EXCEEDED",  "description": "Too Many Requests"}
{  "code": "INTERNAL_ERROR",  "description": "Internal Server Error"}