Skip to main content

Agents

Launch background agents, poll their status, stop running work, and continue completed sessions with follow-up prompts.

Agents can run directly from a prompt, optionally with files they can read, or from a workflow template. When launching a workflow that declares file input slots, provide files through the named inputs map instead of prompt.

Launch an agent

POST /agents

Create a background agent and start it asynchronously.

Scope: developer:agent · Rate limit: Heavy (30 req / min)

Request body

FieldTypeRequiredDescription
prompt{ text: string }NoPrompt for a simple agent or workflow without file input slots.
workflowIdstring (uuid)NoWorkflow template to run. Omit to launch a simple prompt-based agent.
projectIdstring (uuid)NoProject to scope the agent to.
fileIdsstring[] (uuid)NoFiles and folders a simple agent can read. Not valid when workflowId is provided.
inputsobject of string arraysNoNamed file input slots for workflow agents. Keys are workflow slot names and values are IDs.

Provide either prompt.text or workflowId. For workflows with file input slots, omit prompt and provide inputs.

Response

{
"data": {
"id": "019abc12-3456-7890-abcd-ef1234567890",
"status": "waiting",
"workflowId": null,
"projectId": "019abc12-3456-7890-abcd-ef1234567891",
"artifacts": [],
"files": [],
"createdAt": "2026-04-25T12:00:00.000Z",
"updatedAt": "2026-04-25T12:00:00.000Z"
}
}

Errors

StatusCause
400Invalid body, inaccessible files, or incompatible inputs.
401Missing or invalid API key.
403API key lacks developer:agent scope.
404Workflow not found or not accessible.
429Rate limit exceeded or the user's spend limit was reached.

Example

curl -X POST "https://<your-domain>.nomic.ai/api/v0/agents" \
-H "Authorization: Bearer $NOMIC_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": { "text": "Summarize the uploaded inspection report." },
"fileIds": ["019abc12-3456-7890-abcd-ef1234567892"]
}'

List agents

GET /agents

List background agents owned by the authenticated user.

Scope: developer:agent · Rate limit: Standard (300 req / min)

Query parameters

ParameterTypeDescription
limitintegerMax results. Default: 20, max: 100.
cursorstringPagination cursor from the previous response.
statusstringFilter by waiting, running, finished, stopped, or failed.
workflowIdstring (uuid) or nullFilter by workflow ID. Pass null to exclude agents launched from a workflow.

Response

{
"data": [
{
"id": "019abc12-3456-7890-abcd-ef1234567890",
"status": "running",
"workflowId": null,
"projectId": "019abc12-3456-7890-abcd-ef1234567891",
"artifacts": [],
"createdAt": "2026-04-25T12:00:00.000Z",
"updatedAt": "2026-04-25T12:01:00.000Z"
}
],
"nextCursor": null
}

Get agent details

GET /agents/{id}

Get the latest status, files, and artifact references for a specific agent.

Scope: developer:agent · Rate limit: Standard (300 req / min)

Path parameters

ParameterTypeDescription
idstring (uuid)Agent ID.

Example

curl "https://<your-domain>.nomic.ai/api/v0/agents/019abc12-3456-7890-abcd-ef1234567890" \
-H "Authorization: Bearer $NOMIC_API_KEY"

Stop an agent

POST /agents/{id}/stop

Request cancellation of a running agent. The transition is asynchronous, so poll GET /agents/{id} to observe the final stopped status.

Scope: developer:agent · Rate limit: Standard (300 req / min)


Follow up on an agent

POST /agents/{id}/followup

Continue a finished, stopped, or failed agent with a new user prompt.

Scope: developer:agent · Rate limit: Heavy (30 req / min)

Request body

FieldTypeRequiredDescription
prompt{ text: string }YesFollow-up prompt to queue.

Example

curl -X POST "https://<your-domain>.nomic.ai/api/v0/agents/019abc12-3456-7890-abcd-ef1234567890/followup" \
-H "Authorization: Bearer $NOMIC_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": { "text": "Now turn that summary into a punch list." }
}'