Skip to content

Manage Experiences

Manage your experiences including programs, activities, transfers, and extras through creation, updates, and listing operations.

Note: For complete API specifications, error handling, bulk operations, and deletion endpoints, please refer to the API Reference.

Overview

Experience Types

Experiences can be one of three main types:

  • Program: Multi-day itineraries with daily schedules
  • Activity: Single tours, excursions, attractions, or extras
    • Regular activities: type: "Activity" with activity.isExtra: false
    • Extras (add-ons): type: "Activity" with activity.isExtra: true
  • Transfer: Transportation services between locations

Pricing Types

Programs support three pricing models:

  • FIT (Free Independent Traveler): Per person pricing with flexible pax ranges
  • SIC (Seat-in-Coach): Shared group departures with fixed dates
  • Series: Scheduled departures with specific dates

Activities, Transfers, and Extras typically use FIT pricing.

Multilingual Support

By default, experiences are created in English, then updated in multiple languages (EN, FR, DE, IT, NL, ES, etc.) using the locale query parameter.

Create Experience

Create a new experience with support for different types and pricing models.

Endpoint: POST /api/v1/experiences

Parameters:

  • locale (query, optional): ISO alpha-2 language code (e.g., en, fr)

Create Program (FIT Pricing)

Request Body:

json
{
  "state": "in_progress",
  "type": "Program",
  "name": "Cultural Discovery Tour",
  "description": "<p>Explore ancient temples and local culture</p>",
  "dmcReference": "PROG-FIT-001",
  "organizationId": "org-456",
  "organizationName": "Adventure Travel Co",
  "currency": "USD",
  "pricingType": "fit",
  "isRepeatable": true,
  "isReservableAlone": false,
  "isTransitionalProgram": false,
  "inCity": {
    "id": "city-789",
    "title": "Bangkok",
    "lat": 13.7563,
    "lon": 100.5018,
    "code": "THBKK",
    "country": {
      "id": "country-123",
      "alpha2": "TH",
      "title": "Thailand",
      "status": true,
      "translations": [
        {
          "locale": "en",
          "title": "Thailand"
        }
      ]
    },
    "region": {
      "id": "region-456",
      "title": "Central Thailand",
      "country": {
        "id": "country-123",
        "alpha2": "TH",
        "title": "Thailand"
      }
    },
    "bestPeriod": null,
    "transportTime": null
  },
  "startPosition": {
    "name": "City Center Hotel",
    "address": "123 Main Street",
    "city": "Bangkok",
    "country": "Thailand",
    "lat": 13.7563,
    "lon": 100.5018,
    "isCity": false
  },
  "endPosition": {
    "name": "Airport Terminal",
    "address": "999 Airport Road",
    "city": "Bangkok",
    "country": "Thailand",
    "lat": 13.6900,
    "lon": 100.7501,
    "isCity": false
  },
  "includedServices": "- Professional English-speaking guide<br />- All entrance fees<br />- Daily breakfast<br />",
  "excludedServices": "- International flights<br />- Travel insurance<br />- Personal expenses<br />",
  "extraRemarks": "<p>Please bring comfortable walking shoes and sun protection.</p>",
  "cancellationPolicies": "<p>Free cancellation up to 7 days before departure. 50% refund for 3-7 days. No refund within 3 days.</p>",
  "guiding": false,
  "guidingLanguages": [],
  "periods": [
    {
      "periodType": "on_request",
      "startAt": "2025-06-01",
      "endAt": "2025-09-30",
      "minPax": 1,
      "maxPax": 4,
      "perPax": true,
      "price": 850,
      "state": "on_request",
      "adultPax": [
        {
          "price": 850,
          "paxRange": [
            1,
            2
          ]
        },
        {
          "price": 650,
          "paxRange": [
            3,
            4
          ]
        }
      ],
      "childrenPax": [
        {
          "price": 425,
          "ageRange": [
            5,
            12
          ]
        }
      ],
      "availableDays": [
        1,
        1,
        1,
        1,
        1,
        1,
        1
      ]
    }
  ],
  "programs": [
    {
      "title": "Day 1: Arrival and City Tour",
      "program": "<p>Arrive in the city and explore the historic district. Visit local markets and traditional workshops.</p>",
      "accomodationType": "hotel",
      "guiding": true,
      "guidingLanguages": [
        "English"
      ],
      "startPosition": {
        "address": "123 Main Street",
        "city": "Bangkok",
        "country": "Thailand",
        "isCity": false,
        "lat": 13.7563,
        "lon": 100.5018,
        "name": "City Center Hotel"
      },
      "endPosition": {
        "address": "456 Hotel Avenue",
        "city": "Bangkok",
        "country": "Thailand",
        "isCity": false,
        "lat": 13.7500,
        "lon": 100.5200,
        "name": "Accommodation Hotel"
      }
    }
  ],
  "pictures": [],
  "extras": [],
  "bestMatches": [],
  "incompatibilities": [],
  "hasToRequest": false,
  "segments": [],
  "themes": [],
  "mediaLinks": []
}

Response:

json
{
  "id": "exp-789",
  "dmcReference": "PROG-FIT-001",
  "name": "Cultural Discovery Tour",
  "type": "Program",
  "pricingType": "fit",
  "state": "in_progress",
  "organizationId": "org-456",
  "createdAt": "2024-06-01T10:00:00Z",
  "updatedAt": "2024-06-01T10:00:00Z",
  "message": "Program created successfully"
}

Create Program (SIC Pricing)

Request Body:

json
{
  "state": "in_progress",
  "type": "Program",
  "name": "Group Adventure Package",
  "description": "<p>Join fellow travelers on this exciting shared journey</p>",
  "dmcReference": "PROG-SIC-002",
  "organizationId": "org-456",
  "organizationName": "Adventure Travel Co",
  "currency": "USD",
  "pricingType": "sic",
  "isRepeatable": true,
  "isReservableAlone": false,
  "isTransitionalProgram": false,
  "durationDays": 3,
  "durationHours": 0,
  "durationMinutes": 0,
  "startPosition": {
    "address": "200 Plaza Square",
    "city": "San Francisco",
    "country": "United States",
    "isCity": true,
    "lat": 37.7749,
    "lon": -122.4194,
    "name": "Downtown Meeting Point"
  },
  "endPosition": {
    "address": "200 Plaza Square",
    "city": "San Francisco",
    "country": "United States",
    "isCity": true,
    "lat": 37.7749,
    "lon": -122.4194,
    "name": "Downtown Meeting Point"
  },
  "inCity": {
    "id": "city-456",
    "title": "San Francisco",
    "code": "USSFO",
    "lat": 37.7749,
    "lon": -122.4194,
    "country": {
      "id": "country-789",
      "alpha2": "US",
      "title": "United States",
      "status": true
    },
    "region": {
      "id": "region-123",
      "title": "California",
      "country": {
        "id": "country-789",
        "alpha2": "US",
        "title": "United States"
      }
    }
  },
  "includedServices": "<p>Professional guide</p><p>All transportation</p><p>Entrance fees</p><p>2 meals per day</p>",
  "excludedServices": "<p>Accommodation</p><p>Travel insurance</p>",
  "cancellationPolicies": "<p><strong>Cancellation Policy:</strong> Full refund if cancelled 14+ days before departure. 50% refund for 7-14 days. No refund within 7 days.</p>",
  "guiding": true,
  "guidingLanguages": [
    "English",
    "Spanish"
  ],
  "periods": [
    {
      "startAt": "2025-07-15",
      "endAt": "2025-07-15",
      "allotments": 10,
      "minPax": 1,
      "maxPax": 12,
      "minPaxForDeparture": 4,
      "perPax": true,
      "price": 450,
      "state": "free_sale",
      "childrenPax": [
        {
          "ageRange": [
            6,
            12
          ],
          "price": 225
        }
      ]
    }
  ],
  "programs": [
    {
      "title": "Day 1: Coastal Exploration",
      "program": "<p>Discover stunning coastal views and hidden beaches</p>",
      "accomodationType": "noAccomodation",
      "guiding": true,
      "guidingLanguages": [
        "English"
      ],
      "startPosition": {
        "address": "200 Plaza Square",
        "city": "San Francisco",
        "country": "United States",
        "isCity": true,
        "lat": 37.7749,
        "lon": -122.4194,
        "name": "Downtown Meeting Point"
      },
      "endPosition": {
        "address": "200 Plaza Square",
        "city": "San Francisco",
        "country": "United States",
        "isCity": true,
        "lat": 37.7749,
        "lon": -122.4194,
        "name": "Downtown Meeting Point"
      }
    }
  ],
  "extras": [],
  "mediaLinks": [],
  "pictures": []
}

Response:

json
{
  "id": "exp-790",
  "dmcReference": "PROG-SIC-002",
  "name": "Group Adventure Package",
  "type": "Program",
  "pricingType": "sic",
  "state": "in_progress",
  "organizationId": "org-456",
  "createdAt": "2024-06-01T10:15:00Z",
  "updatedAt": "2024-06-01T10:15:00Z",
  "message": "Program created successfully"
}

Create Program (Series Pricing)

Request Body:

json
{
  "state": "in_progress",
  "type": "Program",
  "name": "Weekly Explorer Series",
  "description": "<p>Join our popular recurring weekly adventure</p>",
  "dmcReference": "PROG-SER-003",
  "organizationId": "org-456",
  "organizationName": "Adventure Travel Co",
  "currency": "EUR",
  "pricingType": "series",
  "isRepeatable": true,
  "isReservableAlone": false,
  "isTransitionalProgram": false,
  "durationDays": 2,
  "durationHours": 0,
  "durationMinutes": 0,
  "startPosition": {
    "address": "15 Heritage Street",
    "city": "Rome",
    "country": "Italy",
    "isCity": true,
    "lat": 41.9028,
    "lon": 12.4964,
    "name": "Central Station"
  },
  "endPosition": {
    "address": "15 Heritage Street",
    "city": "Rome",
    "country": "Italy",
    "isCity": true,
    "lat": 41.9028,
    "lon": 12.4964,
    "name": "Central Station"
  },
  "inCity": {
    "id": "city-321",
    "title": "Rome",
    "code": "ITROM",
    "lat": 41.9028,
    "lon": 12.4964,
    "country": {
      "id": "country-654",
      "alpha2": "IT",
      "title": "Italy",
      "status": true
    },
    "region": {
      "id": "region-987",
      "title": "Lazio",
      "country": {
        "id": "country-654",
        "alpha2": "IT",
        "title": "Italy"
      }
    }
  },
  "includedServices": "<p>Expert local guide</p><p>All transfers</p><p>Daily breakfast</p><p>Museum tickets</p>",
  "excludedServices": "<p>Hotel accommodation</p><p>Lunch and dinner</p>",
  "cancellationPolicies": "<p><strong>Series Cancellation Policy:</strong> Free cancellation up to 10 days before start date.</p>",
  "guiding": true,
  "guidingLanguages": [
    "English",
    "Italian"
  ],
  "periods": [
    {
      "startAt": "2025-06-01",
      "allotments": 8,
      "minPax": 2,
      "maxPax": 8,
      "minPaxForDeparture": 4,
      "perPax": true,
      "price": 320,
      "state": "free_sale",
      "adultPax": [
        {
          "price": 320,
          "paxRange": [
            2,
            3
          ]
        },
        {
          "price": 280,
          "paxRange": [
            4,
            8
          ]
        }
      ],
      "childrenPax": [
        {
          "ageRange": [
            6,
            12
          ],
          "price": 160
        }
      ]
    }
  ],
  "programs": [
    {
      "title": "Day 1: Ancient Rome",
      "program": "<p>Explore the Colosseum, Roman Forum, and ancient ruins</p>",
      "accomodationType": "noAccomodation",
      "guiding": true,
      "guidingLanguages": [
        "English"
      ],
      "startPosition": {
        "address": "15 Heritage Street",
        "city": "Rome",
        "country": "Italy",
        "isCity": true,
        "lat": 41.9028,
        "lon": 12.4964,
        "name": "Central Station"
      },
      "endPosition": {
        "address": "15 Heritage Street",
        "city": "Rome",
        "country": "Italy",
        "isCity": true,
        "lat": 41.9028,
        "lon": 12.4964,
        "name": "Central Station"
      }
    }
  ],
  "extras": [],
  "mediaLinks": [],
  "pictures": []
}

Response:

json
{
  "id": "exp-791",
  "dmcReference": "PROG-SER-003",
  "name": "Weekly Explorer Series",
  "type": "Program",
  "pricingType": "series",
  "state": "in_progress",
  "organizationId": "org-456",
  "createdAt": "2024-06-01T10:30:00Z",
  "updatedAt": "2024-06-01T10:30:00Z",
  "message": "Program created successfully"
}

Create Activity

Activities represent single tours, excursions, or attractions. Set activity.isExtra: false for regular activities.

Request Body:

json
{
  "name": "Historic City Walking Tour",
  "organizationId": "org-789",
  "state": "in_progress",
  "type": "Activity",
  "activity": {
    "guiding": false,
    "guidingLanguages": [],
    "isExtra": false
  },
  "cancellationPolicies": "<p>Free cancellation up to 24 hours before the tour starts</p>",
  "currency": "USD",
  "description": "<p>Discover the city's rich history on this guided walking tour</p>",
  "durationDays": 1,
  "durationHours": 0,
  "durationMinutes": 0,
  "excludedServices": "<p>Hotel</p><p>Tip</p>",
  "extras": [],
  "guiding": false,
  "guidingLanguages": [],
  "inCity": {
    "bestPeriod": null,
    "code": "THBKK",
    "country": {
      "alpha2": "TH",
      "id": "country-123",
      "status": true,
      "title": "Thailand"
    },
    "id": "city-789",
    "lat": 13.7563,
    "lon": 100.5018,
    "region": {
      "country": {
        "alpha2": "TH",
        "id": "country-123",
        "title": "Thailand"
      },
      "id": "region-456",
      "title": "Bangkok"
    },
    "title": "Bangkok",
    "transportTime": null
  },
  "includedServices": "<p>Transfer</p><p>Water</p><p>Guide</p>",
  "isRepeatable": false,
  "isReservableAlone": true,
  "isTransitionalProgram": false,
  "mediaLinks": [],
  "periods": [
    {
      "availableDays": [
        1,
        1,
        1,
        1,
        1,
        0,
        0
      ],
      "endAt": "2025-12-31",
      "maxPax": 2,
      "minPax": 2,
      "perPax": false,
      "price": 150,
      "startAt": "2025-12-01",
      "state": "on_request"
    }
  ],
  "pictures": [],
  "pricingType": "fit",
  "programs": [],
  "startPosition": {
    "address": "123 Hospital Road",
    "city": "Bangkok",
    "country": "Thailand",
    "isCity": false,
    "lat": 13.7487,
    "lon": 100.5832,
    "name": "City Hospital"
  },
  "endPosition": {
    "address": "456 University Avenue",
    "city": "Bangkok",
    "country": "Thailand",
    "isCity": false,
    "lat": 14.0395,
    "lon": 100.6154,
    "name": "University Campus"
  }
}

Response:

json
{
  "id": "exp-792",
  "name": "Historic City Walking Tour",
  "type": "Activity",
  "state": "in_progress",
  "organizationId": "org-789",
  "createdAt": "2024-06-01T11:00:00Z",
  "updatedAt": "2024-06-01T11:00:00Z",
  "message": "Activity created successfully"
}

Create Extra

Extras are add-on services distinguished from activities by setting activity.isExtra: true. They use type: "Activity".

Request Body:

json
{
  "name": "Premium Meal Package",
  "organizationId": "org-789",
  "state": "in_progress",
  "type": "Activity",
  "activity": {
    "guiding": false,
    "guidingLanguages": [],
    "isExtra": true
  },
  "currency": "USD",
  "description": "<p>Upgrade your experience with our premium meal package</p>",
  "durationDays": 1,
  "durationHours": 0,
  "durationMinutes": 0,
  "excludedServices": "<p>Hotel</p><p>Tip</p>",
  "extras": [],
  "guiding": false,
  "guidingLanguages": [],
  "includedServices": "<p>Transfer</p><p>Water</p><p>Guide</p>",
  "isRepeatable": false,
  "isReservableAlone": false,
  "isTransitionalProgram": false,
  "mediaLinks": [],
  "periods": [
    {
      "availableDays": [
        1,
        1,
        1,
        1,
        1,
        1,
        1
      ],
      "endAt": "2025-12-31",
      "maxPax": 2,
      "minPax": 1,
      "perPax": false,
      "price": 50,
      "startAt": "2025-12-01",
      "state": "free_sale"
    }
  ],
  "pictures": [],
  "pricingType": "fit",
  "programs": []
}

Response:

json
{
  "id": "exp-793",
  "name": "Premium Meal Package",
  "type": "Activity",
  "state": "in_progress",
  "organizationId": "org-789",
  "createdAt": "2024-06-01T11:15:00Z",
  "updatedAt": "2024-06-01T11:15:00Z",
  "message": "Extra created successfully"
}

Create Transfer

Transfers represent transportation services between locations. They support different transfer types (RAIL, LAND, AIR, BOAT).

Request Body:

json
{
  "name": "Airport to Hotel Transfer",
  "organizationId": "org-789",
  "cancellationPolicies": "<p>Free cancellation up to 12 hours before pickup time</p>",
  "currency": "USD",
  "description": "<p>Comfortable transfer service from airport to your hotel</p>",
  "durationDays": 1,
  "durationHours": 10,
  "durationMinutes": 0,
  "state": "in_progress",
  "type": "Transfer",
  "transfer": {
    "guiding": false,
    "guidingLanguages": [],
    "rail": {
      "arrivalStation": "Central Station",
      "departureStation": "Airport Station"
    },
    "type": "RAIL"
  },
  "excludedServices": "<p>Guide</p>",
  "extras": [],
  "guiding": false,
  "guidingLanguages": [],
  "inCity": {
    "bestPeriod": null,
    "code": "THBKK",
    "country": {
      "alpha2": "TH",
      "id": "country-123",
      "status": true,
      "title": "Thailand"
    },
    "id": "city-789",
    "lat": 13.7563,
    "lon": 100.5018,
    "region": {
      "country": {
        "alpha2": "TH",
        "id": "country-123",
        "title": "Thailand"
      },
      "id": "region-456",
      "title": "Bangkok"
    },
    "title": "Bangkok",
    "transportTime": null
  },
  "includedServices": "<p>Water</p>",
  "isRepeatable": false,
  "isReservableAlone": false,
  "isTransitionalProgram": false,
  "mediaLinks": [],
  "periods": [
    {
      "availableDays": [
        1,
        1,
        1,
        1,
        1,
        1,
        0
      ],
      "endAt": "2025-12-31",
      "maxPax": 2,
      "minPax": 1,
      "perPax": false,
      "price": 100,
      "startAt": "2025-12-01",
      "state": "free_sale"
    }
  ],
  "pictures": [],
  "pricingType": "fit",
  "programs": [],
  "startPosition": {
    "address": "999 Airport Road",
    "city": "Bangkok",
    "country": "Thailand",
    "isCity": false,
    "lat": 13.7304,
    "lon": 100.5658,
    "name": "International Airport"
  },
  "endPosition": {
    "address": "123 Hotel Street",
    "city": "Bangkok",
    "country": "Thailand",
    "isCity": false,
    "lat": 13.7304,
    "lon": 100.5658,
    "name": "Downtown Hotel"
  }
}

Response:

json
{
  "id": "exp-794",
  "name": "Airport to Hotel Transfer",
  "type": "Transfer",
  "state": "in_progress",
  "organizationId": "org-789",
  "createdAt": "2024-06-01T11:30:00Z",
  "updatedAt": "2024-06-01T11:30:00Z",
  "message": "Transfer created successfully"
}

Get Experience Details

Retrieve detailed information about a specific experience.

Endpoint: GET /api/v1/experiences/{experienceId}

Parameters:

  • experienceId (path, required): Experience ID
  • locale (query, optional): 2-letter language code (e.g., en, fr)

Example Request:

bash
curl --location '{{DOMAIN_URL}}/api/v1/experiences/4171?locale=en'

Response:

json
{
  "id": "4171",
  "name": "Airport to Hotel Transfer",
  "summary": null,
  "state": "in_progress",
  "description": "<p>Comfortable transfer service from airport to your hotel</p>",
  "inCity": {
    "id": "city-789",
    "title": "Bangkok",
    "lat": 13.7563,
    "lon": 100.5018,
    "country": {
      "id": "country-123",
      "idRails": "Z2lkOi8vcGhoL0NvdW50cnkvNTg=",
      "alpha2": "TH",
      "title": "Thailand"
    },
    "region": {
      "id": "region-456",
      "title": "Bangkok",
      "country": {
        "id": "country-123",
        "idRails": "Z2lkOi8vcGhoL0NvdW50cnkvNTg=",
        "alpha2": "TH",
        "title": "Thailand"
      }
    }
  },
  "hasToRequest": false,
  "startPosition": {
    "id": "pos-111",
    "name": "International Airport",
    "address": "999 Airport Road",
    "city": "Bangkok",
    "country": "Thailand",
    "lat": 13.7304,
    "lon": 100.5658,
    "isCity": false
  },
  "endPosition": {
    "id": "pos-222",
    "name": "Downtown Hotel",
    "address": "123 Hotel Street",
    "city": "Bangkok",
    "country": "Thailand",
    "lat": 13.7304,
    "lon": 100.5658,
    "isCity": false
  },
  "locationsExtraInformations": null,
  "durationDays": 1,
  "durationHours": 10,
  "durationMinutes": 0,
  "currency": "USD",
  "extraRemarks": null,
  "mediaLinks": [],
  "includedServices": "<p>Water</p>",
  "excludedServices": "<p>Guide</p>",
  "type": "Transfer",
  "organizationId": "org-789",
  "organizationName": "City Tours International",
  "isReservableAlone": false,
  "isRepeatable": false,
  "pictures": [],
  "extras": [],
  "bestMatches": [],
  "incompatibilities": [],
  "periods": [
    {
      "id": "period-001",
      "startAt": "2025-12-01",
      "endAt": "2025-12-31",
      "availableDays": [
        1,
        1,
        1,
        1,
        1,
        1,
        0
      ],
      "state": "free_sale",
      "price": 100,
      "perPax": false,
      "roomSupplement": null,
      "hasRoomSupplement": false,
      "minPax": 1,
      "minPaxForDeparture": 0,
      "currentPaxForDeparture": 0,
      "maxPax": 2,
      "allotments": 0,
      "allotmentsUsed": 0,
      "breakEven": null,
      "adultPax": [],
      "childrenPax": []
    }
  ],
  "accreditations": [],
  "sustainableClusters": [],
  "transfer": {
    "departureTime": null,
    "arrivalTime": null,
    "type": "RAIL",
    "time": null,
    "rail": {
      "departureStation": "Airport Station",
      "arrivalStation": "Central Station",
      "trainName": null,
      "trainNumber": null,
      "privateCabin": null,
      "seats": null,
      "class": null
    }
  },
  "programs": [],
  "highlights": null,
  "cancellationPolicies": "<p>Free cancellation up to 12 hours before pickup time</p>",
  "guiding": false,
  "guidingLanguages": [],
  "pricingType": "fit",
  "segments": [],
  "themes": [],
  "isTransitionalProgram": false
}

Update Experience

Update an existing experience's information. Recommended workflow: First retrieve the experience in the specific language you want to update, then submit the updated data.

Endpoint: PUT /api/v1/experiences/{experienceId}

Parameters:

  • experienceId (path, required): Experience ID
  • locale (query, optional): 2-letter language code for the update (e.g., en, fr)

Example Request:

bash
curl --location --request PUT '{{DOMAIN_URL}}/api/v1/experiences/4171?locale=fr' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {YOUR_TOKEN}' \
--data '{
  "id": "4171",
  "name": "Transfert Aéroport - Hôtel",
  "summary": null,
  "state": "in_progress",
  "description": "<p>Service de transfert confortable de l aéroport à votre hôtel</p>",
  "inCity": {
    "id": "city-789",
    "title": "Bangkok",
    "lat": 13.7563,
    "lon": 100.5018,
    "country": {
      "id": "country-123",
      "idRails": "Z2lkOi8vcGhoL0NvdW50cnkvNTg=",
      "alpha2": "TH",
      "title": "Thailand"
    },
    "region": {
      "id": "region-456",
      "title": "Bangkok",
      "country": {
        "id": "country-123",
        "idRails": "Z2lkOi8vcGhoL0NvdW50cnkvNTg=",
        "alpha2": "TH",
        "title": "Thailand"
      }
    }
  },
  "hasToRequest": false,
  "startPosition": {
    "id": "pos-111",
    "name": "International Airport",
    "address": "999 Airport Road",
    "city": "Bangkok",
    "country": "Thailand",
    "lat": 13.7304,
    "lon": 100.5658,
    "isCity": false
  },
  "endPosition": {
    "id": "pos-222",
    "name": "Downtown Hotel",
    "address": "123 Hotel Street",
    "city": "Bangkok",
    "country": "Thailand",
    "lat": 13.7304,
    "lon": 100.5658,
    "isCity": false
  },
  "locationsExtraInformations": null,
  "durationDays": 1,
  "durationHours": 10,
  "durationMinutes": 0,
  "currency": "USD",
  "extraRemarks": null,
  "mediaLinks": [],
  "includedServices": "<p>Eau</p>",
  "excludedServices": "<p>Guide</p>",
  "type": "Transfer",
  "organizationId": "org-789",
  "organizationName": "City Tours International",
  "isReservableAlone": false,
  "isRepeatable": false,
  "pictures": [],
  "extras": [],
  "bestMatches": [],
  "incompatibilities": [],
  "periods": [
    {
      "id": "period-001",
      "startAt": "2025-12-01",
      "endAt": "2025-12-31",
      "availableDays": [1, 1, 1, 1, 1, 1, 0],
      "state": "free_sale",
      "price": 100,
      "perPax": false,
      "roomSupplement": null,
      "hasRoomSupplement": false,
      "minPax": 1,
      "minPaxForDeparture": 0,
      "currentPaxForDeparture": 0,
      "maxPax": 2,
      "allotments": 0,
      "allotmentsUsed": 0,
      "breakEven": null,
      "adultPax": [],
      "childrenPax": []
    }
  ],
  "accreditations": [],
  "sustainableClusters": [],
  "transfer": {
    "departureTime": null,
    "arrivalTime": null,
    "type": "RAIL",
    "time": null,
    "rail": {
      "departureStation": "Airport Station",
      "arrivalStation": "Central Station",
      "trainName": null,
      "trainNumber": null,
      "privateCabin": null,
      "seats": null,
      "class": null
    }
  },
  "programs": [],
  "highlights": null,
  "cancellationPolicies": "<p>Annulation gratuite jusqu à 12 heures avant l heure de prise en charge</p>",
  "guiding": false,
  "guidingLanguages": [],
  "pricingType": "fit",
  "segments": [],
  "themes": [],
  "isTransitionalProgram": false
}'

Response: HTTP 200 OK (empty body)


List Experiences

Retrieve a list of experiences with filtering and pagination options.

Endpoint: POST /api/v1/experiences/liste

Parameters:

  • locale (query, optional): 2-letter language code (e.g., en, fr)

Note: For additional filtering options and parameters, please refer to the API Reference.

Request Body:

json
{
  "page": 1,
  "perPage": 12,
  "state": "in_progress",
  "types": [
    "Program"
  ],
  "search": "",
  "minDuration": 1,
  "maxDuration": 2,
  "pricingType": "sic"
}

Response:

json
[
  {
    "id": "exp-790",
    "name": "Group Adventure Package",
    "durationDays": 1,
    "durationHours": 3,
    "durationMinutes": 0,
    "tags": [],
    "showcased": false,
    "experienceType": "Program",
    "organizationId": "org-456",
    "organizationName": "Adventure Travel Co",
    "organizationImages": "https://storage.example.com/org-logo.jpg",
    "isExtra": null,
    "isRepeatable": true,
    "isTransitionalProgram": false,
    "imageUrl": "https://storage.example.com/experience-image.jpg",
    "inCity": {
      "id": "city-456",
      "title": "San Francisco",
      "lat": 37.7749,
      "lon": -122.4194,
      "country": {
        "title": "United States",
        "alpha2": "US"
      }
    },
    "transferType": null,
    "pricingType": "sic",
    "cancellationPolicies": "<p><strong>Cancellation Policy:</strong> Full refund if cancelled 14+ days before departure.</p>"
  },
  {
    "id": "exp-791",
    "name": "Weekly Explorer Series",
    "durationDays": 2,
    "durationHours": 0,
    "durationMinutes": 0,
    "tags": [],
    "showcased": false,
    "experienceType": "Program",
    "organizationId": "org-456",
    "organizationName": "Adventure Travel Co",
    "organizationImages": "https://storage.example.com/org-logo.jpg",
    "isExtra": null,
    "isRepeatable": true,
    "isTransitionalProgram": false,
    "imageUrl": "https://storage.example.com/experience-image.jpg",
    "inCity": {
      "id": "city-321",
      "title": "Rome",
      "lat": 41.9028,
      "lon": 12.4964,
      "country": {
        "title": "Italy",
        "alpha2": "IT"
      }
    },
    "transferType": null,
    "pricingType": "series",
    "cancellationPolicies": "<p><strong>Series Cancellation Policy:</strong> Free cancellation up to 10 days before start date.</p>"
  }
]

Additional Operations

For the following operations, please refer to the complete API Reference:

  • Delete Experience: DELETE /api/v1/experiences/{experienceId}
  • Bulk Update Experiences: PATCH /api/v1/experiences/bulk
  • Error Handling: Complete error response specifications
  • Advanced Filtering: Additional query parameters and search options

Common Field Definitions

Experience Types

  • Program: Multi-day itineraries with daily schedules and accommodation options
  • Activity: Single tours, excursions, attractions, or extras
    • Regular activities: Set activity.isExtra: false
    • Extras (add-ons): Set activity.isExtra: true
  • Transfer: Transportation services between locations

Transfer Types

When type: "Transfer", specify the transfer mode in the transfer object:

  • RAIL: Train or railway transportation
  • LAND: Car, bus, or road transportation
  • AIR: Flight or air transportation
  • BOAT: Boat, ferry, or water transportation

Pricing Types

For Programs:

  • fit (Free Independent Traveler): Flexible per person pricing with variable pax ranges
  • sic (Seat-in-Coach): Shared group departures with fixed dates and limited seats
  • series: Scheduled departures with recurring dates

For Activities, Transfers, and Extras:

  • fit: Standard per person or per group pricing

States

  • in_progress: Being prepared for publication
  • available: Active and bookable
  • stand_by: No longer offered

Period Types

  • free_sale: Open for booking without restrictions. Bookings are automatically confirmed.
  • on_request: Requires availability confirmation before booking. Bookings must be manually confirmed.
  • pre_confirmed: Pre-approved for booking with guaranteed availability during the specified period.
  • stop_sale: Temporarily closed for new bookings. No reservations are accepted during this period.

Accommodation Types (for Programs)

  • hotel: Hotel accommodation included
  • noAccomodation: No accommodation included
  • freeAccomodation: Accommodation is provided at no additional cost
  • nightTransfer: Overnight transfer (travel during night hours, no traditional accommodation)

Available Days

Array of 7 values (0 or 1) representing availability for each day, starting with Monday (index 0).

  • 0: Not available
  • 1: Available

Example:

json
{
  "availableDays": [
    1,
    1,
    1,
    1,
    1,
    1,
    0
  ]
}

This example indicates the experience is available Monday through Saturday, and not available on Sunday.

Key Differences Between Pricing Types

FeatureFITSICSeries
Departure DatesFlexible date rangeFixed single datesFixed recurring dates
Pricing StructureTiered by pax countFixed per personCombination
AllotmentsNot requiredRequiredRequired
Min Pax for DepartureOptionalRequiredRequired
End DateRequiredAuto-filledAuto-filled
Use CasePrivate toursShared group toursScheduled group series

Activity vs Extra

FeatureActivityExtra
Type"Activity""Activity"
isExtra Flagactivity.isExtra: falseactivity.isExtra: true
isReservableAloneUsually trueUsually false
Use CaseStandalone tours/excursionsAdd-on services