Introduction
The Tripgic API is a REST API that accepts and returns JSON. All inventory — across eight product families — is reached from a single base URL and returns the same normalized response envelope, so you integrate one pattern and reuse it everywhere.
Base URL
YOUR_BASE_URL
Issued together with your API credentials during onboarding. It is not published here.
Authentication
Every request is authenticated over HTTPS. The authentication method and your credentials are issued to you during onboarding and are not published on this page. Access can also be restricted to your IP addresses, and credentials can be rotated — see Security.
Request & response model
- Every endpoint is a
POSTwith a JSON body — including search operations. - Responses share one envelope:
status,data,messageand (on some endpoints)value. A failed call returnsstatus: failedwith areasoninstead — see Status & errors. - A search returns a
tracking_idindata; you pass it to the validate and booking steps that follow. - Common request fields include
partner_idandlanguage; prices carry an explicitcurrency.
Booking lifecycle
Across products the flow is consistent: search for inventory, validate the selection, attach traveller details, create the booking, then issue and (if needed) cancel. Flights add branded-fare and ancillary steps (baggage, seats, meals).
Endpoint reference
All 73 endpoints, grouped by product. Each path is appended to your base URL and called with POST — for example https://YOUR_BASE_URL/flight/search.
| POST | /flight/search | Search flights OneWay |
| POST | /flight/branded-fare | Get branded fare options for a flight |
| POST | /flight/validate | Validate selected itinerary and pricing |
| POST | /flight/validation-get-status | Get validation status for a booking |
| POST | /flight/update-travellers | Update passenger details in a booking |
| POST | /flight/create-booking | Create a flight booking |
| POST | /flight/get-baggage-option | Get available baggage options |
| POST | /flight/update-baggage | Add or update baggage selections |
| POST | /flight/get-seat-plan | Get seat map and seat options |
| POST | /flight/update-seat | Update seat selections |
| POST | /flight/get-meal-option | Get available meal options |
| POST | /flight/update-meals | Update selected meals |
| POST | /flight/Booking details | Booking details |
| POST | /flight/issue-ticket | Issue tickets for a validated booking |
| POST | /flight/cancel-booking | Cancel a flight booking |
| POST | /hotel/auto-suggetion | Get auto-suggestions for hotel search locations |
| POST | /hotel/search | hotel search by location and occupancies |
| POST | /hotel/rooms | Single Hotel availability for a specific hotel and room. |
| POST | /hotel/get-hotel-details | Single hotel Details Content. |
| POST | /hotel/validate | Get Price and Policy validation validation details. |
| POST | /hotel/validation-price-get-detail | Get Get-Price validation details |
| POST | /hotel/update-travellers | Update travellers for a booking. |
| POST | /hotel/create | Create booking. |
| POST | /hotel/booking-details | Get details of a specific booking. |
| POST | /hotel/issue-voucher | issue-voucher for booking. |
| POST | /hotel/cancel-booking | Cancel hotel booking. |
| POST | /activity/search | Search for sightseeing and activities |
| POST | /activity/search-single | Search for a single specific activity details |
| POST | /activity/validation-get-details | Get validated activity details |
| POST | /activity/update-traveler | Update traveler information for an activity booking |
| POST | /activity/create-booking | Create a final activity booking |
| POST | /activity/cancel-booking | Cancel an existing activity booking |
| POST | /activity/booking-details | Get booking details |
| POST | /service-tour/city-suggestion | Get city suggestions for tours |
| POST | /service-tour/search | Search for available tours |
| POST | /service-tour/details | Get tour details |
| POST | /service-tour/validate | Validate tour selection and options |
| POST | /service-tour/validation-details | Get tour validation details |
| POST | /service-tour/update-traveller | Update traveller information for tour |
| POST | /service-tour/order | Confirm tour booking and place order |
| POST | /service-tour/order-details | Get tour order details |
| POST | /service-tour/issue-order | Issue a tour order |
| POST | /train/search | Search for available train journeys |
| POST | /train/single-train | Get details for a specific train |
| POST | /train/validate | Validate train selection and fare |
| POST | /train/validation-details | Get validation details for a specific tracking ID |
| POST | /train/update-traveller | Update traveller information |
| POST | /train/create-booking | Create a train booking |
| POST | /train/cancel-booking | Cancel a train booking |
| POST | /train/booking-details | Get booking details |
| POST | /Transfer/Transfer Search | Search for transfers. |
| POST | /Transfer/Single Transfer Search | Search for Single transfers. |
| POST | /Transfer/Update Traveler Info | Update traveler information for existing transfers. |
| POST | /Transfer/Create Booking | Search for Create Booking. |
| POST | /Transfer/Cancel Booking | Cancel Booking |
| POST | /Transfer/Booking details | Booking details |
| POST | /esim/search | Search eSIM plans |
| POST | /esim/single-esim-package | Get single eSIM package |
| POST | /esim/update-customer | Update customer information |
| POST | /esim/create-booking | Create eSIM booking |
| POST | /esim/data-usage | Get data usage |
| POST | /esim/booking-details | Get booking details |
| POST | /esim/installation-instructions | Get installation instructions |
| POST | /esim/compatible-devices | Get compatible devices |
| POST | /esim/topup-packages | Get top-up packages |
| POST | /esim/topup-booking | Create top-up booking |
| POST | /esim/topup-history | Get top-up history |
| POST | /visa/search | Search for available visa packages |
| POST | /visa/details | Get specific visa details by SEO code |
| POST | /visa/validate-details | Validate visa selection before booking |
| POST | /visa/get-validate-details | Get validated visa details using tracking ID |
| POST | /visa/create-order | Create a new visa application order |
| POST | /visa/booking-details | Get booking details |
Example: flight search
A real request and an abbreviated response, taken from the Flight API spec.
Request — POST https://YOUR_BASE_URL/flight/search
Response (abbreviated)
Prices returned on the validation and booking endpoints are final: each fare is the supplier net fare plus Tripgic's fixed per-transaction markup — a flat amount between USD 2 and USD 10 by product and plan tier — so the returned amount can be shown to your customers as-is. See the markup policy →
The same request in PHP, Node.js and Python
Each sample sends the search above, stops on a failed response and prints the tracking_id you pass to /flight/validate. Add the base URL and the authentication details issued to you.
PHP (cURL)
Node.js 18+
Python (requests)
Status & errors
A call can return HTTP 200 and still have failed. Check the status field on every response. success means the call worked: read data and message. failed means it did not: the response carries a reason instead.
Branch on status, not on the wording of reason: the text is written for people and can be shown or logged as it is. Standard HTTP status codes apply at the transport layer (e.g. 401 for missing or invalid credentials). When contacting support, include the relevant tracking_id.
| Situation | Example reason | What to do |
| Not authorised | You do not have authorization to book through. Please reach out to the Support team for assistance. | The product or action is not enabled on your account. Contact support. |
| Missing parameter | Missing Required Parameters | A required field is absent from the request body. Compare it with the endpoint reference. |
| Date in the past | You need to provide future or current departure_date | Send today or a later date. |
| Traveller count mismatch | The passenger quantity provided is not valid. | Traveller details must match the passenger count you searched and validated. |
| No results | There are currently no flights available. | Not a fault. Show an empty state or widen the search. |
| Validation expired | The validation session has expired. | Validate again and use the new tracking_id. Do not reuse an old one. |
| Price or rate changed | The selected rate is no longer available. Please search again. | Search again and re-validate before booking. |
| Insufficient balance | Insufficient balance in your account to complete this booking. | Top up the account, then retry the booking or issuance. |
| Booking not found | No active booking found for the provided tracking ID! | Check the tracking_id belongs to this account and environment. |
| Not cancellable | This activity is non-refundable and cannot be cancelled. | Surface the fare or rate rule to the traveller; the booking stands. |
| Ancillary unavailable | There is currently no option for baggage. | Hide that add-on for this itinerary. Seats and meals behave the same way. |
Rate limits
Throughput is provisioned to your expected volume and the look-to-book (L2B) ratio set out in your agreement. If you need higher limits, raise it with your integration contact.
Support
Email support@tripgic.com for technical questions — include your account name and any tracking_id for a faster response. New to the terminology? The glossary defines the travel-API terms used here.