curl --request GET \
--url https://api.example.com/api/v1/ops/offerings/trips/{tripId}/trip-itineraries/{tripItineraryId}import requests
url = "https://api.example.com/api/v1/ops/offerings/trips/{tripId}/trip-itineraries/{tripItineraryId}"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/api/v1/ops/offerings/trips/{tripId}/trip-itineraries/{tripItineraryId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/api/v1/ops/offerings/trips/{tripId}/trip-itineraries/{tripItineraryId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/v1/ops/offerings/trips/{tripId}/trip-itineraries/{tripItineraryId}"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/api/v1/ops/offerings/trips/{tripId}/trip-itineraries/{tripItineraryId}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/ops/offerings/trips/{tripId}/trip-itineraries/{tripItineraryId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"tripItineraryId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3a",
"tripId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3b",
"fromStopId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3c",
"toStopId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3d",
"price": 15000,
"fromStop": {
"tripStopId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3a",
"tripId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3b",
"pointId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3c",
"stopOrder": 1,
"point": {
"name": "São Paulo",
"pointId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3a",
"description": "Terminal Rodoviário Tietê",
"lat": -23.5155,
"lng": -46.6254
},
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z",
"createdBy": null,
"updatedBy": null,
"arrivalAt": "2026-04-15T10:00:00.000Z",
"departureAt": "2026-04-15T10:15:00.000Z"
},
"toStop": {
"tripStopId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3a",
"tripId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3b",
"pointId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3c",
"stopOrder": 1,
"point": {
"name": "São Paulo",
"pointId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3a",
"description": "Terminal Rodoviário Tietê",
"lat": -23.5155,
"lng": -46.6254
},
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z",
"createdBy": null,
"updatedBy": null,
"arrivalAt": "2026-04-15T10:00:00.000Z",
"departureAt": "2026-04-15T10:15:00.000Z"
},
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z",
"availableSeats": 12,
"availableSeatsStatus": "AVAILABLE",
"trip": {
"tripId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3a",
"cooperativeId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3b",
"transportOperatorId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3c",
"routeId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3e",
"vehicleId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3d",
"driverId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3e",
"status": "SCHEDULED",
"events": [
{
"tripEventId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3a",
"tripId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3b",
"type": "DEPARTURE_DELAYED",
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z",
"tripStopId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3c",
"description": "Departure delayed by 15 minutes due to traffic",
"metadata": {},
"createdBy": null,
"updatedBy": null
}
],
"departureAt": "2026-04-15T08:00:00.000Z",
"estimatedArrivalAt": "2026-04-15T14:00:00.000Z",
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z",
"cooperative": {
"cooperativeId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3a",
"organizationId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3a",
"organization": {
"name": "Cooperativa Metropolitana",
"organizationId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3a",
"logo": "organizations/0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3a/logo/0195e7b2-4a3c-7d3e-9f4a-2c6b8d0e1f3b.png"
}
},
"transportOperator": {
"document": "12345678000190",
"documentType": "CNPJ",
"legalName": "Joao Silva Transportes Ltda",
"transportOperatorId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3a",
"tradeName": "Silva Transportes"
},
"tripScheduleId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3d",
"createdBy": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3e",
"updatedBy": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3e",
"deletedBy": null
},
"createdBy": null,
"updatedBy": null,
"deletedBy": null
}{
"errors": [
{
"message": "required",
"path": "name"
}
],
"message": "Bad Request Error",
"statusCode": 400
}{
"message": "Internal Server Error",
"statusCode": 500
}Get Offering
Returns an offering.
curl --request GET \
--url https://api.example.com/api/v1/ops/offerings/trips/{tripId}/trip-itineraries/{tripItineraryId}import requests
url = "https://api.example.com/api/v1/ops/offerings/trips/{tripId}/trip-itineraries/{tripItineraryId}"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/api/v1/ops/offerings/trips/{tripId}/trip-itineraries/{tripItineraryId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/api/v1/ops/offerings/trips/{tripId}/trip-itineraries/{tripItineraryId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/v1/ops/offerings/trips/{tripId}/trip-itineraries/{tripItineraryId}"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/api/v1/ops/offerings/trips/{tripId}/trip-itineraries/{tripItineraryId}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/ops/offerings/trips/{tripId}/trip-itineraries/{tripItineraryId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"tripItineraryId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3a",
"tripId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3b",
"fromStopId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3c",
"toStopId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3d",
"price": 15000,
"fromStop": {
"tripStopId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3a",
"tripId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3b",
"pointId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3c",
"stopOrder": 1,
"point": {
"name": "São Paulo",
"pointId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3a",
"description": "Terminal Rodoviário Tietê",
"lat": -23.5155,
"lng": -46.6254
},
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z",
"createdBy": null,
"updatedBy": null,
"arrivalAt": "2026-04-15T10:00:00.000Z",
"departureAt": "2026-04-15T10:15:00.000Z"
},
"toStop": {
"tripStopId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3a",
"tripId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3b",
"pointId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3c",
"stopOrder": 1,
"point": {
"name": "São Paulo",
"pointId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3a",
"description": "Terminal Rodoviário Tietê",
"lat": -23.5155,
"lng": -46.6254
},
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z",
"createdBy": null,
"updatedBy": null,
"arrivalAt": "2026-04-15T10:00:00.000Z",
"departureAt": "2026-04-15T10:15:00.000Z"
},
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z",
"availableSeats": 12,
"availableSeatsStatus": "AVAILABLE",
"trip": {
"tripId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3a",
"cooperativeId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3b",
"transportOperatorId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3c",
"routeId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3e",
"vehicleId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3d",
"driverId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3e",
"status": "SCHEDULED",
"events": [
{
"tripEventId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3a",
"tripId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3b",
"type": "DEPARTURE_DELAYED",
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z",
"tripStopId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3c",
"description": "Departure delayed by 15 minutes due to traffic",
"metadata": {},
"createdBy": null,
"updatedBy": null
}
],
"departureAt": "2026-04-15T08:00:00.000Z",
"estimatedArrivalAt": "2026-04-15T14:00:00.000Z",
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z",
"cooperative": {
"cooperativeId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3a",
"organizationId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3a",
"organization": {
"name": "Cooperativa Metropolitana",
"organizationId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3a",
"logo": "organizations/0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3a/logo/0195e7b2-4a3c-7d3e-9f4a-2c6b8d0e1f3b.png"
}
},
"transportOperator": {
"document": "12345678000190",
"documentType": "CNPJ",
"legalName": "Joao Silva Transportes Ltda",
"transportOperatorId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3a",
"tradeName": "Silva Transportes"
},
"tripScheduleId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3d",
"createdBy": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3e",
"updatedBy": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3e",
"deletedBy": null
},
"createdBy": null,
"updatedBy": null,
"deletedBy": null
}{
"errors": [
{
"message": "required",
"path": "name"
}
],
"message": "Bad Request Error",
"statusCode": 400
}{
"message": "Internal Server Error",
"statusCode": 500
}Path Parameters
Trip identifier
"0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3b"
Trip itinerary identifier
"0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3a"
Query Parameters
Comma-separated list of fields to include in the response. Supports dot notation for nested projection (e.g. id,name,user.email,trips.route.id). Unknown fields are silently dropped.
Response
OK
Trip itinerary offering summary
Trip itinerary identifier
"0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3a"
Trip identifier
"0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3b"
Origin stop identifier
"0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3c"
Destination stop identifier
"0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3d"
Price in centavos
15000
Origin stop
Show child attributes
Show child attributes
Destination stop
Show child attributes
Show child attributes
Created at
"2026-01-01T00:00:00.000Z"
Updated at
"2026-01-01T00:00:00.000Z"
Seats available for this itinerary
12
Seat availability tier
AVAILABLE, LIMITED, SOLD_OUT "AVAILABLE"
Show child attributes
Show child attributes
Created by
null
Updated by
null
Deleted by
null