Retrieve an Activity of a Travel Data Trip

GET
/v2/travel-data/trips/{trip_id}/activities/{activity_id}

Returns a single activity of a trip with its traveler and the calculations persisted for it. Activities are always addressed through their trip.

As in the list, the key set depends on the activity type: origin/destination are absent for a hotel stay, and fuel_type is only returned for car and train.

An activity of another trip, a routing leg, and an ID that does not exist all respond with 404 and error code travel_data_not_found.

Authorization

Bearer-Auth
headerAuthorizationBearer <token>

Path Parameters

trip_id*string

The trip's id (UUID) or your own trip_reference.

activity_id*string

The activity's id (UUID), as listed in the trip's activity_ids.

Response Body

OK

application/json
  1. response

One activity of a stored trip — a flight, hotel stay, car ride or train journey — together with the traveler it was booked for and every calculation persisted for it.

The key set varies by type. Route and fuel are only stored for the activity types that have them: a hotel stay has no origin/destination, and only car and train carry a fuel_type. A key a type cannot have is omitted rather than returned as null, so read type first.

Individual legs of a routing flight are not returned: a leg is an internal segment of its itinerary, and the routed activity carries the itinerary total.

id*string

Identifier of the activity, as listed in the trip's activity_ids.

Formatuuid
type*Travel-Data-Activity-Type

The activity type of a travel data activity.

Value in"car""flight""hotel""train"
trip_id*string

The trip this activity belongs to.

Formatuuid
client_id*string

The client that owns the activity — always the owner of its trip.

Formatuuid
external_reference*|

Your own reference for the activity, echoed from the request that created it.

origin?|

Where the activity started, echoed from ingestion in the format it was submitted in — typically an airport code for a flight, an address, UN/LOCODE or lat/long pair for a car or train. The city and country SQUAKE resolved it to are used for the calculation and kept internally.

Only returned for flight, car and train. A hotel activity has no route, and the key is omitted rather than null.

destination?|

Where the activity ended, in the same format as origin.

Only returned for flight, car and train. A hotel activity has no route, and the key is omitted rather than null.

fuel_type?|

The fuel the activity was calculated with, echoed from ingestion. The accepted values depend on the methodology — see the car and train request schemas.

Only returned for car and train. For a flight or hotel activity the key is omitted rather than null.

traveler*|

Who travelled, as you described them on submission, or null for an activity submitted without a traveler (common for CSV and TMC rows). The key is always present, for every activity type.

Only the fields that identify the traveler to you are returned — the department, the external employee id and the internal id the record carries in the dashboard are not part of this response.

calculations*array<>

The calculations persisted for this activity, oldest first — one per methodology configured for the activity type. Empty if no calculation was persisted.

Example Request
curl -X GET 'https://api.sandbox.squake.earth/v2/travel-data/trips/string/activities/string'
Example Response
{  "id": "6c1f6a5e-1d0e-4b8a-9f2c-2b1e6d4a7c31",  "type": "flight",  "trip_id": "0194d6b4-8711-7873-899d-c8133cd742f8",  "client_id": "4fb3ec7a-92cb-471f-b75f-c3fe7c2a34d5",  "external_reference": "ACTIVITY-FLIGHT-OUTBOUND",  "origin": "BER",  "destination": "LHR",  "traveler": {    "name": "Jane Doe",    "email": "jane.doe@example.com",    "traveler_type": "employee"  },  "calculations": [    {      "id": "3f2a1c8e-5d47-4b91-a0c3-1e8b7d6f4a20",      "methodology": "DEFRA",      "methodology_version": "2026",      "co2_in_grams": 142600,      "audit": null    }  ]}

Retrieve a Travel Data Trip

Returns a single stored trip, addressed either by its SQUAKE `id` or by your own `trip_reference`. The response is the same shape the trip list returns: the identity fields a submission echoes back plus the trip as you described it on ingestion — name, purpose, status, dates, booking provider, amount and the nested `cost_center`. The trip carries the IDs of its activities, not the activities themselves — read those from [`/v2/travel-data/trips/{trip_id}/activities`](https://docs.squake.earth/reference/squake/travel-data/get-v2-travel-data-trips-trip-id-activities). A trip you cannot access is indistinguishable from one that does not exist: both respond with `404` and error code `travel_data_not_found`.

List the Activities of a Travel Data Trip

Returns every activity of a trip, in ingestion order, each with its traveler and the calculations persisted for it. A trip is a single booking, so the list is bounded and returned in full — it is not paginated. This is where additional methodologies become visible: the `items` array of `POST /v2/travel-data` only reports the primary methodology of each activity, while an activity here carries one calculation per methodology configured for its type. **The key set varies by activity `type`.** `origin` and `destination` are returned for `flight`, `car` and `train` but not for `hotel`; `fuel_type` only for `car` and `train`. A key the type cannot have is omitted rather than returned as `null`, so read `type` first. `traveler` is always present, and is `null` for an activity submitted without one. Individual legs of a `routing` flight are not listed — the routed activity carries the itinerary total. A trip you cannot access responds with `404` and error code `travel_data_not_found`.