Skip to content

Convert a checklist item into a card

POST
/boards/{board}/cards/{card}/checklists/{checklist}/items/{checklistItem}/conversion
curl --request POST \
--url https://projects.work.optidata.cloud/api/boards/1/cards/1/checklists/1/items/1/conversion \
--header 'Authorization: Bearer <token>'

Promotes the checklist item to a standalone card on the board and links it to the original card with a parent-task relationship. Returns 422 when the target is not a checklist item.

board
required
integer

Board id.

card
required
integer

Card id (must belong to the board).

checklist
required
integer

Checklist id (must belong to the card).

checklistItem
required
integer

Checklist item id (must belong to the checklist).

The promoted card and the created relationship.

Media typeapplication/json
object
card

A task. Derived attributes (tags_ids, assignees_ids, *_count, human_*, due_date_status, is_time_tracking) are present on single card reads; list contexts may return a subset of attributes.

object
id
integer
board_id
integer
column_id
integer
user_id

Creator user id.

integer | null
title
string
<= 255 characters
content

Rich-text description (serialized editor document, JSON string).

string | null
type
string
Allowed values: ORDINARY CHECKLIST_ITEM
status
string | null
Allowed values: OPEN CLOSED ARCHIVED
icon
string | null
order

Position within its column.

integer
number

Sequential card number within the board.

integer
due_date
string | null format: date-time
due_date_hash

Opaque id tied to the current due date (used for calendar sync).

string | null
pinned_at
string | null format: date-time
completed_at
string | null format: date-time
archived_at
string | null format: date-time
deleted_at
string | null format: date-time
checklist_id

Owning checklist (checklist-item cards only).

integer | null
checklist_items

Cached count of checklist items on this card.

integer | null
checklist_items_completed
integer | null
card_recurrence_id
integer | null
cover_color
string | null
Allowed values: #ef4444 #f97316 #eab308 #22c55e #06b6d4 #3b82f6 #8b5cf6 #ec4899 #6b7280 #000000
created_at
string format: date-time
updated_at
string format: date-time
tags_ids

Ids of the card’s tags (as strings; may contain null when empty).

Array<string | null> | null
assignees_ids

Ids of the card’s assignees (as strings; may contain null when empty).

Array<string | null> | null
is_time_tracking

Truthy when the caller has a running timer on this card.

boolean | integer | null
comments_count
integer
files_count
integer
custom_fields_count
integer
due_date_status
string | null
Allowed values: OVERDUE NEAR FAR
human_due_date

Localized short due date (e.g. Aug 1, 2026).

string | null
short_locale_date
string | null
human_verbose_due_date
string | null
is_completed
boolean
is_recurrent
boolean
relationship

The parent-task relationship created between the original card and the new card.

object
key
additional properties
any
Example
{
"card": {
"type": "ORDINARY",
"status": "OPEN",
"cover_color": "#ef4444",
"due_date_status": "OVERDUE"
}
}

Missing, invalid or expired bearer passport.

Media typeapplication/json
object
error
string
Example
{
"error": "JWT passport exception: Missing bearer token in request"
}

The authenticated user lacks the required board permission.

Media typeapplication/json
object
message
string
Example
{
"message": "This action is unauthorized."
}

Resource not found, or a nested resource does not belong to its parent in the path.

Media typeapplication/json
object
message
string
Example
{
"message": "Not found."
}

Validation failed.

Media typeapplication/json
object
message

First validation error message.

string
errors

Map of field name → list of error messages.

object
key
additional properties
Array<string>
Example
{
"message": "The name field is required.",
"errors": {
"name": [
"The name field is required."
]
}
}