from retab import Retab
client = Retab()
workflows = client.workflows.list(
limit=10,
order="desc",
sort_by="updated_at",
)
filtered = client.workflows.list(
after="workflow_abc123xyz",
limit=5,
fields="id,name,updated_at",
)
print(workflows.list_metadata.after)
print(filtered.data[0]["name"])
{
"data": [
{
"id": "workflow_def456xyz",
"name": "Invoice Processing",
"description": "Extract invoice fields and route for review",
"is_published": true,
"published_snapshot_id": "snapshot_123",
"published_at": "2026-03-12T09:45:00Z",
"draft_version": "draft_v12",
"organization_id": "org_123",
"email_senders_whitelist": [],
"email_domains_whitelist": ["acme.com"],
"created_at": "2026-03-10T12:00:00Z",
"updated_at": "2026-03-12T09:45:00Z"
},
{
"id": "workflow_abc123xyz",
"name": "Receipt Classification",
"description": "",
"is_published": false,
"published_snapshot_id": null,
"published_at": null,
"draft_version": "draft_v3",
"organization_id": "org_123",
"email_senders_whitelist": [],
"email_domains_whitelist": [],
"created_at": "2026-03-09T15:30:00Z",
"updated_at": "2026-03-11T18:20:00Z"
}
],
"list_metadata": {
"before": null,
"after": "workflow_abc123xyz"
}
}
List workflows with pagination and optional filtering.
from retab import Retab
client = Retab()
workflows = client.workflows.list(
limit=10,
order="desc",
sort_by="updated_at",
)
filtered = client.workflows.list(
after="workflow_abc123xyz",
limit=5,
fields="id,name,updated_at",
)
print(workflows.list_metadata.after)
print(filtered.data[0]["name"])
{
"data": [
{
"id": "workflow_def456xyz",
"name": "Invoice Processing",
"description": "Extract invoice fields and route for review",
"is_published": true,
"published_snapshot_id": "snapshot_123",
"published_at": "2026-03-12T09:45:00Z",
"draft_version": "draft_v12",
"organization_id": "org_123",
"email_senders_whitelist": [],
"email_domains_whitelist": ["acme.com"],
"created_at": "2026-03-10T12:00:00Z",
"updated_at": "2026-03-12T09:45:00Z"
},
{
"id": "workflow_abc123xyz",
"name": "Receipt Classification",
"description": "",
"is_published": false,
"published_snapshot_id": null,
"published_at": null,
"draft_version": "draft_v3",
"organization_id": "org_123",
"email_senders_whitelist": [],
"email_domains_whitelist": [],
"created_at": "2026-03-09T15:30:00Z",
"updated_at": "2026-03-11T18:20:00Z"
}
],
"list_metadata": {
"before": null,
"after": "workflow_abc123xyz"
}
}
before or after to page through results, and fields to limit the returned fields.
from retab import Retab
client = Retab()
workflows = client.workflows.list(
limit=10,
order="desc",
sort_by="updated_at",
)
filtered = client.workflows.list(
after="workflow_abc123xyz",
limit=5,
fields="id,name,updated_at",
)
print(workflows.list_metadata.after)
print(filtered.data[0]["name"])
{
"data": [
{
"id": "workflow_def456xyz",
"name": "Invoice Processing",
"description": "Extract invoice fields and route for review",
"is_published": true,
"published_snapshot_id": "snapshot_123",
"published_at": "2026-03-12T09:45:00Z",
"draft_version": "draft_v12",
"organization_id": "org_123",
"email_senders_whitelist": [],
"email_domains_whitelist": ["acme.com"],
"created_at": "2026-03-10T12:00:00Z",
"updated_at": "2026-03-12T09:45:00Z"
},
{
"id": "workflow_abc123xyz",
"name": "Receipt Classification",
"description": "",
"is_published": false,
"published_snapshot_id": null,
"published_at": null,
"draft_version": "draft_v3",
"organization_id": "org_123",
"email_senders_whitelist": [],
"email_domains_whitelist": [],
"created_at": "2026-03-09T15:30:00Z",
"updated_at": "2026-03-11T18:20:00Z"
}
],
"list_metadata": {
"before": null,
"after": "workflow_abc123xyz"
}
}
Items per page
1 <= x <= 100asc, desc Comma-separated list of fields to return (e.g., 'id,name'). If not specified, returns all fields.