{
 "openapi": "3.1.0",
 "info": {
  "title": "FlyMeAsia agent API",
  "version": "1.0.0",
  "description": "Read-only. Current round-trip fares to Asia from FlyMeAsia's fare engine (cached prices, rechecked several times a day) and pre-filled links to FlyMeAsia's live flight search. Always give travellers the returned links so they see the current price; booking happens on partner sites.",
  "contact": {
   "url": "https://flymeasia.com/about"
  }
 },
 "servers": [
  {
   "url": "https://flymeasia.com"
  }
 ],
 "paths": {
  "/api/agent/fares": {
   "get": {
    "operationId": "findFlightDeals",
    "summary": "Current round-trip fares to Asia",
    "parameters": [
     {
      "name": "origin",
      "in": "query",
      "required": false,
      "schema": {
       "type": "string"
      },
      "description": "Departure city name or IATA code (London, LON, Paris, NYC)"
     },
     {
      "name": "destination",
      "in": "query",
      "required": false,
      "schema": {
       "type": "string"
      },
      "description": "Asian city, IATA code or country (Bangkok, BKK, Japan)"
     },
     {
      "name": "month",
      "in": "query",
      "required": false,
      "schema": {
       "type": "string"
      },
      "description": "Departure month, YYYY-MM"
     },
     {
      "name": "max_price",
      "in": "query",
      "required": false,
      "schema": {
       "type": "number"
      },
      "description": "Highest round-trip price, in the fare currency"
     },
     {
      "name": "nonstop",
      "in": "query",
      "required": false,
      "schema": {
       "type": "boolean"
      },
      "description": "true for nonstop both ways only"
     },
     {
      "name": "market",
      "in": "query",
      "required": false,
      "schema": {
       "type": "string"
      },
      "description": "Departure market: UK, EU, CA, US, AU"
     },
     {
      "name": "limit",
      "in": "query",
      "required": false,
      "schema": {
       "type": "number"
      },
      "description": "1-50, default 10"
     }
    ],
    "responses": {
     "200": {
      "description": "Fares, cheapest confirmed date per route, with fare_page and live_search links"
     },
     "400": {
      "description": "A filter could not be understood; see error and hint"
     }
    }
   }
  },
  "/api/agent/search-link": {
   "get": {
    "operationId": "getFlightSearchLink",
    "summary": "A link that opens FlyMeAsia's live flight search ready to search",
    "parameters": [
     {
      "name": "origin",
      "in": "query",
      "required": true,
      "schema": {
       "type": "string",
       "description": "City name or IATA code"
      },
      "description": "City name or IATA code"
     },
     {
      "name": "destination",
      "in": "query",
      "required": true,
      "schema": {
       "type": "string",
       "description": "City name or IATA code"
      },
      "description": "City name or IATA code"
     },
     {
      "name": "depart_date",
      "in": "query",
      "required": false,
      "schema": {
       "type": "string",
       "description": "YYYY-MM-DD"
      },
      "description": "YYYY-MM-DD"
     },
     {
      "name": "return_date",
      "in": "query",
      "required": false,
      "schema": {
       "type": "string",
       "description": "YYYY-MM-DD; leave out for one-way"
      },
      "description": "YYYY-MM-DD; leave out for one-way"
     },
     {
      "name": "adults",
      "in": "query",
      "required": false,
      "schema": {
       "type": "integer",
       "minimum": 1,
       "maximum": 9
      },
      "description": "1-9, default 1"
     },
     {
      "name": "currency",
      "in": "query",
      "required": false,
      "schema": {
       "type": "string",
       "description": "GBP, EUR, USD, CAD, AUD"
      },
      "description": "GBP, EUR, USD, CAD, AUD"
     }
    ],
    "responses": {
     "200": {
      "description": "search_url and the parsed journey"
     },
     "400": {
      "description": "Invalid journey"
     }
    }
   }
  },
  "/api/agent/destinations": {
   "get": {
    "operationId": "listCoverage",
    "summary": "Departure cities, destinations and travel guides FlyMeAsia covers",
    "responses": {
     "200": {
      "description": "Coverage lists"
     }
    }
   }
  }
 }
}