REST API
POST/folders/{folderId}/agent-generateAPI v1

Folder agent generate

4 min readWorkspaces & foldersView as Markdown

POST /folders/{folderId}/agent-generate

Generate agent based on input text prompts

Base URL: https://www.taskade.com/api/v1

Authentication

Send a personal access token or an OAuth 2.0 access token as a bearer token. Create a personal access token at taskade.com/settings/api.

Http
Authorization: Bearer tskdp_your_token_here

Parameters

Name In Type Required Description
folderId path string Yes —

Request body

application/json

Field Type Required Description
text string Yes —

Example request

Bash
curl -X POST "https://www.taskade.com/api/v1/folders/<folderId>/agent-generate" \
  -H "Authorization: Bearer $TASKADE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"text":"<text>"}'

Responses

200 — Default response

Field Type Required Description
ok boolean Yes —
item object Yes —
item.id string Yes —
item.name string Yes —
item.space_id string Yes —
item.data object Yes —
item.data.commands object[] Yes —
item.data.commands[].name string Yes Human-readable name of the command in title case. This should probably be a verb.
item.data.commands[].description string No Short summary for discovery (e.g. progressive disclosure / skill listing). The full instruction stays in prompt.
item.data.commands[].prompt string Yes Tell the agent what this command will do. It should be positioned as a direct instruction to the agent. At least 30 words.
item.data.commands[].id string Yes ID based on the name in snake case.
item.data.commands[].mode string No Allowed values: default, plan-and-execute-v1, plan-and-execute-v2.
item.data.description string No Role and purpose of agent, positioned as a direct instruction to the agent. Example: "You are a doctor that helps save lives.". At least 100 words.
item.data.tone string No Allowed values: authoritative, clinical, cold, confident, cynical, emotional, empathetic, formal, friendly, humourous, informal, ironic, optimistic, pessimistic, playful, sarcastic, serious, sympathetic, tentative, warm, creative, inspiring, casual.
item.data.avatar object No —
item.data.avatar.type string Yes Allowed values: emoji.
item.data.avatar.data object Yes —
item.data.avatar.data.value string Yes Pick the most suitable emoji for this agent.
item.data.knowledgeEnabled boolean No —
item.data.language string No The language of the agent, e.g. en-US, zh-Hans
item.data.inputPlaceholder string No —

A nested field marked Yes is required whenever its parent object is present.

4XX — Error description

Field Type Required Description
ok boolean Yes —
message string Yes —
code string Yes —
statusMessage string Yes —
featureId string No The plan entitlement the request needs, set on some PAYMENT_REQUIRED errors.

Errors

Errors return an ok: false envelope. Rate limiting returns 429 with x-rate-limit-limit, x-rate-limit-remaining and x-rate-limit-reset headers. x-rate-limit-reset is the number of seconds until the window reopens. Retry-After is not sent, so schedule retries from x-rate-limit-reset; retrying sooner will fail again.

Json
{ "ok": false, "message": "Unauthorized", "code": "UNAUTHORIZED" }

Rate limits for this version: enforced per endpoint; ceilings are not published and can change without notice. A 429 response carries x-rate-limit-limit, x-rate-limit-remaining, and x-rate-limit-reset (seconds until the window reopens). Back off from those headers rather than hardcoding numbers. Bundle import and export run under tighter limits than regular reads and writes, so schedule bulk transfers accordingly. See Rate limits.