Create a product
AuthorizationBearer <token>
The organization API key, sent as Authorization: Bearer <key>.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
budgetTier?|
Value in
- "economic"
- "mid"
- "premium"
- null
capacity?|
The NOMINAL size of the product as declared, never what is left free.
capacityMax?|
Range
0 < valuecapacityMin?|
Range
0 < valuecurrency?|
Length
3 <= length <= 3description?string|null
durationDays?|
Range
0 < valuedurationHours?|
Range
0 < valueexcludes?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.
fares?array<>|null
fromPrice?|
Range
0 <= valueincludes?array<string>|null
operator?string|null
priceBasis?string|null
priceMax?|
Range
0 <= valuepricingMode?string
Default
"per_person"Value in
- "per_person"
- "per_group"
- "total"
schedule?|
WHEN it is sold, as data. null = no calendar loaded.
shortDescription?string|null
specialConditions?string|null
status?string
Default
"active"Value in
- "active"
- "paused"
- "draft"
title*string
Length
1 <= lengthtype?string
Default
"package"Value in
- "package"
- "experience"
- "expedition"
- "custom"
validFrom?string|null
validUntil?string|null
variants?array<>
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/catalog/products" \ -H "Content-Type: application/json" \ -d '{ "title": "string" }'{ "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" } ]}