Plans

Push a plan and its Specs to the connected tracker

The response carries `push.belowReady`: every spec in the plan that is still below Ready, with its readiness label and why. It is `[]` for a plan where everything is Ready, and `push.belowReadyUnavailable` is true when the check could not run (which `[]` alone cannot tell you). Long plans list the first 10 and report the rest as `push.belowReadyOmitted`. Pushing is never blocked by any of it.

POST
/v1/projects/{projectSlug}/plans/{planShortId}/push

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.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/v1/projects/string/plans/string/push" \  -H "Content-Type: application/json" \  -d '{}'
{  "push": {    "status": "pushed",    "provider": "linear",    "planShortId": "string",    "planName": "string",    "projectExternalId": "string",    "pushedItemCount": 0,    "dependencyCount": 0,    "containerCount": 0,    "planEdgeCount": 0,    "ancestorNames": [      "string"    ],    "caveats": [      "string"    ],    "message": "string",    "belowReady": [      {        "specShortId": "string",        "title": "string",        "readinessLabel": "Rough",        "reasons": [          "string"        ],        "held": true      }    ],    "belowReadyOmitted": 0,    "belowReadyUnavailable": true  }}