{
  "openapi": "3.0.1",
  "info": {
    "title": "Bing Flights Scraper ✈️ Prices, Itineraries & Explore Deals",
    "description": "✈️ Search Bing Flights for real itineraries with prices, airlines, stops and every leg, in 23 country markets so you can compare the same route across currencies. Also lists Explore destinations from any airport and a day-by-day price calendar. Public data, no login.",
    "version": "0.0",
    "x-build-id": "kvXZCP7nkRWMb4QI7"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/dz_omar~bing-flights-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-dz_omar-bing-flights-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/dz_omar~bing-flights-scraper/runs": {
      "post": {
        "operationId": "runs-sync-dz_omar-bing-flights-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/dz_omar~bing-flights-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-dz_omar-bing-flights-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "searchUrls": {
            "title": "🔗 Bing Flights links",
            "maxItems": 500,
            "type": "array",
            "description": "Paste one or more links copied from Bing Flights (bing.com/travel) after searching there. Each link is one search, read exactly as Bing reads it: from, to, dates, one way or round trip, cabin and travellers. The filters, sort and 'Max results per search' below apply to every link.\n\nA link to a flight you chose on Bing (its booking page, with 'sel=' in the address) returns just that flight with all its booking options. A link with no destination ('To: Anywhere') returns Bing's Explore destinations.\n\nExample: https://www.bing.com/travel/flight-search?q=flights&src=LHR&des=CDG&ddate=2027-01-12&isr=0&cls=0&adult=1&child=0&infant=0",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "Bing Flights link",
                  "description": "A link copied from Bing Flights (bing.com/travel) after searching there.",
                  "pattern": "^https?://(www\\.)?bing\\.com/travel/(flight-search|flights)\\?\\S*src=\\S+$"
                }
              }
            }
          },
          "tripType": {
            "title": "🧭 Trip type",
            "enum": [
              "one_way",
              "round_trip"
            ],
            "type": "string",
            "description": "As on Bing: One way or Round trip (Bing has no multi-city search).",
            "default": "one_way"
          },
          "origin": {
            "title": "🛫 From",
            "type": "string",
            "description": "An airport code (LHR), a city code covering all its airports (LON), or a place name (London). A place name is looked up the way Bing's search box does and the airport chosen is written to the log."
          },
          "destination": {
            "title": "🛬 To · empty or Anywhere = Explore",
            "type": "string",
            "description": "An airport code (CDG), a city code (PAR) or a place name (Paris). Leave it empty, or write Anywhere, for Bing's Explore destinations from 'From' (dates are not used then: Explore shows Bing's own dates and prices)."
          },
          "departureDate": {
            "title": "📅 Departure date",
            "pattern": "^(\\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])$|^(\\d+)\\s*(day|week|month)s?$",
            "type": "string",
            "description": "Pick a date, or a time from today (for example 30 days) so a scheduled run always searches ahead. Bing prices roughly the next 11 months."
          },
          "returnDate": {
            "title": "📅 Return date · round trip only",
            "pattern": "^(\\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])$|^(\\d+)\\s*(day|week|month)s?$",
            "type": "string",
            "description": "Pick a date, or a time from today (for example 37 days). Not used for one-way trips."
          },
          "adults": {
            "title": "🧑 Adults",
            "minimum": 1,
            "maximum": 8,
            "type": "integer",
            "description": "At least 1. Bing takes at most 8 travellers in total (adults + children + infants), and no more infants than adults. Prices are the total for everyone.",
            "default": 1
          },
          "children": {
            "title": "🧒 Children (2-12 yrs)",
            "minimum": 0,
            "maximum": 7,
            "type": "integer",
            "description": "Children aged 2 to 12.",
            "default": 0
          },
          "infants": {
            "title": "👶 Infants (under 2 yrs)",
            "minimum": 0,
            "maximum": 4,
            "type": "integer",
            "description": "Infants under 2. No more infants than adults.",
            "default": 0
          },
          "cabin": {
            "title": "💺 Cabin",
            "enum": [
              "economy",
              "premiumEconomy",
              "business",
              "first"
            ],
            "type": "string",
            "description": "Bing's cabin choice.",
            "default": "economy"
          },
          "market": {
            "title": "🌍 Market",
            "enum": [
              "us",
              "gb",
              "ca",
              "au",
              "in",
              "de",
              "fr",
              "es",
              "it",
              "nl",
              "br",
              "mx",
              "jp",
              "ae",
              "sa",
              "tr",
              "pl",
              "se",
              "za",
              "sg",
              "dz",
              "eg",
              "ma"
            ],
            "type": "string",
            "description": "The country Bing prices in, and its currency. Used by Option B and by every link that does not name a market itself. To compare countries, run the same search with another market.",
            "default": "us"
          },
          "stops": {
            "title": "🔀 Stops",
            "type": "array",
            "description": "Bing's Stops filter. Tick one or more; any of them matches. Applies to both directions of a round trip.",
            "items": {
              "type": "string",
              "enum": [
                "nonstop",
                "1",
                "2+"
              ],
              "enumTitles": [
                "Non-stop",
                "1",
                "2+"
              ]
            }
          },
          "airlines": {
            "title": "✈️ Airlines",
            "type": "array",
            "description": "Bing's Airlines filter: airline names as Bing lists them (British Airways, easyJet, JetBlue Airways) or two-character codes (BA, U2, B6). A flight is kept when any of its airlines is listed, so flights that mix airlines are kept too. An airline Bing does not list for the route is ignored and the log says so.",
            "items": {
              "type": "string"
            }
          },
          "departs": {
            "title": "🛫 Departs",
            "type": "array",
            "description": "Bing's Departs filter: when the flight leaves (local time). For a round trip this is the outbound flight.",
            "items": {
              "type": "string",
              "enum": [
                "earlyMorning",
                "morning",
                "afternoon",
                "night"
              ],
              "enumTitles": [
                "Early morning · 12am - 6am",
                "Morning · 6am - 12pm",
                "Afternoon · 12pm - 6pm",
                "Night · 6pm - 12am"
              ]
            }
          },
          "arrives": {
            "title": "🛬 Arrives",
            "type": "array",
            "description": "Bing's Arrives filter: when the flight lands (local time). For a round trip this is the outbound flight.",
            "items": {
              "type": "string",
              "enum": [
                "earlyMorning",
                "morning",
                "afternoon",
                "night"
              ],
              "enumTitles": [
                "Early morning · 12am - 6am",
                "Morning · 6am - 12pm",
                "Afternoon · 12pm - 6pm",
                "Night · 6pm - 12am"
              ]
            }
          },
          "returnDeparts": {
            "title": "🛫 Return · departs · round trip only",
            "type": "array",
            "description": "The Departs filter of Bing's return-flight page.",
            "items": {
              "type": "string",
              "enum": [
                "earlyMorning",
                "morning",
                "afternoon",
                "night"
              ],
              "enumTitles": [
                "Early morning · 12am - 6am",
                "Morning · 6am - 12pm",
                "Afternoon · 12pm - 6pm",
                "Night · 6pm - 12am"
              ]
            }
          },
          "returnArrives": {
            "title": "🛬 Return · arrives · round trip only",
            "type": "array",
            "description": "The Arrives filter of Bing's return-flight page.",
            "items": {
              "type": "string",
              "enum": [
                "earlyMorning",
                "morning",
                "afternoon",
                "night"
              ],
              "enumTitles": [
                "Early morning · 12am - 6am",
                "Morning · 6am - 12pm",
                "Afternoon · 12pm - 6pm",
                "Night · 6pm - 12am"
              ]
            }
          },
          "maxPrice": {
            "title": "💰 Price up to",
            "minimum": 1,
            "type": "number",
            "description": "Bing's Price filter: keep only results at or below this price, in the market's currency. For a flight it is the total for all travellers (and both directions of a round trip)."
          },
          "sortBy": {
            "title": "↕️ Sort by",
            "enum": [
              "best",
              "cheapest",
              "quickest",
              "departure_earliest",
              "departure_latest",
              "arrival_earliest",
              "arrival_latest"
            ],
            "type": "string",
            "description": "Bing's tabs and its 'Sort by time' menu. Explore uses Best (Bing's Popular), Cheapest or Quickest.",
            "default": "best"
          },
          "maxResults": {
            "title": "📊 Max results per search",
            "minimum": 0,
            "maximum": 2000,
            "type": "integer",
            "description": "Flights (or Explore destinations) kept per search after filters and sorting. Each link is one search and Option B is one more, so 4 links + Option B with 11 here returns up to 55 rows. 0 = everything Bing found (a round trip can have well over a thousand). Largest value: 2,000.",
            "default": 20
          },
          "bookingOptionsTop": {
            "title": "🛒 Booking options · for the first N flights of each search",
            "minimum": 0,
            "maximum": 20,
            "type": "integer",
            "description": "Bing's booking page for a flight: every seller with its price, rating, booking link, change rule and fare details (cancellation, cabin and checked bags). 0 = none. Each flight adds a few seconds. A link to a chosen flight always gets them.",
            "default": 0
          },
          "priceCalendar": {
            "title": "📅 Price calendar for each route",
            "type": "boolean",
            "description": "Adds Bing's lowest one-way price for each of the next ~80 days on every searched route (one adult, Economy, the market's currency), with Bing's price level (Low / Default / High). About 80 extra rows per route.",
            "default": false
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}