List tasks

GET/api/v1/tasks

Shared tasks in the workspace, newest first, with cursor paging. Filters combine.

Query parameters

ParameterTypeDescription
statusstringOne of your workspace's task statuses by value, or open / done as shorthands for not-done and done.
assigneeIdstringOnly tasks assigned to this user.
contactIdstringOnly tasks filed against this contact.
projectIdstringOnly tasks in this project.
qstringCase-insensitive match on the title.
limitnumber1 to 100. Default 50.
cursorstringThe nextCursor from the previous page.

Responses

StatusMeaning
200Body: { tasks: [...], nextCursor: string | null }.

Example request

curl "https://crowdstack.org/api/v1/tasks?status=open&limit=1" \
  -H "Authorization: Bearer $CROWDSTACK_API_KEY"

Example response

{
  "tasks": [
    {
      "id": "cmf3k2x9a0040abcd",
      "number": 12,
      "key": "T-12",
      "title": "Send Acme the security questionnaire",
      "description": null,
      "status": "todo",
      "type": "chore",
      "priority": 3,
      "dueDate": "2026-09-18",
      "doneAt": null,
      "assignee": { "id": "cmf3k2x9a0003abcd", "name": "Jane Doe", "email": "jane@acme-mail.com" },
      "contact": { "id": "cmf3k2x9a0001abcd", "email": "jane@acme.com", "firstName": "Jane", "lastName": "Doe" },
      "project": null,
      "fields": { "effort": "medium" },
      "createdAt": "2026-09-15T10:12:00.000Z",
      "updatedAt": "2026-09-15T10:12:00.000Z"
    }
  ],
  "nextCursor": "cmf3k2x9a0040abcd"
}

Create a task

POST/api/v1/tasks

Opens a shared task. Only the title is required; everything else falls back to the workspace's defaults. Pass createdById and assigneeId to say whose task it is; list users to find their ids.

Status and type accept a value or its label from Settings → Tasks. Priority is 0 to 4 or none, low, medium, high, urgent. Due dates are day-granular, yyyy-mm-dd.

Custom field keys must exist under Settings → Tasks → Fields. Unknown keys are rejected with 422 rather than dropped. Select fields accept either the option value or its label.

Every task has a creator. When createdById is left out it is whoever made the API key, then the assignee, then the workspace's longest-standing member. An assignee left out defaults to the creator.

Creating a task with the done status stamps doneAt immediately. Tasks made through the API are always shared, never private.

Request body

FieldTypeDescription
titlerequiredstringUp to 200 characters.
descriptionstring | nullPlain text, up to 8000 characters.
statusstringDefaults to the workspace's default task status.
typestring | nullDefaults to the workspace's default task type. null leaves it untyped.
prioritynumber | string0 to 4, or none, low, medium, high, urgent. Default 0.
dueDatestring | nullyyyy-mm-dd.
assigneeIdstringAn active member of the workspace. Defaults to the creator.
createdByIdstringThe active member the task is recorded as created by. See the note above for the default.
contactIdstringFiles the task against a contact and logs it on their timeline.
projectIdstringAn open project in the workspace.
fieldsobjectCustom field values keyed by field key. Strings, numbers, booleans or null, matching each field's type.

Responses

StatusMeaning
201The task was created. Body: { task }.
422Validation failed; see details for the offending paths, including unknown assignee, contact or project ids.

Example request

curl -X POST https://crowdstack.org/api/v1/tasks \
  -H "Authorization: Bearer $CROWDSTACK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Send Acme the security questionnaire",
    "assigneeId": "cmf3k2x9a0003abcd",
    "priority": "high",
    "dueDate": "2026-09-18",
    "contactId": "cmf3k2x9a0001abcd",
    "fields": { "effort": "medium" }
  }'

Example response

{
  "task": {
    "id": "cmf3k2x9a0040abcd",
    "number": 12,
    "key": "T-12",
    "title": "Send Acme the security questionnaire",
    "description": null,
    "status": "todo",
    "type": "chore",
    "priority": 3,
    "dueDate": "2026-09-18",
    "doneAt": null,
    "assignee": { "id": "cmf3k2x9a0003abcd", "name": "Jane Doe", "email": "jane@acme-mail.com" },
    "contact": { "id": "cmf3k2x9a0001abcd", "email": "jane@acme.com", "firstName": "Jane", "lastName": "Doe" },
    "project": null,
    "fields": { "effort": "medium" },
    "createdAt": "2026-09-15T10:12:00.000Z",
    "updatedAt": "2026-09-15T10:12:00.000Z"
  }
}