API / get-origin-check-run-via-api

API

Get an Origin Check Run via the API

Fetch one check run by its server-assigned id with GET https://api.cursor.com/v1/origin/repos/{ownerSlug}/{repoName}/check-runs/{checkRunId}. Official reference: Origin API → Checks / Get Check Run (OpenAPI OriginService_GetCheckRun).

Origin is in Early Beta and subject to change. Authenticate with an installation access token (oit_…) or a user access token that carries repository:checks:read. Availability: Early Beta per the API overview.

The path takes the run id Origin returned when you upserted or listed the run (cr_…). A 404 does not tell you whether the id is missing or merely invisible to this credential.

Cost: 1 point against the principal budget (ordinary read).

Path parameters

Param Required Meaning
ownerSlug yes Owning entity's unique slug
repoName yes Repo name, unique to the owner
checkRunId yes Server-assigned check-run id (cr_…)
curl --request GET \
  --url 'https://api.cursor.com/v1/origin/repos/OWNER_SLUG/REPO_NAME/check-runs/cr_01k2ja2000e0080000000000g7' \
  --header 'Authorization: Bearer YOUR_ORIGIN_TOKEN'

Response

The body is a CheckRun: server id, repository reference, containing suite id (crg_…), head SHA, stable key, display name, status, optional conclusion, detailsUrl, external and server timestamps, externalId, actor, and output when set. On a re-requested run you may also see isRerequestable, rerequestedAt, and rerequestedBy.

Example shape from the OpenAPI:

{
  "id": "cr_01k2ja2000e0080000000000g7",
  "repository": {
    "id": "repo_01k2ja2000e0080000000000q4",
    "name": "rocket",
    "owner": {
      "slug": "acme",
      "id": "ns_01k2ja2000e0080000000000p3",
      "type": "team"
    }
  },
  "checkSuite": {
    "id": "crg_01k2ja2000e0080000000000h8"
  },
  "sha": "9a41f0c3d2b8e7f6a5c4d3e2f1b0a9c8d7e6f5a4",
  "key": "ci-8842-unit-tests",
  "name": "unit-tests",
  "status": "completed",
  "conclusion": "success",
  "detailsUrl": "https://ci.acme.dev/runs/8842",
  "externalUpdatedAt": "2026-08-02T14:44:30Z",
  "startedAt": "2026-08-02T14:40:00Z",
  "completedAt": "2026-08-02T14:44:30Z",
  "createdAt": "2026-08-01T09:30:00Z",
  "updatedAt": "2026-08-02T14:45:00Z",
  "externalId": "run-8842",
  "actor": {
    "user": {
      "id": "user_01k2ja2000e0080000000000c3",
      "email": "jane@acme.dev"
    }
  },
  "output": {
    "title": "Unit tests",
    "summary": "128 tests passed.",
    "text": "All suites green."
  }
}

Pair this read with the upsert how-to when you need the cr_… id after posting status, then poll until status is completed.

Base URL: https://api.cursor.com/v1/origin.