curl -X GET 'https://api.anyformat.ai/v3/workflows/0686bb97-8c30-70f0-8000-97669e000eb8/document-packets/?limit=20' \
-H 'Authorization: Bearer YOUR_API_KEY'
import requests
workflow_id = "0686bb97-8c30-70f0-8000-97669e000eb8"
url = f"https://api.anyformat.ai/v3/workflows/{workflow_id}/document-packets/"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
page = requests.get(url, headers=headers, params={"limit": 20}).json()
for packet in page["items"]:
print(packet["id"], packet["status"])
{
"items": [
{
"id": "069dcc2c-e14c-7606-8000-2ee4fb17b4e1",
"workflow_id": "0686bb97-8c30-70f0-8000-97669e000eb8",
"name": "invoice-1043.pdf",
"status": "processed",
"created_at": "2026-07-01T12:00:00.000Z",
"updated_at": "2026-07-01T12:05:00.000Z"
},
{
"id": "069dcc2c-e14c-7606-8000-2ee4fb17b4e4",
"workflow_id": "0686bb97-8c30-70f0-8000-97669e000eb8",
"name": "invoice-1044.pdf",
"status": "not_started",
"created_at": "2026-07-01T11:00:00.000Z",
"updated_at": "2026-07-01T11:00:00.000Z"
}
],
"next_cursor": null
}
Document packets
List Document Packets
List a workflow’s document packets, newest first
GET
/
v3
/
workflows
/
{workflow_id}
/
document-packets
/
curl -X GET 'https://api.anyformat.ai/v3/workflows/0686bb97-8c30-70f0-8000-97669e000eb8/document-packets/?limit=20' \
-H 'Authorization: Bearer YOUR_API_KEY'
import requests
workflow_id = "0686bb97-8c30-70f0-8000-97669e000eb8"
url = f"https://api.anyformat.ai/v3/workflows/{workflow_id}/document-packets/"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
page = requests.get(url, headers=headers, params={"limit": 20}).json()
for packet in page["items"]:
print(packet["id"], packet["status"])
{
"items": [
{
"id": "069dcc2c-e14c-7606-8000-2ee4fb17b4e1",
"workflow_id": "0686bb97-8c30-70f0-8000-97669e000eb8",
"name": "invoice-1043.pdf",
"status": "processed",
"created_at": "2026-07-01T12:00:00.000Z",
"updated_at": "2026-07-01T12:05:00.000Z"
},
{
"id": "069dcc2c-e14c-7606-8000-2ee4fb17b4e4",
"workflow_id": "0686bb97-8c30-70f0-8000-97669e000eb8",
"name": "invoice-1044.pdf",
"status": "not_started",
"created_at": "2026-07-01T11:00:00.000Z",
"updated_at": "2026-07-01T11:00:00.000Z"
}
],
"next_cursor": null
}
Rate limit tier: general, 600 requests/min. See Rate limits.
Returns one keyset page of a workflow’s document packets, newest first. Follow
next_cursor until it is null. See Pagination.
Each item is a slim summary: id, name, status and timestamps. For the per-file breakdown and latest_run_id, fetch GET /v3/document-packets/{document_packet_id}/.
Packet status reflects the packet’s most recent extraction. It is one of not_started, queued, in_progress, processed, error or cancelled. A packet that has never run is not_started.
curl -X GET 'https://api.anyformat.ai/v3/workflows/0686bb97-8c30-70f0-8000-97669e000eb8/document-packets/?limit=20' \
-H 'Authorization: Bearer YOUR_API_KEY'
import requests
workflow_id = "0686bb97-8c30-70f0-8000-97669e000eb8"
url = f"https://api.anyformat.ai/v3/workflows/{workflow_id}/document-packets/"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
page = requests.get(url, headers=headers, params={"limit": 20}).json()
for packet in page["items"]:
print(packet["id"], packet["status"])
{
"items": [
{
"id": "069dcc2c-e14c-7606-8000-2ee4fb17b4e1",
"workflow_id": "0686bb97-8c30-70f0-8000-97669e000eb8",
"name": "invoice-1043.pdf",
"status": "processed",
"created_at": "2026-07-01T12:00:00.000Z",
"updated_at": "2026-07-01T12:05:00.000Z"
},
{
"id": "069dcc2c-e14c-7606-8000-2ee4fb17b4e4",
"workflow_id": "0686bb97-8c30-70f0-8000-97669e000eb8",
"name": "invoice-1044.pdf",
"status": "not_started",
"created_at": "2026-07-01T11:00:00.000Z",
"updated_at": "2026-07-01T11:00:00.000Z"
}
],
"next_cursor": null
}
Authorizations
API key issued from app.anyformat.ai/api-key. Send as Authorization: Bearer <key>.
Path Parameters
Query Parameters
Page size, capped at 100.
Required range:
1 <= x <= 100Opaque token from a previous response's next_cursor.
Response
Successful Response
One keyset page of document packets.
Fixed (-created_at, -id) order. No totals or page numbers —
iterate by following next_cursor until it is null.

