Update a product
Only touches the fields present in the body. Sending `null` clears a field; omitting it leaves it unchanged. Variants cannot be patched — send them on create, or the whole list would be replaced by a partial one.
Only touches the fields present in the body. Sending null clears a field; omitting it leaves it unchanged. Variants cannot be patched — send them on create, or the whole list would be replaced by a partial one.
The organization API key, sent as Authorization: Bearer <key>.
In: header
Path Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Value in
- "economic"
- "mid"
- "premium"
- null
The NOMINAL size of the product as declared, never what is left free.
0 < value0 < value3 <= length <= 30 < value0 < valueThe code the agency uses for this product in THEIR system. It is what makes syncing possible without storing Trama's ids.
0 <= value0 <= value"per_person"Value in
- "per_person"
- "per_group"
- "total"
WHEN it is sold, as data. null = no calendar loaded.
"active"Value in
- "active"
- "paused"
- "draft"
1 <= length"package"Value in
- "package"
- "experience"
- "expedition"
- "custom"
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X PATCH "https://example.com/v1/catalog/products/string" \ -H "Content-Type: application/json" \ -d '{}'{ "budgetTier": "economic", "capacity": { "max": 1, "min": 1, "unitLabel": "string" }, "capacityMax": 0, "capacityMin": 0, "coverImage": "string", "createdAt": "2019-08-24T14:15:22Z", "currency": "string", "description": "string", "destinations": [ "string" ], "durationDays": 0, "durationHours": 0, "excludes": [ "string" ], "externalReferenceCode": "string", "fares": [ { "ageBands": [ { "ageFrom": 0, "ageTo": 0, "chargeType": "percentage_of_adult", "label": "string", "value": 0 } ], "appliesTo": { "departureIds": [ "string" ], "recurringIds": [ "string" ], "season": { "from": "string", "until": "string" }, "variantIds": [ "string" ], "weekdays": [ 0 ] }, "base": 0, "conditions": "string", "currency": "str", "id": "string", "label": "string", "residency": { "foreign": { "chargeType": "fixed", "value": 0 }, "local": { "chargeType": "fixed", "value": 0 } }, "unit": "per_person" } ], "fromPrice": 0, "gallery": [ "string" ], "id": "string", "includes": [ "string" ], "operator": "string", "priceBasis": "string", "priceMax": 0, "pricingMode": "per_person", "reviewed": true, "schedule": { "closures": [ { "from": "string", "id": "string", "note": "string", "times": [ "string" ], "until": "string" } ], "departures": [ { "capacityMax": 1, "endsOn": "string", "id": "string", "label": "string", "startsOn": "string", "status": "open", "time": "string", "variantIds": [ "string" ] } ], "minNights": 1, "recurring": [ { "capacityMax": 1, "from": "string", "id": "string", "kind": "slots", "times": [ "string" ], "until": "string", "weekdays": [ 0 ] } ], "timezone": "string", "version": 1 }, "shortDescription": "string", "specialConditions": "string", "status": "active", "title": "string", "type": "package", "updatedAt": "2019-08-24T14:15:22Z", "validFrom": "string", "validUntil": "string", "variants": [ { "capacityMax": 0, "capacityMin": 0, "currency": "string", "description": "string", "durationDays": 0, "durationHours": 0, "excludes": [ "string" ], "fromPrice": 0, "id": "string", "includes": [ "string" ], "inventoryRemaining": 0, "inventoryStatus": "open", "inventoryUpdatedAt": "2019-08-24T14:15:22Z", "label": "string", "position": 0, "priceMax": 0, "shortDescription": "string", "status": "active" } ]}