# List Travel Data Trips Returns the trips stored for the authenticated client, most recently ingested first. Trips from every source are listed — API submissions, CSV imports and TMC integrations alike. Each trip is returned in full: the identity fields a submission echoes back (, , , , ) plus the trip as you described it on ingestion — , , , , , , , and the nested . What a trip does carry is its activities: only their IDs. Read an activity, its traveler, its calculations and its audit references from . results are paginated with the and query parameters, and the pagination metadata is returned in the response headers (, , , , and an RFC 8288 header). if submitting on behalf of other clients is enabled for your account, this lists the trips of the authenticated client and all of its descendants. Otherwise only your own trips are returned — never a parent's, a sibling's, or an unrelated client's. A client with no stored trips gets an empty array. Endpoint: GET /v2/travel-data/trips Security: Bearer-Auth ## Query parameters: - `page` (number) Page number for pagination (starts at 1). - `items` (number) Number of trips per page. Defaults to 20, capped at 100. ## Response 200 fields (application/json): - `id` (string, required) SQUAKE's identifier for the trip. Addresses the trip on every read and delete. - `trip_reference` (string,null, required) Your own reference for the trip, echoed from the request that created it. Also usable in place of in the trip paths. - `client_id` (string, required) The client that owns the trip — the target client when the trip was submitted with a root-level , otherwise the submitting client itself. - `submitted_by_client_id` (string,null, required) The client whose credentials submitted the trip. for trips that did not arrive through (for example CSV imports or TMC integrations). A trip re-used by a later submission keeps the submitter that first created it. - `activity_ids` (array, required) The IDs of the trip's activities, in ingestion order, across all activity types. Individual legs of a flight are not listed — the routed activity carries the itinerary. A read always lists every activity of the trip, including activities added by earlier or later submissions — unlike the of a submission response, which covers only what that request wrote. - `trip_name` (string,null, required) The trip's name, echoed from ingestion. if the source did not provide one. - `trip_purpose` (string,null, required) The trip's purpose, echoed from ingestion. if the source did not provide one. - `trip_status` (string,null, required) The trip's status as the source reported it, echoed from ingestion. Free-form — SQUAKE neither constrains nor normalizes the value. - `booking_provider` (string,null, required) The provider the trip was booked through (a TMC, an online booking tool), echoed from ingestion. if the source did not provide one. - `start_date_utc` (string,null, required) Start of the trip, in UTC. Ingestion accepts an ISO 8601 date (); it is stored and returned as an ISO 8601 date-time (). Required on , so only trips from other sources can report . - `end_date_utc` (string,null, required) End of the trip, in UTC, in the same date-time format as . if the source did not provide one. - `amount_in_cents` (integer,null, required) The booking's own amount, in the minor unit of (so is ), echoed from ingestion. SQUAKE also derives an amount in your base currency for reporting; that one is internal and never returned here. - `currency` (string,null, required) 3-letter ISO 4217 alpha code of . - `cost_center` (object,null, required) The cost center the trip is booked against, or for a trip that has none. The key is always present. Only the fields that identify the cost center to you are returned — the department and the internal id it carries in the dashboard are not part of this response. - `cost_center.name` (string, required) Name of the cost center, echoed from ingestion. - `cost_center.purpose` (string,null, required) Purpose of the cost center, echoed from ingestion. - `cost_center.email` (string,null, required) Contact email of the cost center, echoed from ingestion. ## Response 401 fields (application/json): - `errors` (array) - `errors.code` (string, required) An application-specific error code, expressed as a string value. Enum: "field_validation_error", "invalid_params", "server_error", "not_authorized", "not_found", "invalid_methodology", "invalid_type", "client_not_found", "invalid_parent_client", "client_has_children", "parent_id_immutable", "travel_data_not_found" - `errors.detail` (string) A human-readable explanation specific to this occurrence of the problem. Like title, this field's value can be localized. - `errors.source` (object) An object containing references to the primary source of the error - `errors.source.id` (string) - `errors.source.attribute` (string, required) - `errors.source.model` (string) ## Response 404 fields (application/json): - `errors` (array) - `errors.code` (string, required) An application-specific error code, expressed as a string value. Enum: "field_validation_error", "invalid_params", "server_error", "not_authorized", "not_found", "invalid_methodology", "invalid_type", "client_not_found", "invalid_parent_client", "client_has_children", "parent_id_immutable", "travel_data_not_found" - `errors.detail` (string) A human-readable explanation specific to this occurrence of the problem. Like title, this field's value can be localized. - `errors.source` (object) An object containing references to the primary source of the error - `errors.source.id` (string) - `errors.source.attribute` (string, required) - `errors.source.model` (string)