API reference
The agentic workflows in the account, across every project.
/v1/workflowsworkflows:readEvery workflow in the account, across all its projects, most recently updated first. Each one carries its most recent run, if it has been run.
| Name | Type | Description |
|---|---|---|
limitquery | integer | How many to return. 1 to 100. Default 25. |
cursorquery | string | The next_cursor from the previous page. Leave it out for the first page. |
statusquery | string | Only workflows with this status. One of draft, active, paused. |
project_idquery | string (uuid) | Only the workflows in this project. |
| Field | Type | Description |
|---|---|---|
data | array of object | |
data[].id | string (uuid) | |
data[].name | string | |
data[].description | string | |
data[].status | string | |
data[].project_id | string or null (uuid) | null for a workflow not yet in a project. |
data[].updated_at | string (date-time) | |
data[].last_run | object or null | |
data[].last_run.id | string (uuid) | |
data[].last_run.status | string | queued, running, succeeded, failed, awaiting_approval or cancelled. |
data[].last_run.at | string (date-time) | When the run was created (UTC). |
has_more | boolean | |
next_cursor | string or null |
The codes are listed under Errors.
curl "https://api.veragen.ai/v1/workflows?limit=25" \
-H "Authorization: Bearer $VERAGEN_API_KEY"const res = await fetch("https://api.veragen.ai/v1/workflows?limit=25", {
headers: { Authorization: `Bearer ${process.env.VERAGEN_API_KEY}` },
});
const data = await res.json();import os, requests
res = requests.get(
"https://api.veragen.ai/v1/workflows",
params={"limit": 25},
headers={"Authorization": f"Bearer {os.environ['VERAGEN_API_KEY']}"},
)
data = res.json(){
"data": [
{
"id": "3f6c1d2e-8a4b-4f7e-9c21-5d0e7a1b2c3d",
"name": "Weekly competitor digest",
"description": "Reads five competitor blogs and writes a summary page.",
"status": "active",
"project_id": "9a8b7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d",
"updated_at": "2026-10-02T15:04:05.123Z",
"last_run": {
"id": "c0ffee00-1234-4abc-9def-0123456789ab",
"status": "succeeded",
"at": "2026-10-03T06:00:00.000Z"
}
},
{
"id": "7b2e9f40-6c1d-4e8a-b3f5-2a9d0c7e1f64",
"name": "Lead enrichment",
"description": "",
"status": "draft",
"project_id": null,
"updated_at": "2026-09-30T09:12:44.000Z",
"last_run": null
}
],
"has_more": true,
"next_cursor": "WyIyMDI2LTA5LTMwVDA5OjEyOjQ0LjAwMDAwMFoiLCI3YjJlOWY0MC02YzFkLTRlOGEtYjNmNS0yYTlkMGM3ZTFmNjQiXQ"
}/v1/workflows/{id}workflows:readOne workflow, with its most recent run.
| Name | Type | Description |
|---|---|---|
idpath, required | string (uuid) | The workflow's id. |
| Field | Type | Description |
|---|---|---|
id | string (uuid) | |
name | string | |
description | string | |
status | string | |
project_id | string or null (uuid) | null for a workflow not yet in a project. |
updated_at | string (date-time) | |
last_run | object or null | |
last_run.id | string (uuid) | |
last_run.status | string | queued, running, succeeded, failed, awaiting_approval or cancelled. |
last_run.at | string (date-time) | When the run was created (UTC). |
The codes are listed under Errors.
curl "https://api.veragen.ai/v1/workflows/{id}" \
-H "Authorization: Bearer $VERAGEN_API_KEY"const res = await fetch("https://api.veragen.ai/v1/workflows/{id}", {
headers: { Authorization: `Bearer ${process.env.VERAGEN_API_KEY}` },
});
const data = await res.json();import os, requests
res = requests.get(
"https://api.veragen.ai/v1/workflows/{id}",
headers={"Authorization": f"Bearer {os.environ['VERAGEN_API_KEY']}"},
)
data = res.json(){
"id": "3f6c1d2e-8a4b-4f7e-9c21-5d0e7a1b2c3d",
"name": "Weekly competitor digest",
"description": "Reads five competitor blogs and writes a summary page.",
"status": "active",
"project_id": "9a8b7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d",
"updated_at": "2026-10-02T15:04:05.123Z",
"last_run": {
"id": "c0ffee00-1234-4abc-9def-0123456789ab",
"status": "succeeded",
"at": "2026-10-03T06:00:00.000Z"
}
}