Skip to content
FX-Port/Docs
GuidesAPI referenceChangelog
Get API keys
  • Introduction
  • Quickstart
  • Security
  • Authentication
  • Environments and Postman
  • Sandbox
  • Conventions and naming
  • Legacy names and twins
  • Errors
  • Rate limits and fair use
  • Streaming search results
  • Use these docs with AI

Get started

Introduction

FX-Port is a unified travel API for flights, hotels, eSIMs and more: one integration, many suppliers, best available prices.

FX-Port is a unified travel API. One integration gives you flights, hotels, eSIMs, and more, sourced across many suppliers and returned with the best available prices — no per-supplier code.

FlightsSearch, price and book across GDS, NDC, LCC and direct airlines; hold and pay later, tickets and ACD documents.HotelsGeo search around a point, hotel content, rates, and bookings that confirm at once; vouchers and cancellation.eSIMsData packages in 190+ countries: order, top up, usage and installation instructions.AccountBalances, the financial ledger, booking history across products and the supplier list.

More products are on the way.

Work in progress. FX-Port is actively expanding: more suppliers, more GDS/NDC connections, and new products. We aim to avoid breaking changes — any breaking or major change ships under a new API version so your current integration keeps working. Have feedback, a feature request, or found a bug? Email us at [email protected].

API keys can trigger real financial debits. A Read+Write key creates bookings and charges your agency balance. Never expose keys in front-end code, mobile apps, or public repos — always call the API from your backend. See Security for the full guide.

Get API access in minutes

There is no approval queue, no agreement to sign, and no deposit required to start building: the sandbox is self-serve from day one. (Live keys work once your agency is approved.)

  1. 1

    Create an account — sign up at fx-port.com/register. Takes about a minute.

  2. 2

    Generate your API keys — open the API page in your dashboard and create a key. Start with a sandbox key (fxp_test_) to build and test for free.

  3. 3

    Start building — your first search call works immediately. See the quick start below.

Sandbox is free and unlimited to explore. You only need a funded balance when you want to issue real bookings with a fxp_live_ key — see Environments.

Base URL

https://api.fx-port.com

All paths are prefixed with /api/v1/. One URL for all environments — live vs sandbox is determined by your API key prefix (fxp_live_ or fxp_test_).

Where to start

QuickstartGet a sandbox key, then search, price and book a flight in about ten minutes.SecurityKey handling, booking-ownership authorization, and API security best practices. Read this first.AuthenticationAPI keys, permission levels, and environments.Conventions and namingNames, ids, money, dates, and the legacy names that still work.ErrorsOne error body for every endpoint, every code, and how to retry safely.Rate limitsThe limits per key, what a 429 means and how to stay below them.StreamingReceive flight offers supplier by supplier as server-sent events.Environments & PostmanLive vs sandbox, and downloadable Postman collections.SuppliersDiscover every active supplier and its capabilities.

Quick start (flights, in 3 calls)

  1. 1

    Search — POST /api/v1/get_flights. Offers are in suppliers[].results.offers[]. Save the searchId of the supplier entry and the id of the offer.

  2. 2

    Price — POST /api/v1/flights/price_flight with that search_id and offer_id. Required before booking.

  3. 3

    Book — POST /api/v1/flights/book_flight with booking_type: "issue", the passengers, and contact details. Tickets are issued immediately.

# 1. Search
curl --request POST \
  --url https://api.fx-port.com/api/v1/get_flights \
  --header 'Authorization: Bearer fxp_test_YOUR_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
    "origin": "ALG",
    "destination": "CDG",
    "departure_date": "2026-12-15",
    "cabin_class": "economy",
    "passengers": {
      "adults": 1
    }
  }'

Continue with the Quickstart (a complete, tested program) and the full Flight booking flow →

Quick start (eSIMs, in 3 calls)

  1. 1

    List packages — GET /api/v1/esims/packages?country=france. Save a package id (also returned as package_id).

  2. 2

    Create the order — POST /api/v1/esims/orders with that package_id plus the traveler's email and phone (both required — the traveler receives the QR code and setup instructions by email). Returns the eSIM iccid immediately (data.iccid, also data.sim.iccid).

  3. 3

    Top up later — GET /api/v1/esims/topup-packages/{iccid} to see what's available for that exact eSIM, then POST /api/v1/esims/topups with one of the returned package IDs.

# 1. List packages
curl --request GET \
  --url 'https://api.fx-port.com/api/v1/esims/packages?country=france' \
  --header 'Authorization: Bearer fxp_test_YOUR_KEY'

Continue with the full eSIMs overview →

Built with AI tools?

Point your AI coding assistant at these machine-readable files for accurate, up-to-date context:

URLContent
/llms.txtPage index — titles, URLs, descriptions (lightweight)
/llms-full.txtFull documentation text
/openapi.jsonOpenAPI 3.1 description of every endpoint
<page>.mdAny page as Markdown, for example /docs/flights/book.md

See Use these docs with AI for a ready-to-paste prompt and how to build an agent on the API.

Contact

Questions, feedback, or issues? Email the developer team at [email protected]. Get your API keys at fx-port.com/dashboard/api.

Next Quickstart

On this page

  • Get API access in minutes
  • Base URL
  • Where to start
  • Quick start (flights, in 3 calls)
  • Quick start (eSIMs, in 3 calls)
  • Built with AI tools?
  • Contact

© 2026 FX-Port

TermsPrivacy[email protected]