Tours
Search for tours and activities
GET
/v1/return_toursReturns tours/activities matching the search criteria. At least one filter parameter is recommended to limit results.
Pagination: Use limit (max 100) and offset for pagination.
Deposit-only products: Some tours are configured so the customer pays a small
reservation fee at booking and the balance is paid directly to the operator on
the day of the tour. These products will include booking_meta.deposit_only: "Yes" in the response. The vast majority of products do not have this flag and
are full-payment at booking; for those, the field is omitted entirely. Use
return_availability to retrieve the per-quote reserve_for amount once the
partner has selected dates and travelers.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Optional | Specific product ID (e.g., “PE12031” or “12031”) |
country | string | Optional | Country name or slug (e.g., “ireland”). Use “all” for all countries. |
region | string | Optional | Region name or ID |
town | string | Optional | Town name or ID |
subcontinent | string | Optional | Subcontinent filter |
latitude | number | Optional | Latitude for geo-based search (requires longitude and range) |
longitude | number | Optional | Longitude for geo-based search (requires latitude and range) |
range | integer | Optional | Distance range in miles for geo-search |
name | string | Optional | Search by tour name (partial match) |
sa_id | integer | Optional | Sight/Attraction ID |
promotion | integer | Optional | Filter to promotional products only - Values: 0, 1 |
sort_by | string | Optional | Field to sort results by - Values: PRICE, RATING, DURATION |
sort_order | string | Optional | Sort order - Values: ASC, DESC - Default: ASC |
filter_by | string | Optional | Field to filter by - Values: NAME, TYPE, DIFFICULTY, LANGUAGE, ACTIVITIES, SIGHTS |
filter | string | Optional | Filter value (depends on filter_by) |
limit | integer | Optional | Maximum number of results to return - Default: 100 |
offset | integer | Optional | Number of results to skip (for pagination) - Default: 0 |
Code Examples
curl -H "access-token: {{token}}" \ "https://apistage.projectexpedition.com/v1/return_tours?country=ireland"const response = await fetch('https://apistage.projectexpedition.com/v1/return_tours?country=ireland', { headers: { 'access-token': 'YOUR_TOKEN' }});
const data = await response.json();<?php$context = stream_context_create([ 'http' => [ 'method' => 'GET', 'header' => "access-token: YOUR_TOKEN" ]]);
$response = file_get_contents('https://apistage.projectexpedition.com/v1/return_tours?country=ireland', false, $context);$data = json_decode($response, true);curl -H "access-token: {{token}}" \ "https://apistage.projectexpedition.com/v1/return_tours?latitude=53.349805&longitude=-6.26031&range=50"const response = await fetch('https://apistage.projectexpedition.com/v1/return_tours?latitude=53.349805&longitude=-6.26031&range=50', { headers: { 'access-token': 'YOUR_TOKEN' }});
const data = await response.json();<?php$context = stream_context_create([ 'http' => [ 'method' => 'GET', 'header' => "access-token: YOUR_TOKEN" ]]);
$response = file_get_contents('https://apistage.projectexpedition.com/v1/return_tours?latitude=53.349805&longitude=-6.26031&range=50', false, $context);$data = json_decode($response, true);curl -H "access-token: {{token}}" \ "https://apistage.projectexpedition.com/v1/return_tours?country=ireland&filter_by=TYPE&filter=PRIVATE&sort_by=PRICE&sort_order=ASC"const response = await fetch('https://apistage.projectexpedition.com/v1/return_tours?country=ireland&filter_by=TYPE&filter=PRIVATE&sort_by=PRICE&sort_order=ASC', { headers: { 'access-token': 'YOUR_TOKEN' }});
const data = await response.json();<?php$context = stream_context_create([ 'http' => [ 'method' => 'GET', 'header' => "access-token: YOUR_TOKEN" ]]);
$response = file_get_contents('https://apistage.projectexpedition.com/v1/return_tours?country=ireland&filter_by=TYPE&filter=PRIVATE&sort_by=PRICE&sort_order=ASC', false, $context);$data = json_decode($response, true);