Rustine docs
API › Scans

List a project's scans

A project's scans, newest first. How far back it goes depends on your plan.

GEThttps://api.rustine.io/v1/projects/{project_id}/scans

OAuth permission: scans:read · an API key has them all

Open in ClaudeOpen in ChatGPT

Path parameters

  • project_idstringrequired

    Project id.

Query parameters

  • limitintegeroptional

    How many objects to return, 1 to 100 (default 20).

  • starting_afterstringoptional

    Cursor: the id of the last object of the previous page.

Response

  • objectstring
  • dataarray of object
    • idstring

      Scan id.

    • objectstring
    • target_idstring

      Target scanned.

    • kindstring

      quick (what any visitor could see), audit (adds deeper read-only checks, verified sites only) or repository (analysis of a GitHub repository).

      quickauditrepository
    • statusstring

      Scans run asynchronously: poll until done or failed.

      queuedrunningdonefailed
    • scorenumber | null

      Score out of 100, once done.

    • gradestring | null

      Grade, once done.

      ABCDF
    • coveragenumber | null

      Share of the checks that could run (0 to 1), once done.

    • audit_fallbackboolean

      An audit was asked but the site's proof no longer held: a quick scan ran instead and no audit was counted.

    • reusedboolean

      True when the request got an existing scan instead of a new one (one already running, or one of the same kind in the last hour); nothing was counted.

    • next_real_scan_atstring | null

      When reused because of a recent scan: when a new scan of this kind may start.

    • created_atstring

      When the scan was requested.

    • finished_atstring | null

      When the scan finished.

  • has_moreboolean

    Whether more objects follow: pass the last id as starting_after.

Errors

Statuserror.codeWhat happens
400parameter_invalidA parameter is missing or invalid; param names it.
400cursor_invalidstarting_after is not the id of an item of this list.
401authentication_requiredNo key in the request. Pass it in the Authorization: Bearer rst_… header, never in the address.
401invalid_api_keyThe key or OAuth token is wrong, revoked or expired. Check it is copied in full, or create a new key.
402api_plan_requiredThe workspace is on the Free plan. The API comes with Pro, or on a 14-day trial with Solo.
402api_trial_endedSolo's 14-day trial is over. Move to Pro: your keys work again at once.
403scope_missingThe OAuth token lacks the permission this route needs (shown on its page). Reconnect the agent to grant it. An API key has every permission.
404resource_not_foundNothing with this id in the key's workspace. An object of another workspace answers the same: its existence is never revealed.
429rate_limitedToo many requests for this key (120 per minute). Wait Retry-After seconds.
500internal_errorAn error on our side, reported automatically. Retry later; give the Request-Id to support if it comes back.
503service_unavailableRustine is unavailable for a moment. Retry with the same Idempotency-Key.

↵ Enter to open, Esc to close