# DRCT API > Search, price, book and issue airline tickets from one REST API — no SOAP, no GDS terminal. Base URLs: - Sandbox: `https://sandbox-api.drct.aero` - Production: `https://api.drct.aero` Every request needs `Authorization: Bearer ` and a `DRCT-Version` header (current: `2026-09-01`). Each link below is one section of the docs as plain Markdown; the same content is on one HTML page at https://docs.drct.aero/#. ## Start here - [DRCT API](https://docs.drct.aero/md/introduction.md): Search, price, book and issue airline tickets from one REST API — no SOAP, no GDS terminal. - [Sandbox vs. Production](https://docs.drct.aero/md/sandbox-vs-production.md): Sandbox runs on the exact same API as production, request for request — only the data behind it is different. - [Authentication](https://docs.drct.aero/md/authentication.md): Send your key in the Authorization header — bearer tokens only. - [Your First Request](https://docs.drct.aero/md/quickstart.md): Four requests, start to ticket number, each explained as you go. - [Compression](https://docs.drct.aero/md/compression.md): Some responses, like offers search, can be huge so we added compression to handle it well. - [Response Times](https://docs.drct.aero/md/response-times.md): Response times depend on the channel and the method. - [Idempotent Requests](https://docs.drct.aero/md/idempotent-requests.md): Retry any POST safely — attach the same Idempotency-Key and you get back the original response instead of a duplicate. - [Versioning](https://docs.drct.aero/md/versioning.md): Your account defaults to the latest version (2026-09-01) — no need to send one. - [Error codes](https://docs.drct.aero/md/errors.md): Every failure returns the same envelope: an HTTP status plus error.code to branch on and error.message to log. - [Troubleshooting](https://docs.drct.aero/md/troubleshooting.md): The five failures partners hit most often, and what to do about each. ## API Reference - [Search Offers](https://docs.drct.aero/md/search-offers.md) — `POST /offers_search`: Returns bookable flight combinations for the given routes and passengers in flights — one-way, round-trip and multi-city alike. - [Price Offer](https://docs.drct.aero/md/price-offer.md) — `PATCH /offers/{id}/price`: Revalidates an offer and returns the current price, full fare details and a fresh expire_at. - [Upsell Offer](https://docs.drct.aero/md/upsell-offer.md) — `GET /offers/{id}/upsell`: Returns every branded fare (fare family) for an offer's itinerary — same flights, different baggage and change rules. - [Fare Rules](https://docs.drct.aero/md/fare-rules.md) — `GET /offers/{id}/fare_rules`: Returns the provider's raw rule text, grouped by route and category, for showing change and refund conditions verbatim. - [Shop Offer Ancillaries](https://docs.drct.aero/md/offer-ancillaries.md) — `GET /offers/{id}/ancillaries`: Shop baggage for an priced offer before the order exists, then pass the chosen ids in Create Order 's ancillaries array. - [Create Order](https://docs.drct.aero/md/create-order.md) — `POST /orders`: Creates a booking for one offer and up to nine passengers, and returns a PNR. - [Issue Order](https://docs.drct.aero/md/issue-order.md) — `POST /orders/{id}/issue`: Pays for the order and issues electronic tickets. - [Get Order](https://docs.drct.aero/md/get-order.md) — `GET /orders/{id}`: Returns an order's current state: status, PNR locators, passengers, flights, fares, ancillaries and tickets. - [List Orders](https://docs.drct.aero/md/list-orders.md) — `GET /orders`: Returns all your orders as a JSON array, each shaped like a Get Order response. - [Reprice Order](https://docs.drct.aero/md/reprice-order.md) — `GET /orders/{id}/reprice`: Re-quotes the current price of an order and reports whether it changed. - [Order Fare Rules](https://docs.drct.aero/md/order-fare-rules.md) — `GET /orders/{id}/fare_rules`: The same raw rule text as Fare Rules, for an existing order. - [Cancel Order](https://docs.drct.aero/md/cancel-order.md) — `DELETE /orders/{id}`: Cancels an order and returns it with deleted_at set. - [Quote Order Refund](https://docs.drct.aero/md/quote-order-refund.md) — `GET /orders/{id}/refund_quote`: Asks the airline what a refund would return, without refunding. - [Refund Order](https://docs.drct.aero/md/refund-order.md) — `POST /orders/{id}/refund`: Confirms the refund quoted by GET /orders/ {id} /refund_quote: the tickets are refunded with the airline and your balance is topped up. - [Ancillaries](https://docs.drct.aero/md/ancillaries.md) — `GET /orders/{id}/ancillaries`: Ancillaries guide: which channels sell ancillaries, what each offers and when. - [Confirm Ancillary](https://docs.drct.aero/md/confirm-ancillary.md) — `POST /orders/{id}/ancillaries`: Adds ancillaries to the order — one item per ancillary per passenger, several per request. - [View Seat Maps](https://docs.drct.aero/md/view-seat-maps.md) — `GET /orders/{id}/seat_maps`: Returns the seat map for an existing order, one per passenger per segment. - [Add Seats](https://docs.drct.aero/md/add-seats.md) — `POST /orders/{id}/seat_maps`: Assigns seats to the order, one item per passenger per segment. - [List Reporting Tickets](https://docs.drct.aero/md/reporting.md) — `GET /reporting/tickets`: Returns every ticket from issued orders for back-office reconciliation — nett totals, commission, ticketing office and last transaction time. ## Guides - [Flights Search](https://docs.drct.aero/md/guide-flights-search.md): To make a search you need to provide details of the desired flight and information about the passengers. - [Order Creation](https://docs.drct.aero/md/guide-order-creation.md): Now you can order your flight 👨‍💻 - [Tickets Issuing](https://docs.drct.aero/md/guide-tickets-issuing.md): To issue tickets you need the id of the order. - [Order Cancellation](https://docs.drct.aero/md/guide-order-cancellation.md): To perform a cancellation you need the id of the order you would like to cancel. - [Refund](https://docs.drct.aero/md/guide-refund.md): A refund is two calls: quote it to see what you get back and what the airline keeps, then confirm it. - [Offer Upsell](https://docs.drct.aero/md/guide-offer-upsell.md): On some channels a search returns one representative offer per itinerary. - [Ancillaries](https://docs.drct.aero/md/guide-order-ancillaries.md): To add ancillaries you need the id of the order you would like to extend. - [Seat Maps](https://docs.drct.aero/md/guide-seat-maps.md): Seats belong to an existing order, so you need its id: add them after the order is created and before it is issued. - [Price Change](https://docs.drct.aero/md/guide-price-change.md): On most channels a quoted price holds until the order's cancel_before — though currency rates can move it overnight. - [Working with Charters](https://docs.drct.aero/md/guide-working-with-charters.md): We have a channel to sell charters, with a slightly different flow. ## Other pages - [Changelog](https://docs.drct.aero/md/changelog.md): Every DRCT API release, grouped by month, with breaking changes called out. - [Resources](https://docs.drct.aero/resources): The OpenAPI spec, the Postman collection, and other integration resources. - [Support](https://docs.drct.aero/support): Three ways to reach the DRCT team: live chat, your messenger channel, or email. ## Optional - [Full documentation](https://docs.drct.aero/llms-full.txt): Every section above and the changelog in one plain-text file, for a single fetch. - [OpenAPI specification](https://docs.drct.aero/openapi.yaml): The machine-readable API definition (OpenAPI 3.0, YAML) — the authoritative source the prose docs are written from. - [Postman collection](https://www.postman.com/drct-api/workspace/drct-api/overview): The same endpoints as a runnable Postman workspace with a sandbox environment.