Create a board
Creates an active board with no columns; add them with
POST /api/v1/retro/boards/{boardID}/columns. Voting and comments
are on, and the board gets a working share link in participate
mode (change it with PATCH /api/v1/retro/boards/{boardID}/share).
Whoever creates the board is named on it, so a private board stays
visible to them.
nameis required, at most 200 characters.team_idmust be a team the caller is in, or""(the default) for the whole organization; otherwise 403NOT_IN_TEAM.visibilitydefaults toteamwhen a team is given andorgotherwise. Ateamboard needs ateam_id.
Requires the retro:board:write scope.
Authorization
Request body required
namestring requireddescriptionstringteam_idstringA team the caller is in, or""(the default) for the whole organization.visibilityVisibility
Responses
201
The board was created.
successbooleandataBoardShow Board properties
idstringorg_idstringnamestringdescriptionstringstatusstringteam_idstringThe team the board belongs to, or""for the whole organization.visibilityVisibilitycreated_bystringThe user ID (or, for an organization key, the key's ID) that created the board.created_atstring (date-time)voting_enabledbooleancomments_enabledbooleansort_by_votesbooleanEvery column's cards are ordered highest vote first, for everyone.share_modeShareModeshare_tokenstringThe credential the board's share link carries.share_urlstringThe board's share link; left out while sharing isdisabled.timerTimerShow Timer properties
statestringA running timer whose end has passed staysrunningwithremaining_ms0 until it is stopped.ends_atstring (date-time)When a running countdown ends; left out otherwise.remaining_msinteger (int64)Time left, in milliseconds.server_timestring (date-time)The server's clock when the timer was read.
columnsarray of ColumnOnly when one board is read; left out when the board has none.Show Column properties
idstringboard_idstringnamestringemojistringcolorstringpositionintegersort_orderintegercreated_atstring (date-time)cardsarray of CardOnly when a whole board is read.Show Card properties
idstringboard_idstringcolumn_idstringcontentstringcreated_atstring (date-time)reactionsarray of ReactionOnly when a whole board is read; left out when there are none.Show Reaction properties
emojistringcountintegerreactedbooleanWhether the caller reacted with this emoji.
commentsarray of CommentOnly when a whole board is read; left out when there are none.Show Comment properties
idstringcard_idstringboard_idstringcontentstringcreated_atstring (date-time)
vote_scoreintegerThe net of agree (+1) and disagree (-1) votes.my_voteintegerThe caller's own vote on the card.
action_itemsarray of ActionItemOnly when one board is read; left out when the board has none.Show 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 (INVALID_BODY), name is missing or blank
(MISSING_NAME), name is over 200 characters
(VALIDATION_FAILED, in the ValidationFailed shape),
visibility is not org, team or private
(INVALID_VISIBILITY), or a team board has no team_id
(TEAM_REQUIRED).
- Error
Show Error properties
successbooleanSent by Retro itself; refusals before the request reaches Retro (401, 429) carry onlyerror.errorobject requiredcodestring requiredmessagestring requiredrequest_idstring
- ValidationFailed
Show ValidationFailed properties
successbooleanerrorobject requiredcodestring requiredmessagestring requireddetailsarray of object requiredfieldstringmessagestring
request_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 retro:board:write (FORBIDDEN), or team_id names a team the caller is not in (NOT_IN_TEAM).
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
Example request
curl -X POST 'https://evohub.io/api/v1/retro/boards' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <TOKEN>' \
-d '{
"name": "Sprint 42 retro",
"team_id": "team_6a1f3e9c2d7b4058",
"description": "What went well and what to change after sprint 42"
}'
