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.

PATCH
/v1/catalog/products/{productId}

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.

Authorization

AuthorizationBearer <token>

The organization API key, sent as Authorization: Bearer <key>.

In: header

Path Parameters

productId*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

budgetTier?|

Value in

  • "economic"
  • "mid"
  • "premium"
  • null
capacityMax?|
Range0 < value
capacityMin?|
Range0 < value
currency?|
Length3 <= length <= 3
description?string|null
durationDays?|
Range0 < value
durationHours?|
Range0 < value
excludes?array<string>|null
externalReferenceCode?|

The code the agency uses for this product in THEIR system. It is what makes syncing possible without storing Trama's ids.

fromPrice?|
Range0 <= value
includes?array<string>|null
operator?string|null
priceBasis?string|null
priceMax?|
Range0 <= value
pricingMode?string
Default"per_person"

Value in

  • "per_person"
  • "per_group"
  • "total"
shortDescription?string|null
specialConditions?string|null
status?string
Default"active"

Value in

  • "active"
  • "paused"
  • "draft"
title?string
Length1 <= length
type?string
Default"package"

Value in

  • "package"
  • "experience"
  • "expedition"
  • "custom"
validFrom?string|null
validUntil?string|null

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",  "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",  "fromPrice": 0,  "gallery": [    "string"  ],  "id": "string",  "includes": [    "string"  ],  "operator": "string",  "priceBasis": "string",  "priceMax": 0,  "pricingMode": "per_person",  "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"      ],      "label": "string",      "position": 0,      "priceMax": 0,      "shortDescription": "string",      "status": "active"    }  ]}