curl -X GET 'https://api.anyformat.ai/v3/workflows/?limit=20' \
-H 'Authorization: Bearer YOUR_API_KEY'
import requests
url = "https://api.anyformat.ai/v3/workflows/"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
cursor = None
while True:
params = {"limit": 20, **({"cursor": cursor} if cursor else {})}
page = requests.get(url, headers=headers, params=params).json()
for workflow in page["items"]:
print(workflow["id"], workflow["name"])
cursor = page["next_cursor"]
if cursor is None:
break
interface WorkflowSummary {
id: string;
name: string;
description: string | null;
created_at: string | null;
updated_at: string | null;
}
interface WorkflowListPage {
items: WorkflowSummary[];
next_cursor: string | null;
}
let cursor: string | null = null;
do {
const params = new URLSearchParams({ limit: '20' });
if (cursor) params.set('cursor', cursor);
const response = await fetch(`https://api.anyformat.ai/v3/workflows/?${params}`, {
headers: { 'Authorization': 'Bearer YOUR_API_KEY' },
});
const page: WorkflowListPage = await response.json();
page.items.forEach(w => console.log(w.id, w.name));
cursor = page.next_cursor;
} while (cursor !== null);
{
"items": [
{
"id": "0686bb97-8c30-70f0-8000-97669e000eb8",
"name": "Invoice Processing",
"description": "Extract data from invoice documents",
"created_at": "2026-07-01T12:00:00.000Z",
"updated_at": "2026-07-01T12:00:00.000Z"
}
],
"next_cursor": "eyJjcmVhdGVkX2F0IjoiMjAyNi0wNy0wMVQxMjowMDowMFoifQ"
}
Workflows
List Workflows
List your organization’s workflows, newest first
GET
/
v3
/
workflows
/
curl -X GET 'https://api.anyformat.ai/v3/workflows/?limit=20' \
-H 'Authorization: Bearer YOUR_API_KEY'
import requests
url = "https://api.anyformat.ai/v3/workflows/"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
cursor = None
while True:
params = {"limit": 20, **({"cursor": cursor} if cursor else {})}
page = requests.get(url, headers=headers, params=params).json()
for workflow in page["items"]:
print(workflow["id"], workflow["name"])
cursor = page["next_cursor"]
if cursor is None:
break
interface WorkflowSummary {
id: string;
name: string;
description: string | null;
created_at: string | null;
updated_at: string | null;
}
interface WorkflowListPage {
items: WorkflowSummary[];
next_cursor: string | null;
}
let cursor: string | null = null;
do {
const params = new URLSearchParams({ limit: '20' });
if (cursor) params.set('cursor', cursor);
const response = await fetch(`https://api.anyformat.ai/v3/workflows/?${params}`, {
headers: { 'Authorization': 'Bearer YOUR_API_KEY' },
});
const page: WorkflowListPage = await response.json();
page.items.forEach(w => console.log(w.id, w.name));
cursor = page.next_cursor;
} while (cursor !== null);
{
"items": [
{
"id": "0686bb97-8c30-70f0-8000-97669e000eb8",
"name": "Invoice Processing",
"description": "Extract data from invoice documents",
"created_at": "2026-07-01T12:00:00.000Z",
"updated_at": "2026-07-01T12:00:00.000Z"
}
],
"next_cursor": "eyJjcmVhdGVkX2F0IjoiMjAyNi0wNy0wMVQxMjowMDowMFoifQ"
}
Rate limit tier: general, 600 requests/min. See Rate limits.
Returns one keyset page of your organization’s workflows, newest first. Follow
next_cursor until it is null. The response carries no totals and no page numbers. See Pagination.
Each item is a slim summary. For the full typed graph, fetch GET /v3/workflows/{workflow_id}/.
curl -X GET 'https://api.anyformat.ai/v3/workflows/?limit=20' \
-H 'Authorization: Bearer YOUR_API_KEY'
import requests
url = "https://api.anyformat.ai/v3/workflows/"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
cursor = None
while True:
params = {"limit": 20, **({"cursor": cursor} if cursor else {})}
page = requests.get(url, headers=headers, params=params).json()
for workflow in page["items"]:
print(workflow["id"], workflow["name"])
cursor = page["next_cursor"]
if cursor is None:
break
interface WorkflowSummary {
id: string;
name: string;
description: string | null;
created_at: string | null;
updated_at: string | null;
}
interface WorkflowListPage {
items: WorkflowSummary[];
next_cursor: string | null;
}
let cursor: string | null = null;
do {
const params = new URLSearchParams({ limit: '20' });
if (cursor) params.set('cursor', cursor);
const response = await fetch(`https://api.anyformat.ai/v3/workflows/?${params}`, {
headers: { 'Authorization': 'Bearer YOUR_API_KEY' },
});
const page: WorkflowListPage = await response.json();
page.items.forEach(w => console.log(w.id, w.name));
cursor = page.next_cursor;
} while (cursor !== null);
{
"items": [
{
"id": "0686bb97-8c30-70f0-8000-97669e000eb8",
"name": "Invoice Processing",
"description": "Extract data from invoice documents",
"created_at": "2026-07-01T12:00:00.000Z",
"updated_at": "2026-07-01T12:00:00.000Z"
}
],
"next_cursor": "eyJjcmVhdGVkX2F0IjoiMjAyNi0wNy0wMVQxMjowMDowMFoifQ"
}
Authorizations
API key issued from app.anyformat.ai/api-key. Send as Authorization: Bearer <key>.
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 workflows.
Fixed (-created_at, -id) order. No totals or page numbers by design
(ANY-1608) — iterate by following next_cursor until it is null.

