Skip to content

Search is only available in production builds. Try building and previewing the site to test it out locally.

Every document this account has run

GET
/v1/runs
curl --request GET \
--url 'https://example.com/v1/runs?limit=100' \
--header 'Authorization: Bearer <token>'

Newest first, across every key you own, singles and batch documents both.

A run that failed stays in the list. So does one whose result the retention sweep has cleared, with result_available false, because the record that the work happened is worth keeping after the work itself is gone.

limit
Limit
integer
default: 100 >= 1 <= 500

Successful Response

Media typeapplication/json
RunListResponse

What this account has run, across every key it owns.

Nothing here resurrects a result. result_available reports what the API still holds at the moment you asked: results are cleared seven days after a fetch and thirty days without one, and a zero-retention key’s result goes the moment it is served. A run whose flag is false is a record that the work happened, not a way to get it back.

object
runs
required
Runs
Array<object>
RunRow

One document an account ran, whichever way it was submitted.

A person does not think in tables. They ran a deed on Tuesday and want to know where it went, and whether it came through /v1/extracts or inside a folder batch is our filing rather than theirs. So this flattens extract_jobs and batch_items, which already carry the same facts under different column names.

result_available is the whole point of the row. It reports what the API still holds right now, and a false there is the honest answer to “where did my result go”: the retention sweep took it, and nothing resurrects it.

object
id
required
Id
string
document
required
Document
string
status
required
Status
string
source
required
Source
string
reference
required
Reference
string
key_prefix
required
Key Prefix
string
submitted_at
required
Submitted At
string format: date-time
finished_at
Any of:
string format: date-time
result_available
Result Available
boolean
document_sha256
Any of:
string
error
Any of:
string
portal_key_prefix
Any of:
string
fetched_result_days
required
Fetched Result Days

Days a collected result is kept before the sweep clears it.

integer
unfetched_result_days
required
Unfetched Result Days

Days an uncollected result is kept before the sweep clears it.

integer
Example
{
"runs": [
{
"result_available": false
}
]
}

Missing, unknown, or revoked API key

Media typeapplication/json
ErrorResponse
object
error
required
ErrorDetail
object
type
required
Type
string
message
required
Message
string
key
additional properties
any
Example
{
"error": {
"documents_used": 200,
"message": "Monthly document quota reached: 200 of 200 documents used this month. The cap resets on 2026-08-01. Email sales@easting.ai to raise it.",
"monthly_cap": 200,
"resets_on": "2026-08-01",
"type": "quota_exceeded"
}
}

Validation Error

Media typeapplication/json
HTTPValidationError
object
detail
Detail
Array<object>
ValidationError
object
loc
required
Location
Array
msg
required
Message
string
type
required
Error Type
string
input
Input
ctx
Context
object
Examplegenerated
{
"detail": [
{
"loc": [
"example"
],
"msg": "example",
"type": "example",
"input": "example",
"ctx": {}
}
]
}

Extraction temporarily unavailable

Media typeapplication/json
ErrorResponse
object
error
required
ErrorDetail
object
type
required
Type
string
message
required
Message
string
key
additional properties
any
Example
{
"error": {
"documents_used": 200,
"message": "Monthly document quota reached: 200 of 200 documents used this month. The cap resets on 2026-08-01. Email sales@easting.ai to raise it.",
"monthly_cap": 200,
"resets_on": "2026-08-01",
"type": "quota_exceeded"
}
}