Create a task
Creates a task in the credential's organization, owned by the credential's user — the SAME operation the external MCP `create_task` tool executes. `project_id` / `parent_task_id` additionally link the new task org-scoped (unknown ids answer 400 `validation_failed`). Supports the optional `Idempotency-Key` header for exactly-once retries.
Creates a task in the credential's organization, owned by the credential's user — the SAME operation the external MCP create_task tool executes. project_id / parent_task_id additionally link the new task org-scoped (unknown ids answer 400 validation_failed). Supports the optional Idempotency-Key header for exactly-once retries.
Authorization
bearerAuth A gid_ API key (Settings → API keys) or an OAuth 2.1 access token.
In: header
Header Parameters
Optional client-generated key (1-255 visible ASCII characters; a UUID works) making this POST safely retryable. Retrying with the SAME key and byte-identical body within 24h replays the stored first response (marked Idempotency-Replayed: true, never re-executed, never charged against quota). The same key with a different body answers 422 idempotency_key_reused; a retry racing the first execution answers 409 idempotency_in_progress. Omitting the header executes normally with no idempotency guarantee.
1 <= length <= 255Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Fields for creating a task.
Response Body
application/json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
curl -X POST "https://example.com/v1/tasks" \ -H "Content-Type: application/json" \ -d '{ "title": "string" }'{ "id": "string", "title": "string", "description": "string", "status": "TODO", "priority": "LOW", "start_date": "2019-08-24T14:15:22Z", "due_date": "2019-08-24T14:15:22Z", "notes": "string", "story_points": 0, "project_ids": [ "string" ], "parent_task_id": "string", "archived": true, "recurrence": { "frequency": "DAILY", "interval": -9007199254740991, "by_weekday": [ -9007199254740991 ], "by_month_day": -9007199254740991, "basis": "SCHEDULE", "timezone": "string", "start_date": "string", "end_date": "string", "max_occurrences": -9007199254740991, "rollover_enabled": true, "active": true, "rrule": "string" }, "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z"}List tasks GET
Cursor-paginated list of the credential organization's tasks (current version of each), most recently updated first. Filters: `status`, `project_id`, `parent_task_id` (subtasks of one task) and `archived` (default false — archived tasks are excluded). Every filter is baked into the cursor: reusing an `after` cursor with different filters answers 400 `validation_failed`.
Get a task GET
Fetches a single task by short id, scoped to the credential's organization. A short id from another organization (or an unknown one) answers 404 `resource_not_found` — no cross-org existence oracle.