Create a task
A new card, on top of its column, planned unless another column is named. An issue in whichever tracker the board is connected to is opened for it on its own.
POST
/tasksAuthorization
AuthorizationBearer token · headerrequired`MEDIAN_KEY` from Settings under API, or an MCP OAuth access token. A key acts as the organization; a token acts as the person who approved it.
Request body
requiredapplication/jsontitlestringrequiredmax length 160
descriptionstringmax length 10000
statusstringAllowed:
requestsplannedin_progressin_reviewdoneprioritystringAllowed:
urgenthighmediumlowassigneestringA teammate's identity key or their email address.
Responses
200The card.
idstringkeystringnumberinteger400The request is malformed, and the message names the field.
errorobjectShow propertiesHide properties
codestringmessagestring401The bearer token is missing, revoked, or expired.
errorobjectShow propertiesHide properties
codestringmessagestring429Too many requests. Wait the seconds in `Retry-After`. Limits depend on the plan. See [rate limits](/api/errors-and-limits#rate-limits).
errorobjectShow propertiesHide properties
codestringmessagestringRequest
curl -X POST "https://api.median.sh/v1/tasks" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"title": "Export times out past 10k rows",
"description": "The CSV export gives up on large workspaces.",
"priority": "high"
}'const response = await fetch("https://api.median.sh/v1/tasks", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_TOKEN",
"Content-Type": "application/json"
},
body: JSON.stringify({
"title": "Export times out past 10k rows",
"description": "The CSV export gives up on large workspaces.",
"priority": "high"
})
});Response
{
"id": "k97a2fh3m1x8p4qv6r2t9w5y",
"key": "MED-12",
"number": 12
}{
"error": {
"code": "string",
"message": "string"
}
}{
"error": {
"code": "string",
"message": "string"
}
}{
"error": {
"code": "string",
"message": "string"
}
}