Add an action item
Adds an open action item to an active board.
descriptionis required.assignee_user_idmakes a member of the organization the item's owner; anyone else answers 400ASSIGNEE_NOT_MEMBER.assigneeis a free-text name instead, for someone outside EvoHub.due_atis RFC 3339, or left out ornullfor no due date.
Requires the retro:action:write scope, and retro:card:write as
well.
Authorization
Parameters
Path parameters
boardIDstring requiredThe board's ID.
Request body required
descriptionstring requiredassigneestringA free-text owner name.assignee_user_idstring | nullAn organization member who owns the item.due_atstring (date-time) | null
Responses
201
The action item was added.
successbooleandataActionItemShow ActionItem properties
idstringboard_idstringdescriptionstringassigneestringA free-text owner name;""when none.assignee_user_idstring | nullThe organization member who owns the item.statusstringcreated_atstring (date-time)updated_atstring (date-time)When the item last changed.completed_atstring (date-time) | nullWhen the item was marked done;nullwhile open, and for some items done before this was recorded.due_atstring (date-time) | null
400
The body is not JSON or due_at is not RFC 3339 (INVALID_BODY),
description is missing or blank (MISSING_DESCRIPTION), or
assignee_user_id is not a member of the organization
(ASSIGNEE_NOT_MEMBER).
successbooleanSent by Retro itself; refusals before the request reaches Retro (401, 429) carry onlyerror.errorobject requiredcodestring requiredmessagestring requiredrequest_idstring
401
No API key was sent, or it is unknown, revoked or expired (UNAUTHORIZED).
successbooleanSent by Retro itself; refusals before the request reaches Retro (401, 429) carry onlyerror.errorobject requiredcodestring requiredmessagestring requiredrequest_idstring
403
The key lacks the scope this endpoint needs (FORBIDDEN).
successbooleanSent by Retro itself; refusals before the request reaches Retro (401, 429) carry onlyerror.errorobject requiredcodestring requiredmessagestring requiredrequest_idstring
404
The board does not exist, or the caller cannot see it (NOT_FOUND).
successbooleanSent by Retro itself; refusals before the request reaches Retro (401, 429) carry onlyerror.errorobject requiredcodestring requiredmessagestring requiredrequest_idstring
409
The board is closed and its content cannot change (BOARD_CLOSED). Reopen it first.
successbooleanSent by Retro itself; refusals before the request reaches Retro (401, 429) carry onlyerror.errorobject requiredcodestring requiredmessagestring requiredrequest_idstring
429
Too many requests (RATE_LIMITED). Wait for Retry-After seconds.
Retry-AfterintegerSeconds to wait before retrying.
successbooleanSent by Retro itself; refusals before the request reaches Retro (401, 429) carry onlyerror.errorobject requiredcodestring requiredmessagestring requiredrequest_idstring
500
Something went wrong on EvoHub's side (INTERNAL_ERROR). Retry later.
successbooleanSent by Retro itself; refusals before the request reaches Retro (401, 429) carry onlyerror.errorobject requiredcodestring requiredmessagestring requiredrequest_idstring
503
The owner's membership could not be checked right now (MEMBER_CHECK_UNAVAILABLE). Retry shortly.
successbooleanSent by Retro itself; refusals before the request reaches Retro (401, 429) carry onlyerror.errorobject requiredcodestring requiredmessagestring requiredrequest_idstring
Example request
curl -X POST 'https://evohub.io/api/v1/retro/boards/brd_3f9a1c7e2b8d4a60/action-items' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <TOKEN>' \
-d '{
"due_at": "2026-11-07T17:00:00Z",
"description": "Add a staging smoke test before each release",
"assignee_user_id": "usr_9c4d2f7a1e6b3058"
}'
