Get a project's continuous monitoring status

GET /iso/projects/{projectId}/monitoring

Scope compliance:read Plan Scale+

Requires the compliance:read scope. Needs the continuous_monitoring plan feature.

Example

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

Response 200

{
  "data": {
    "controls": [
      {
        "collectionEnabled": true,
        "consecutiveFailures": 0,
        "controlId": "A.5.15",
        "freshness": "FRESH",
        "lastRunAt": "2026-10-13T04:00:00Z",
        "lastRunStatus": "COMPLETED"
      },
      {
        "collectionEnabled": true,
        "consecutiveFailures": 0,
        "controlId": "A.8.13",
        "freshness": "STALE",
        "lastRunAt": "2026-10-06T04:00:00Z",
        "lastRunStatus": "COMPLETED"
      },
      {
        "collectionEnabled": true,
        "consecutiveFailures": 3,
        "controlId": "A.8.16",
        "freshness": "FAILED",
        "lastRunAt": "2026-10-13T04:00:00Z",
        "lastRunStatus": "FAILED"
      }
    ],
    "projectId": "iso_1hfa8m2c4x0p",
    "summary": {
      "failed": 1,
      "fresh": 1,
      "manualOnly": 0,
      "stale": 1,
      "total": 3
    }
  },
  "error": null
}

Path parameters

  • projectId string required

Returns

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

  • controls array of object required
    One entry per gap control of the project.
    • collectionEnabled boolean required
      Automated collection is enabled.
    • consecutiveFailures integer required
      Failed runs in a row, newest first.
    • controlId string required
      Annex A control id.
    • freshness string required
      FRESH, STALE, FAILED or MANUAL_ONLY.
    • lastRunAt string (date-time) or null
      Start of the latest collection run (UTC), when any.
    • lastRunStatus string
      RUNNING, COMPLETED, FAILED, SKIPPED or UNKNOWN, when a run exists.
    • No other fields.
  • projectId string required
    ISO project id (iso_).
  • summary object required
    Counts per freshness class.
    • failed integer required
      FAILED controls.
    • fresh integer required
      FRESH controls.
    • manualOnly integer required
      MANUAL_ONLY controls.
    • stale integer required
      STALE controls.
    • total integer required
      Controls.
    • No other fields.
  • 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