v1

latestOpenAPI 3.0.32026-07-26120117318.1 KB
Offerings

Update an offering

Partial update. Only supplied fields are changed. product_ids replaces the full list in the given order — pass [] to detach all products, omit the field to leave the list unchanged.

patch/offerings/{offering_id}

Request body

product_idsstring[]

Replaces the full list in the given order. Pass [] to clear all product associations. Omit the field entirely to leave existing associations unchanged. Each entry must already exist in this project, otherwise the request fails with 400 product_not_in_project. Up to 100 entries per request (maxItems).

Response

Offering updated.

object'offering' required
idstring required
urlstring required
taginteger nullable required

Offering role within the project. 1 = main offering (TAG_MAIN) — exactly one offering per project has tag=1 at any time; promote via POST /v4/offerings/{offering_id}/set-main. 0 = regular offering that was demoted from main. null = regular offering that has never been tagged. Treat 0 and null as equivalent on read. The Offerings endpoints filter out experiment-variant offerings, but legacy rows could carry historical values other than 0, 1, or null, so the response field is intentionally not enum-restricted. Write schemas restrict accepted values server-side.

product_idsstring[] required

Product UIDs that belong to this offering, in display order.

created_atstring date-time required
updated_atstring date-time required

Example response

{
  "id": "premium_monthly",
  "url": "/v4/offerings/premium_monthly",
  "created_at": "2025-09-15T12:30:00Z",
  "updated_at": "2025-11-03T10:26:40Z"
}