Update a Delivery
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.
Authorization
apiKey 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
^dlv_[a-z0-9]{16}$Header Parameters
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.
1 <= length <= 1024Request 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"}Get a Delivery GET
Returns the configured repository or hosted MCP Delivery for a Target. A Delivery in another organization returns 404 resource_not_found.
Delete a Delivery DELETE
Removes a Delivery from its Target. Removing a repository Delivery retires the Target's open release pull request; removing a hosted MCP Delivery stops serving its URL. Recreating the type later allocates a new ID and, for hosted MCP, a new URL. A `409 target_busy` means the Target is publishing; wait for it to finish. A `502 follow_up_failed` means the Delivery was removed, but retiring an obsolete review or regenerating the Target failed. See [conditional writes](https://typeship.dev/docs/typeship-api#conditional-writes) for ETag and If-Match.