Skip to main content
GET
List documents
search and search_term are the same filter; send only one. Bill filters need type=bill or no type. source_id and the reconciliation status filter select statement documents. Filtered scans can return an empty page with has_more=true. Continue until next_cursor is null.

Expanded details

Set expand=bill,receipt,vendor,statement to add the related records. Each expanded item contains document and the requested records.

Statement lines

Send one document ID with expand=statement.lines. Read the lines from statement.lines.data, and pass its next_cursor as statement_cursor for the next page. Keep import_status, is_reconciled and the document filter unchanged between pages.

Download URLs

Add download to expand to get viewing and download URLs. This needs a user-scoped API key, and it records a document view, as opening the document in the dashboard does. The URLs expire after three days.

Authorizations

X-API-Key
string
header
required

Your organization API key. Some operations also need a key that is associated with a user; their pages say so.

Query Parameters

document_ids
string[]

Comma-separated doc_<uuid> ids to filter by. Up to 100 IDs.

created_from
string

Earliest created date (YYYY-MM-DD).

created_to
string

Latest created date (YYYY-MM-DD).

search_term
string

Full-text match across extracted text, summary, filename, vendor name, and bill/receipt numbers.

limit
integer
default:25

Maximum number of records to return.

Required range: 1 <= x <= 100
cursor
string

The next_cursor value from the previous page. Keep the other filters unchanged.

Case-insensitive search in labels and descriptions.

type
enum<string>

Filter by document type.

Available options:
bill,
receipt,
statement,
other
source_id
string

Source ID (src_…).

Example:

"src_507f1f77bcf86cd799439011"

vendor_id
string

Vendor ID (vnd_…).

Example:

"vnd_507f1f77bcf86cd799439011"

expand
string

Comma-separated expansions: bill, receipt, vendor, statement, statement.lines or download. statement.lines and download require exactly one document_ids value. download requires a user-scoped API key.

statement_limit
integer
default:100

Rows per statement page. Requires expand=statement.lines and exactly one document_ids value. Does not change the document page size.

Required range: 1 <= x <= 100
statement_cursor
string

The statement.lines.next_cursor value from the previous page.

vendor_name
string

Vendor name (substring match).

bill_number
string

Bill number.

bill_date_from
string

Earliest bill date (YYYY-MM-DD).

bill_date_to
string

Latest bill date (YYYY-MM-DD).

billing_period_start_from
string

Earliest billing-period start (YYYY-MM-DD).

billing_period_end_to
string

Latest billing-period end (YYYY-MM-DD).

currency
string

Currency code (such as USD).

total_amount_min
number

Minimum total amount, inclusive.

total_amount_max
number

Maximum total amount, inclusive.

tax_amount_min
number

Minimum tax amount, inclusive.

tax_amount_max
number

Maximum tax amount, inclusive.

tax_rate_min
number

Minimum tax rate, inclusive.

tax_rate_max
number

Maximum tax rate, inclusive.

import_status
enum<string>

Nested statement-line filter. Requires expand=statement.lines.

Available options:
pending,
imported,
ignored,
duplicate,
invalid
vendor_ids
string[]

Bill filter. Comma-separated vnd_ ids; a bill matches any of them. Combines with vendor_id. Requires type=bill or an omitted type.

Maximum array length: 100
reconciliation_status
enum<string>

Statement filter on statement.reconciliation_status. Requires type=statement.

Available options:
reconciled,
not_reconciled
is_reconciled
boolean

Nested statement-line filter on is_reconciled. Requires expand=statement.lines.

Response

The request succeeded. With expand, each row is an envelope: document holds the document, next to the requested bill, receipt, vendor or statement.

data
object[]
required

The documents. Each item is a document, or an envelope when you send expand.

A document. id is doc_<uuid>.

has_more
boolean
required

Whether another page is available.

next_cursor
string | null
required

Cursor for the next page, or null on the last page.