Create a task

Creates a task. Only title is required — a task does not need a project, an assignee or a date.

Assign the task with assignee_member_id: a team member id from GET /public-api/v1/team_members, or me for whoever the token belongs to. Responses report the assignee twice, as assignee_member_id and as the user's assignee_id, but only assignee_member_id is writable.

Subtasks

Send parent_task_uuid to create the task underneath an existing one. A subtask takes its project and billable setting from its parent, so project_id cannot be sent alongside parent_task_uuid.

Tasks nest two levels deep at most — a top-level task, a subtask, and a subtask of that. Pointing at a parent that is already at the bottom fails with 422 invalid_value. Read a task's children with GET /public-api/v1/tasks/{uuid}/subtasks.

Body
required
application/json

Task attributes, wrapped in a task key.

  • task
    Type: object
    required
Responses
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
Request Example for post/public-api/v1/tasks
curl https://app.hellobonsai.com/public-api/v1/tasks \
  --request POST \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
  --data '{
  "task": {
    "title": "Finalize homepage mockups",
    "project_id": 51,
    "parent_task_uuid": "ad3fdad8-5072-46df-8800-bb57299179df",
    "assignee_member_id": "me",
    "priority": "high",
    "due_date": "2026-05-15",
    "start_date": "2026-05-01",
    "description": "<p>Draft the <strong>brief</strong></p>",
    "time_estimate_in_minutes": 90,
    "task_status_id": "e1c4b06e-3a0f-4a52-9c8f-6a1d2b3c4d5e",
    "tag_ids": [
      7,
      12
    ]
  }
}'
{
  "data": {
    "uuid": "ad3fdad8-5072-46df-8800-bb57299179df",
    "title": "Finalize homepage mockups",
    "number": "ACME-00104",
    "due_date": "2026-05-15",
    "start_date": "2026-05-01",
    "time_estimate_in_minutes": 90,
    "priority": "high",
    "completed_at": "2026-04-14T09:12:04.000Z",
    "archived_at": "2026-04-14T09:12:04.000Z",
    "assignee_id": 6012,
    "assignee_member_id": 314,
    "creator_member_id": 315,
    "project_id": 51,
    "billable": true,
    "parent_task_uuid": "e5b1c7d2-91aa-4f30-8f6d-2c1b4a5e7f80",
    "project_title": "Acme Website",
    "assignee_member_name": "Maria Santos",
    "url": "https://app.hellobonsai.com/tasks/ad3fdad8-5072-46df-8800-bb57299179df",
    "task_status": {
      "id": "e1c4b06e-3a0f-4a52-9c8f-6a1d2b3c4d5e",
      "status": "In Progress",
      "state": "active",
      "color": "#520EB0",
      "position": 1
    },
    "company_tags": [
      {
        "id": 7,
        "name": "VIP"
      }
    ],
    "description_html": "<p>Draft the <strong>brief</strong></p>",
    "description_plain_text": "Draft the brief"
  },
  "meta": {
    "request_id": "b1f0d2c4-7a9e-4c3b-8d5f-1e2a3b4c5d6e"
  }
}