curl -X GET 'https://api.anyformat.ai/v3/workflows/0686bb97-8c30-70f0-8000-97669e000eb8/optimizations/?kind=extraction&limit=20' \
-H 'Authorization: Bearer YOUR_API_KEY'
from anyformat.sdk import Client
client = Client(api_key="YOUR_API_KEY")
workflow_id = "0686bb97-8c30-70f0-8000-97669e000eb8"
page = client.list_optimizations(workflow_id, kind="extraction", limit=20)
for optimization in page.items:
print(optimization.id, optimization.status, optimization.best_accuracy)
import { Anyformat } from '@anyformat/sdk';
const af = new Anyformat({ apiKey: 'YOUR_API_KEY' });
const workflowId = '0686bb97-8c30-70f0-8000-97669e000eb8';
const page = await af.listOptimizations(workflowId, { kind: 'extraction', limit: 20 });
for (const optimization of page.items) {
console.log(optimization.id, optimization.status, optimization.best_accuracy);
}
{
"items": [
{
"id": "069dcc2c-e14c-7606-8000-2ee4fb17b4f9",
"workflow_id": "0686bb97-8c30-70f0-8000-97669e000eb8",
"kind": "extraction",
"status": "done",
"max_rounds": 3,
"baseline_accuracy": 0.5,
"best_accuracy": 0.8,
"result_version_id": "abcdef1234",
"error": null,
"rounds": [],
"created_at": "2026-07-05T10:00:00Z",
"finished_at": "2026-07-05T10:30:00Z"
}
],
"next_cursor": null
}
Optimizations
List Optimizations
List a workflow’s optimizations, newest first
GET
/
v3
/
workflows
/
{workflow_id}
/
optimizations
/
curl -X GET 'https://api.anyformat.ai/v3/workflows/0686bb97-8c30-70f0-8000-97669e000eb8/optimizations/?kind=extraction&limit=20' \
-H 'Authorization: Bearer YOUR_API_KEY'
from anyformat.sdk import Client
client = Client(api_key="YOUR_API_KEY")
workflow_id = "0686bb97-8c30-70f0-8000-97669e000eb8"
page = client.list_optimizations(workflow_id, kind="extraction", limit=20)
for optimization in page.items:
print(optimization.id, optimization.status, optimization.best_accuracy)
import { Anyformat } from '@anyformat/sdk';
const af = new Anyformat({ apiKey: 'YOUR_API_KEY' });
const workflowId = '0686bb97-8c30-70f0-8000-97669e000eb8';
const page = await af.listOptimizations(workflowId, { kind: 'extraction', limit: 20 });
for (const optimization of page.items) {
console.log(optimization.id, optimization.status, optimization.best_accuracy);
}
{
"items": [
{
"id": "069dcc2c-e14c-7606-8000-2ee4fb17b4f9",
"workflow_id": "0686bb97-8c30-70f0-8000-97669e000eb8",
"kind": "extraction",
"status": "done",
"max_rounds": 3,
"baseline_accuracy": 0.5,
"best_accuracy": 0.8,
"result_version_id": "abcdef1234",
"error": null,
"rounds": [],
"created_at": "2026-07-05T10:00:00Z",
"finished_at": "2026-07-05T10:30:00Z"
}
],
"next_cursor": null
}
Rate limit tier: general, 600 requests/min. See Rate limits.
Returns one keyset page of a workflow’s optimizations, newest first. Follow
next_cursor until it is null. See Pagination.
Pass kind to keep one kind: extraction for measured runs, extraction_oneshot for one-shot runs. Omit it to list both. An unknown kind returns 400 VALIDATION_ERROR.
Each item has the shape GET …/optimizations/{optimization_id}/ returns, except that every round leaves per_field empty. Read one optimization by id for its per-field scores. The newest item is the workflow’s latest optimization, so there is no separate route for it.
An unknown workflow returns 404, as does one in another organization.
curl -X GET 'https://api.anyformat.ai/v3/workflows/0686bb97-8c30-70f0-8000-97669e000eb8/optimizations/?kind=extraction&limit=20' \
-H 'Authorization: Bearer YOUR_API_KEY'
from anyformat.sdk import Client
client = Client(api_key="YOUR_API_KEY")
workflow_id = "0686bb97-8c30-70f0-8000-97669e000eb8"
page = client.list_optimizations(workflow_id, kind="extraction", limit=20)
for optimization in page.items:
print(optimization.id, optimization.status, optimization.best_accuracy)
import { Anyformat } from '@anyformat/sdk';
const af = new Anyformat({ apiKey: 'YOUR_API_KEY' });
const workflowId = '0686bb97-8c30-70f0-8000-97669e000eb8';
const page = await af.listOptimizations(workflowId, { kind: 'extraction', limit: 20 });
for (const optimization of page.items) {
console.log(optimization.id, optimization.status, optimization.best_accuracy);
}
{
"items": [
{
"id": "069dcc2c-e14c-7606-8000-2ee4fb17b4f9",
"workflow_id": "0686bb97-8c30-70f0-8000-97669e000eb8",
"kind": "extraction",
"status": "done",
"max_rounds": 3,
"baseline_accuracy": 0.5,
"best_accuracy": 0.8,
"result_version_id": "abcdef1234",
"error": null,
"rounds": [],
"created_at": "2026-07-05T10:00:00Z",
"finished_at": "2026-07-05T10:30:00Z"
}
],
"next_cursor": null
}
Authorizations
API key issued from app.anyformat.ai/api-key. Send as Authorization: Bearer <key>.
Path Parameters
Query Parameters
Only optimizations of this kind.
Available options:
extraction, extraction_oneshot Page size, capped at 100.
Required range:
1 <= x <= 100Opaque token from a previous response's next_cursor.

