Directory readiness

Read one readiness run

Lane statuses, coverage and the observation axis. The full report — every finding with its citation and provenance — is a separate fetch.

get/projects/{projectId}/readiness-runs/{runId}

Path parameters

projectIdstring required

ID of the hosted project that contains the server.

runIdstring required

Eval run ID, as returned by POST /eval-runs.

Response

The run.

idstring required
readinessKind'claude' | 'openai' required
serverIdstring nullable required

The saved project server this run graded. Null only on rows written before the field existed.

serverUrlstring required

The saved server's URL exactly as stored. Canonicalizing it would change the grade.

submissionMode'mcp-only' | 'mcp-imported-skills' nullable required

The declared submission shape, for an OpenAI run. Never inferred.

status'pending' | 'running' | 'completed' | 'failed' | 'cancelled' required

cancelled is distinct from failed: a person who stopped a run has learned nothing about their server.

overallStatus'ready' | 'not-ready' | 'incomplete' nullable required

The headline verdict. incomplete means nothing was violated and something the run needed was never evaluated.

authMode'headless' | 'interactive' | 'provided-token' nullable required
capabilitiesstring[] required

What the executing surface could actually do. Two surfaces grading one target agree only on their shared capability subset.

attemptCountinteger required
terminalReasonstring nullable required
errorMessagestring nullable required
policySnapshotDatestring nullable required

The publisher-documentation snapshot this run graded against, so a stale grade says so.

engineVersionstring nullable required
sdkVersionstring nullable required
includeLlmObservationsboolean required

Whether this run was started with the paid observation opt-in.

hasReportboolean required
reportUrlstring nullable required
createdAtinteger required
updatedAtinteger required

Changes

Changed in 2 of the 74 revisions of this API.716

  • 548954252807715See the full diff
    • added the new directory-policy enum value to the stages/items/lanes/items/ response property for the response status 200

      response-property-enum-value-added

    • added the new experience-insights enum value to the stages/items/lanes/items/ response property for the response status 200

      response-property-enum-value-added

    • added the new optional-features enum value to the stages/items/lanes/items/ response property for the response status 200

      response-property-enum-value-added

    • added the new plugin-package enum value to the stages/items/lanes/items/ response property for the response status 200

      response-property-enum-value-added

    • added the new release-contract enum value to the stages/items/lanes/items/ response property for the response status 200

      response-property-enum-value-added

    • added the new runtime-compatibility enum value to the stages/items/lanes/items/ response property for the response status 200

      response-property-enum-value-added

    • added the new submission-artifacts enum value to the stages/items/lanes/items/ response property for the response status 200

      response-property-enum-value-added

    • the response property attemptCount became required for the status 200

      response-property-became-required

    • the response property authMode became required for the status 200

      response-property-became-required

    • the response property capabilities became required for the status 200

      response-property-became-required

    • the response property engineVersion became required for the status 200

      response-property-became-required

    • the response property errorMessage became required for the status 200

      response-property-became-required

    • the response property hasReport became required for the status 200

      response-property-became-required

    • the response property includeLlmObservations became required for the status 200

      response-property-became-required

    • the response property overallStatus became required for the status 200

      response-property-became-required

    • the response property policySnapshotDate became required for the status 200

      response-property-became-required

    • the response property reportUrl became required for the status 200

      response-property-became-required

    • the response property sdkVersion became required for the status 200

      response-property-became-required

    • the response property stages became required for the status 200

      response-property-became-required

    • the response property submissionMode became required for the status 200

      response-property-became-required

    • the response property terminalReason became required for the status 200

      response-property-became-required

    • added the required property serverId to the response with the 200 status

      response-required-property-added

    • endpoint added

      endpoint-added