Deliveries

Update a Delivery

PATCH
/deliveries/{delivery_id}

Replaces a repository Delivery's settings. Omitted optional settings reset to their defaults. Hosted MCP Deliveries have no settings to update. With Project auto_generate enabled, changing a Delivery queues the Target's Generation. A queued or running Target reuses that Generation. Omitting If-Match applies the update to the current Delivery; with If-Match, a stale ETag returns 412 precondition_failed without saving.

A 409 delivery_conflict means another Target owns the requested repository directory. A 409 target_busy means the Target is publishing; wait for it to finish. A 502 follow_up_failed means the Delivery was saved, but retiring an obsolete review or regenerating the Target failed. Get the Delivery and follow the error's retryable and suggested_action fields. See conditional writes for ETag and If-Match.

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

delivery_id*string
Match^dlv_[a-z0-9]{16}$

Header Parameters

If-Match?string

ETag from a preceding response. The write applies only if the resource still has that version; otherwise it returns 412 precondition_failed without changes. Omit to write the current version. See https://typeship.dev/docs/typeship-api#conditional-writes.

Length1 <= length <= 1024

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

application/json

application/json

application/json

application/json

application/json

application/json

curl -X PATCH "https://example.com/deliveries/dlv_4q8m2v7k1p9d5h6c" \  -H "Content-Type: application/json" \  -d '{    "repository": {      "provider": "github",      "identifier": "parcel-example/parcel-client",      "package_name": "parcel-client",      "publish_on_merge": true    }  }'
{  "id": "dlv_4q8m2v7k1p9d5h6c",  "object": "delivery",  "target_id": "tgt_5m8q2v7k1p9d4h6c",  "type": "repository",  "repository": {    "provider": "github",    "identifier": "parcel-example/parcel-client",    "directory": null,    "package_name": "parcel-client",    "module_path": null,    "publish_on_merge": false  },  "status": "active",  "issues": [],  "required_checks": [    "Typeship Release"  ],  "last_event": null,  "created_at": "2026-09-23T08:00:00Z",  "updated_at": "2026-09-23T08:00:00Z",  "request_id": "req_3k8m1v6q9p2d7h4c"}