Workflows
A workflow is a reusable agent configuration. These endpoints let you list, create, and retrieve workflows scoped to the API key's account.
The workflow object#
idstringoptionalUnique identifier for the workflow.
namestringoptionalHuman-readable name, 1–120 characters.
descriptionstring | nulloptionalOptional description, up to 500 characters.
statusstringoptionalEither
active or paused. Runs cannot be triggered on a paused workflow.modelstringoptionalDefault model used by agents that don't set their own, e.g.
claude-sonnet-4-6.crewAgent[]optionalThe ordered list of agents (1–10). Each agent has
role, systemPrompt, and an optional model.created_atstringoptionalISO 8601 timestamp of creation.
updated_atstringoptionalISO 8601 timestamp of the last update. Returned on list and retrieve (not on the create response).
List workflows#
GET
/v1/workflowsReturns every workflow owned by the authenticated account, most recently updated first. Takes no parameters.
Request
bash
curl https://api.loopllama.ai/v1/workflows \
-H "Authorization: Bearer $LOOPLLAMA_API_KEY"Response
json
{
"data": [
{
"id": "ckv9...",
"name": "Brief writer",
"description": null,
"status": "active",
"model": "claude-sonnet-4-6",
"crew": [
{ "role": "planner", "systemPrompt": "You are a planning agent..." },
{ "role": "writer", "systemPrompt": "You are a writing agent..." }
],
"created_at": "2026-05-20T17:00:00.000Z",
"updated_at": "2026-05-20T17:00:00.000Z"
}
]
}Create a workflow#
POST
/v1/workflowsCreates a new workflow. If crew is omitted, the default planner→writer crew is used. Responds with 201 Created.
Body parameters
namestringrequiredWorkflow name, 1–120 characters.
descriptionstringoptionalOptional description, up to 500 characters.
modelstringoptionalOptional default model, up to 80 characters. Defaults to the server's configured model (
claude-sonnet-4-6).crewAgent[]optionalOptional array of 1–10 agents. Each agent requires
role (1–60 chars) and systemPrompt (1–8000 chars), with an optional model.Request
bash
curl -X POST https://api.loopllama.ai/v1/workflows \
-H "Authorization: Bearer $LOOPLLAMA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Spec reviewer",
"description": "Summarize specs and surface risks",
"crew": [
{ "role": "researcher", "systemPrompt": "Extract key claims and open questions." },
{ "role": "writer", "systemPrompt": "Draft a one-page summary with a Risks section." }
]
}'Response
json
{
"data": {
"id": "ckva...",
"name": "Spec reviewer",
"description": "Summarize specs and surface risks",
"status": "active",
"model": "claude-sonnet-4-6",
"crew": [
{ "role": "researcher", "systemPrompt": "Extract key claims and open questions." },
{ "role": "writer", "systemPrompt": "Draft a one-page summary with a Risks section." }
],
"created_at": "2026-05-20T17:05:00.000Z"
}
}Retrieve a workflow#
GET
/v1/workflows/{id}Fetches a single workflow by id. Returns 404 Not found if the workflow doesn't exist or belongs to a different account.
Path parameters
idstringrequiredThe workflow id.
Request
bash
curl https://api.loopllama.ai/v1/workflows/ckva... \
-H "Authorization: Bearer $LOOPLLAMA_API_KEY"Response
json
{
"data": {
"id": "ckva...",
"name": "Spec reviewer",
"description": "Summarize specs and surface risks",
"status": "active",
"model": "claude-sonnet-4-6",
"crew": [ { "role": "researcher", "systemPrompt": "..." } ],
"created_at": "2026-05-20T17:05:00.000Z",
"updated_at": "2026-05-20T17:05:00.000Z"
}
}