Plans

Get a spec, including its numbered acceptance criteria, or one section of it

GET
/v1/projects/{projectSlug}/plans/{planShortId}/specs/{specShortId}

Authorization

bearerAuth
AuthorizationBearer <token>

A personal API key (psk_…) or an OAuth access token (plan_at_…). Scopes: read, write.

In: header

Path Parameters

projectSlug*string

Project slug, e.g. recipe-box.

planShortId*string

Plan handle within the project, e.g. PLAN-12.

specShortId*string

Spec handle within the plan, e.g. SPEC-3 — or the tracker key of a linked spec, e.g. SIT-123.

Query Parameters

section?string

Return one block instead of the whole spec: a handle (OQ7, AC12, or a heading’s leading id such as RF06), an exact heading, lines: a-b, or the next value of a previous page. Empty means the whole spec. An unknown or ambiguous section is 422 with details.candidates; a next from before the spec changed is 409.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/v1/projects/string/plans/string/specs/string"
{  "spec": {    "id": "string",    "shortId": "string",    "trackerKey": "string",    "kind": "spec",    "title": "string",    "content": "string",    "revision": "string",    "status": "string",    "parentSpecId": "string",    "parentShortId": "string",    "needsFirst": [      "string"    ],    "effort": 1,    "effortLabel": "string",    "readiness": 1,    "readinessLabel": "string",    "readinessHold": {      "source": "checklist",      "criteria": [        "string"      ],      "reasons": [        "string"      ]    },    "readinessReasons": [      "string"    ],    "openQuestions": {      "open": 0,      "resolved": 0    },    "acceptanceCriteria": [      {        "id": "string",        "text": "string",        "checked": true,        "body": "string"      }    ],    "doneWhen": [      "string"    ]  },  "planShortId": "string"}