---
title: "Create a task card"
method: POST
path: "/v1/tasks"
---

# Create a task card

`POST /v1/tasks`

## Request

- Base URL: `https://app.takibibase.com`
- URL: `https://app.takibibase.com/v1/tasks`
- Auth: HTTP bearer

Requires task:create capability and a whole-collection grant on the project. Assigning another profile needs task:assign. Title and body are secret-scanned; instruction-shaped lines are neutralized for key callers.

## Request body

- object
  - `projectId` string, uuid
  - `title` string, required
  - `body` string
  - `assigneeProfileId` string, uuid
  - `dueAt` string, date-time

## Response `201`

Card created.

- object
  - `task` Task, required
    - `id` string, uuid
    - `projectId` string, uuid
    - `title` string
    - `body` string
    - `status` 'todo' | 'in_progress' | 'review' | 'done'
    - `blocked` boolean
    - `blockedReason` string, nullable
    - `reviewNote` string, nullable
    - `previousReviewNote` string, nullable
    - `followsUpOnId` string, uuid, nullable
    - `followsUpOn` object, nullable
      - `id` string, uuid
      - `title` string
      - `status` 'todo' | 'in_progress' | 'review' | 'done'
      - `archivedAt` string, nullable
    - `followups` object[]
      - `id` string, uuid
      - `title` string
      - `status` 'todo' | 'in_progress' | 'review' | 'done'
      - `archivedAt` string, nullable
      - `assigneeProfileId` string, nullable
      - `assigneeName` string, nullable
    - `escalationReason` string, nullable
    - `escalationRaisedAt` string, nullable
    - `escalationRaisedByProfileId` string, nullable
    - `reviewEnteredByProfileId` string, nullable
    - `reviewVerdict` 'accepted' | 'rejected' | 'null', nullable
    - `reviewVerdictAt` string, nullable
    - `lastFeedbackArtifactId` string, uuid, nullable
    - `assigneeProfileId` string, nullable
    - `assigneeName` string, nullable
    - `dueAt` string, nullable
    - `archivedAt` string, nullable
    - `createdByProfileId` string, nullable
    - `createdAt` string
    - `updatedAt` string
    - `artifacts` Artifact[]
      - `id` string, uuid
      - `kind` 'link' | 'markdown'
      - `url` string, nullable: Link target; null on markdown notes.
      - `title` string, nullable: Markdown display title as stored; null on links and untitled notes.
      - `note` string, nullable
      - `assertedSize` integer, nullable
      - `assertedHash` string, nullable
      - `createdByProfileId` string, nullable
      - `createdAt` string

## Other responses

- `400`: Invalid request.
- `401`: Missing, invalid, paused or revoked key, or human-only route.
- `403`: Capability or access denied.
- `404`: Resource not found or not visible.
- `422`: Secret blocked or assignee ineligible.
- `429`: Rate or daily budget limit.

---

[API](https://skmtc.dev/takibibase/apis/takibi-agent-api.md) · [All operations](https://skmtc.dev/takibibase/apis/takibi-agent-api/llms.txt) · [OpenAPI document](https://skmtc.dev/takibibase/apis/takibi-agent-api/revisions/5eacec570cba?raw)
