List a project's roadmap tasks

GET /iso/projects/{projectId}/roadmap

Scope iso:read Plan Growth+

Requires the iso:read scope. Needs the iso27001 plan feature.

Example

curl "https://api.autociso.io/api/v1/iso/projects/<projectId>/roadmap" \
  -H "Authorization: Bearer <your-api-token>"

Response 200

{
  "data": [
    {
      "assignedToId": "empl_1hgyun41rx48",
      "completedAt": null,
      "controlId": "A.8.13",
      "createdAt": "2026-09-20T10:00:00Z",
      "dueAt": "2026-10-31T00:00:00Z",
      "id": "task_1hk0p3c8v2xs",
      "priority": "BLOCKING",
      "status": "IN_PROGRESS",
      "updatedAt": "2026-10-10T13:45:00Z"
    },
    {
      "completedAt": "2026-09-26T16:20:00Z",
      "controlId": "A.5.1",
      "createdAt": "2026-09-20T10:00:00Z",
      "dueAt": "2026-09-30T00:00:00Z",
      "id": "task_1hk0p4f1n7qz",
      "priority": "MEDIUM",
      "status": "DONE",
      "updatedAt": "2026-09-26T16:20:00Z"
    }
  ],
  "error": null,
  "meta": {
    "limit": 25,
    "offset": 0,
    "total": 27
  }
}

Path parameters

  • projectId string required

Query parameters

  • limit integer
    Page size. minimum 1, maximum 100, default 25
  • offset integer
    Rows to skip (offset mode). Cannot be combined with cursor. minimum 0, maximum 10000, default 0
  • cursor string
    An opaque cursor taken from meta.nextCursor of the previous page (cursor mode). Valid for 24 hours and bound to the token and the query; do not parse or construct it.
  • sort[id] string
    Sort direction for id.
    "asc" | "desc"
  • sort[updatedAt] string
    Sort direction for updatedAt.
    "asc" | "desc"
  • filter[controlId][eq] string
    Filter controlId (eq).
  • filter[controlId][in] string
    Filter controlId (in). Comma-separated, at most 50 values.
  • filter[id][eq] string
    Filter id (eq).
  • filter[id][in] string
    Filter id (in). Comma-separated, at most 50 values.
  • filter[priority][eq] string
    Filter priority (eq).
  • filter[priority][in] string
    Filter priority (in). Comma-separated, at most 50 values.
  • filter[status][eq] string
    Filter status (eq).
  • filter[status][in] string
    Filter status (in). Comma-separated, at most 50 values.
  • filter[updatedAt][gte] string (date-time)
    Filter updatedAt (gte).
  • filter[updatedAt][lt] string (date-time)
    Filter updatedAt (lt).

Returns

The data field of the standard { data, error, meta } envelope:

An array of object:

  • assignedToId string
    Assignee id (empl_ or usr_), only when the assignee is an id.
  • completedAt string (date-time) or null
    Completion time (UTC), when done.
  • controlId string required
    Annex A control id.
  • createdAt string (date-time) required
    Creation time (UTC).
  • dueAt string (date-time) or null
    Due date (UTC), when set.
  • id string required
    Roadmap task id (task_).
  • priority string required
    BLOCKING, HIGH, MEDIUM, LOW or UNKNOWN.
  • status string required
    OPEN, IN_PROGRESS, DONE, WONT_FIX or UNKNOWN.
  • updatedAt string (date-time) required
    Last update time (UTC).
  • No other fields.

Errors

Status Code Retry Meaning
400 - no The request is invalid.
401 - no The token is missing, malformed, expired or revoked.
402 - no The organisation’s plan does not include the feature this route needs.
403 - no The token may not use this route.
404 - no The resource does not exist in this organisation.
429 - yes Rate limit or row budget exceeded; retry after the time in Retry-After.
500 - no Unexpected server error.
503 - yes A dependency is temporarily unavailable; retry later.
Last reviewed: 2026-10-13

Was this page helpful?

Esc