Projects

Analyze a project's latest Definition Revision

Runs deterministic OpenAPI or GraphQL authorship checks against the latest observed immutable Definition Revision after applying the Definition's existing patches. Diagnostics group every affected location under a stable rule. Exact patches are included only when Typeship can derive the change without inventing API behavior.

GET
/projects/{project_id}/diagnostics

Runs deterministic OpenAPI or GraphQL authorship checks against the latest observed immutable Definition Revision after applying the Definition's existing patches. Diagnostics group every affected location under a stable rule. Exact patches are included only when Typeship can derive the change without inventing API behavior.

AuthorizationBearer <token>

Organization API key from the console (ak_...), or an OAuth access token with user:org:read, the organization selected during consent, and the capability required by the operation.

In: header

Path Parameters

project_id*string

Unique identifier for a project.

Match^prj_[a-z0-9]{16}$

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/projects/prj_4f8k2m7x9q1v6b3n/diagnostics"
{  "object": "diagnostic_report",  "format": "openapi",  "project_id": "prj_4f8k2m7x9q1v6b3n",  "definition_revision_id": "drev_6m1q8v4k2p9d7h3c",  "source_sha256": "string",  "analyzed_sha256": "string",  "patch_diagnostics": [    "string"  ],  "summary": {    "diagnostics": 0,    "occurrences": 0,    "errors": 0,    "warnings": 0,    "suggestions": 0,    "auto_fixable": 0  },  "diagnostics": [    {      "id": "string",      "severity": "error",      "category": "correctness",      "title": "string",      "description": "string",      "impact": "string",      "surfaces": [        "api"      ],      "locations": [        {          "document": "string",          "path": "string",          "operation": "string",          "evidence": "string"        }      ],      "fix": {        "title": "string",        "kind": "spec_patch",        "patches": [          {            "op": "remove",            "path": "/components/schemas/Legacy"          }        ],        "instructions": "string"      },      "authoring_brief": "string"    }  ],  "policy": {    "fail_on": "never",    "only_new": true,    "suppressions": []  },  "evaluation": {    "state": "pass",    "blocking": [      {        "rule_id": "string",        "severity": "error",        "title": "string",        "locations": [          {            "document": "string",            "path": "string",            "operation": "string",            "evidence": "string"          }        ]      }    ],    "considered_occurrences": 0,    "suppressed_occurrences": 0  },  "delta": {    "added": [      {        "rule_id": "string",        "severity": "error",        "title": "string",        "locations": [          {            "document": "string",            "path": "string",            "operation": "string",            "evidence": "string"          }        ]      }    ],    "resolved": [      {        "rule_id": "string",        "severity": "error",        "title": "string",        "locations": [          {            "document": "string",            "path": "string",            "operation": "string",            "evidence": "string"          }        ]      }    ],    "baseline_definition_revision_id": "drev_6m1q8v4k2p9d7h3c"  }}