# Bing Flights Scraper: Search & Explore (`dev00/bing-flights-scraper-api`) Actor

Extract real-time Bing Flights airfares, explore anywhere destinations by continent & date, baggage fees, family passengers, and flexible price calendars.

- **URL**: https://apify.com/dev00/bing-flights-scraper-api.md
- **Developed by:** [dev00](https://apify.com/dev00) (community)
- **Categories:**
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## ✈️ Bing Flights Scraper - Live Fares, Cheap Flights, Explore Destinations & Portals

> 🚀 **The #1 Most Complete, Real-Time Bing Flights Search, Continental Destination Explorer & Price Intelligence Scraper on Apify.**

Looking for reliable, low-latency live airfares, flight itineraries across global airlines, baggage fee calculations, and destination discovery without maintaining expensive GDS certifications or complex browser automation?

The **Bing Flights Scraper** delivers real-time flight shopping results, round-trip and one-way itineraries, passenger breakdowns (adults, children, infants), baggage fee calculators, **Explore Destinations ("Explore Anywhere") across continents with selectable travel dates**, carbon emission footprints, and direct booking links powered by Bing Flights and Skyscanner GDS.

***

### 🌟 Why This Actor Outperforms Competitors

| Capability | Generic Flight Scrapers | Official GDS / APIs | ✈️ Bing Flights Scraper |
| :--- | :---: | :---: | :---: |
| **Real-Time Live Airfares** | ⚠️ Cached / Stale Data | ⚠️ GDS Certification Req. | ✅ **Live Real-Time Extraction (~250ms)** |
| **Explore Anywhere (Continent Map)** | ❌ No | ⚠️ Very Complex | ✅ **Explore by Europe, America, Asia, Africa, etc.** |
| **Selectable Travel Dates for Explore** | ❌ No | ❌ No | ✅ **Custom Departure/Return Dates or Flexible Windows** |
| **Direct Airline Booking Links** | ❌ No | ⚠️ OTA Heavy | ✅ **Official Airline Websites + Skyscanner + Expedia** |
| **Children & Infants Breakdown** | ⚠️ Adults Only | ⚠️ Limited | ✅ **Adults, Children (2-11), Infants In Seat / On Lap** |
| **Baggage Fee Calculator** | ❌ No | ⚠️ Hidden Add-on Fees | ✅ **Carry-On & Checked Luggage Fee Breakdown** |
| **Cabin Classes Supported** | ⚠️ Economy Only | ⚠️ Limited | ✅ **Economy, Premium Economy, Business, First Class** |
| **CO2 Carbon Emission Tracking** | ❌ No | ⚠️ Rare | ✅ **Carbon Footprint (kg CO2 & Route Comparison)** |
| **Input Format** | ⚠️ Complex JSON Arrays | ⚠️ Heavy Payload | ✅ **Simple Direct Input (No JSON needed)** |
| **Pricing Model** | 💸 High Monthly Subscriptions | 💸 Custom Enterprise Contracts | ⚡ **Pay-Per-Event ($0.005 / flight lead)** |

***

### ⚡ Comprehensive Feature Breakdown

#### 1. ✨ AI Semantic Flight Deals & Travel Vibe Search

Unlock intelligent natural language deal discovery. Simply enter travel desires in plain English:

- *"Week-long trip to a city with great food"*
- *"Romantic beach weekend getaway near warm turquoise water"*
- *"Alpine skiing and winter mountain retreats under $400"*
- *"Cultural discovery with ancient temples, historic museums, and architecture"*
- *"Vibrant nightlife, live electronic music, and weekend clubbing"*
- *"Budget-friendly hidden gem European capitals under $200"*

The AI engine matches destinations, calculates flight durations and round-trip airfares, highlights why it matches, provides top curated local experiences, computes discount badges (e.g. `38% CHEAPER THAN USUAL`), and generates direct Bing Flights deal URLs!

#### 2. 🔍 Single Flight Shopping (Round-Trip & One-Way)

Search real-time flight options for single routes. Filter by:

- **Travel Dates**: Exact departure date and return date (`YYYY-MM-DD`).
- **Passenger Breakdown**: Detailed counts for adults (12+), children (age 2–11 with automated discount calculation), infants in seat, and infants on lap.
- **Baggage Calculator**: Carry-on luggage items and checked baggage count with transparent fee breakdown.
- **Cabin Classes**: Economy, Premium Economy, Business Class (Lie-flat seats), and First Class.
- **Stops & Layovers**: Non-stop only (`maxStops="0"`), up to 1 stop, up to 2 stops, with layover airports and duration.
- **Budget Caps**: Filter out flights above your budget (`maxPrice`).

#### 3. 🌍 Explore Anywhere & Continental Discovery

Discover the cheapest destinations worldwide or within specific continents from any origin airport:

- **Supported Continents / Regions**:
  - `Anywhere (Worldwide)`
  - `Europe` *(London, Paris, Rome, Barcelona, Amsterdam, Madrid, Lisbon, Vienna, Prague, Athens, Berlin, Dublin)*
  - `North America / USA` *(New York, Los Angeles, Miami, San Francisco, Las Vegas, Chicago, Toronto, Cancun)*
  - `Asia` *(Tokyo, Singapore, Bangkok, Seoul, Bali, Hong Kong, New Delhi)*
  - `Middle East` *(Dubai, Doha, Istanbul, Riyadh)*
  - `Africa` *(Casablanca, Marrakech, Cairo, Cape Town, Nairobi)*
  - `South America` *(Rio de Janeiro, Buenos Aires, Bogota, Lima)*
  - `Oceania / Australia` *(Sydney, Melbourne, Auckland)*
- **Date Selectable**: Choose exact departure/return travel dates.
- **Rich Content**: Returns destination city, country, IATA airport code, lowest ticket price, flight duration, stops, thumbnail photo URL, and Bing Flights Explore link.

***

### 📥 Input Configuration Parameters

| Parameter | Type | Default | Description |
| :--- | :---: | :---: | :--- |
| `origin` | `string` | `"CDG"` | Departure airport IATA code (e.g. `CDG`, `JFK`, `LHR`, `CMN`, `DXB`). |
| `destination` | `string` | `"LHR"` | Arrival airport code (e.g. `LHR`, `STN`, `BCN`) or `"anywhere"` to explore destinations. |
| `region` | `string` | `"anywhere"` | Continent filter for Explore mode: `anywhere`, `Europe`, `North America`, `Asia`, `Africa`, `Middle East`, `South America`, `Oceania`. |
| `tripType` | `string` | `"round_trip"` | Trip type: `round_trip` or `one_way`. |
| `departureDate` | `string` | `"2026-10-15"` | Departure date in `YYYY-MM-DD` format. |
| `returnDate` | `string` | `"2026-10-22"` | Return date in `YYYY-MM-DD` format. |
| `adults` | `integer` | `1` | Number of adult passengers (age 12+). |
| `children` | `integer` | `0` | Number of children (age 2–11). |
| `infantsInSeat` | `integer` | `0` | Infants occupying a seat. |
| `infantsOnLap` | `integer` | `0` | Infants held on lap. |
| `carryOnBags` | `integer` | `0` | Number of carry-on bags per traveler. |
| `checkedBags` | `integer` | `0` | Number of checked bags per traveler. |
| `cabinClass` | `string` | `"economy"` | Cabin class: `economy`, `premium_economy`, `business`, `first`. |
| `maxStops` | `string` | `"any"` | Stop filters: `any`, `0` (Non-stop), `1`, `2`. |
| `maxPrice` | `integer` | `null` | Maximum airfare price cap. |
| `currency` | `string` | `"USD"` | Currency code (`USD`, `EUR`, `GBP`, `MAD`, `CAD`, `AUD`). |
| `maxItineraries` | `integer` | `20` | Maximum number of flight results to return. |

***

### 📤 Sample Output Format

```json
{
  "mode": "FLIGHT_SEARCH",
  "itinerary_id": "bing_cdglhr202610150",
  "trip_type": "ROUND_TRIP",
  "airlines": ["British Airways"],
  "airline_logos": ["https://logos.skyscnr.com/images/websites/ba__.png"],
  "passengers_breakdown": {
    "adults": 1,
    "children": 0,
    "infants_in_seat": 0,
    "infants_on_lap": 0,
    "total_passengers": 1
  },
  "baggage": {
    "carry_on_bags": 1,
    "checked_bags": 1,
    "baggage_fees": 52,
    "formatted_baggage_fees": "$52"
  },
  "price": {
    "amount": 142,
    "base_airfare": 90,
    "formatted": "$142",
    "currency": "USD",
    "currency_symbol": "$",
    "is_best_deal": true
  },
  "duration_minutes": 85,
  "duration_human": "1h 25m",
  "stops_count": 0,
  "stops_description": "Non-stop",
  "carbon_emissions": {
    "footprint_kg": 92,
    "vs_route_average_percent": -15,
    "rating": "LOW_EMISSION"
  },
  "booking_options": [
    {
      "provider_name": "British Airways Direct",
      "price": "$142",
      "is_airline_direct": true,
      "booking_url": "https://www.bing.com/travel/flight-search?q=flights+from+CDG+to+LHR"
    }
  ],
  "bing_flights_url": "https://www.bing.com/travel/flight-search?q=flights+from+CDG+to+LHR"
}
```

***

### 💻 Integration Examples

#### Python:

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")

run_input = {
    "origin": "JFK",
    "destination": "LHR",
    "tripType": "round_trip",
    "departureDate": "2026-10-15",
    "returnDate": "2026-10-25",
    "adults": 1,
    "cabinClass": "economy",
    "currency": "USD"
}

run = client.actor("dev00/bing-flights-scraper-api").call(run_input=run_input)

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(f"{item.get('airlines')}: {item.get('price', {}).get('formatted')} ({item.get('duration_human')})")
```

#### JavaScript / Node.js:

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });

const input = {
  origin: "CDG",
  destination: "LHR",
  tripType: "round_trip",
  departureDate: "2026-10-15",
  returnDate: "2026-10-22",
  adults: 2,
  currency: "EUR"
};

const run = await client.actor("dev00/bing-flights-scraper-api").call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

# Actor input Schema

## `aiPrompt` (type: `string`):

Natural language travel intent (e.g. 'Week-long trip to a city with great food', 'Romantic beach getaway', 'Skiing in the Alps', 'Cultural history and ancient temples'). Leave empty for standard route search.

## `origin` (type: `string`):

Departure airport IATA code (e.g. CDG, JFK, LHR, CMN, DXB).

## `destination` (type: `string`):

Arrival airport IATA code (e.g. LHR, STN, BCN) or type 'anywhere' to explore destinations.

## `region` (type: `string`):

Filter destination discovery by continent or region.

## `tripType` (type: `string`):

Select round-trip or one-way flight.

## `departureDate` (type: `string`):

Departure date in YYYY-MM-DD format (e.g. 2026-10-15).

## `returnDate` (type: `string`):

Return date in YYYY-MM-DD format (e.g. 2026-10-22). Ignored if trip type is One Way.

## `adults` (type: `integer`):

Number of adult passengers.

## `children` (type: `integer`):

Number of child passengers.

## `infantsInSeat` (type: `integer`):

Number of infants occupying their own seat.

## `infantsOnLap` (type: `integer`):

Number of infants held on lap.

## `carryOnBags` (type: `integer`):

Number of carry-on bags per traveler.

## `checkedBags` (type: `integer`):

Number of checked bags per traveler.

## `cabinClass` (type: `string`):

Desired travel cabin class.

## `maxStops` (type: `string`):

Flight stops filter.

## `maxPrice` (type: `integer`):

Maximum price cap. Results exceeding this price will be filtered out.

## `currency` (type: `string`):

Currency code for airfare results (e.g. USD, EUR, GBP, MAD, CAD, AUD).

## `maxItineraries` (type: `integer`):

Max number of flight itineraries or destination cards to return.

## Actor input object example

```json
{
  "origin": "CDG",
  "destination": "LHR",
  "region": "anywhere",
  "tripType": "round_trip",
  "departureDate": "2026-10-15",
  "returnDate": "2026-10-22",
  "adults": 1,
  "children": 0,
  "infantsInSeat": 0,
  "infantsOnLap": 0,
  "carryOnBags": 0,
  "checkedBags": 0,
  "cabinClass": "economy",
  "maxStops": "any",
  "currency": "USD",
  "maxItineraries": 20
}
```

# Actor output Schema

## `results` (type: `string`):

Direct link to the dataset items containing extracted flight records

## `keyValueStoreResult` (type: `string`):

Direct link to the key-value store output record

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "aiPrompt": "",
    "origin": "CDG",
    "destination": "LHR",
    "departureDate": "2026-10-15",
    "returnDate": "2026-10-22",
    "currency": "USD"
};

// Run the Actor and wait for it to finish
const run = await client.actor("dev00/bing-flights-scraper-api").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "aiPrompt": "",
    "origin": "CDG",
    "destination": "LHR",
    "departureDate": "2026-10-15",
    "returnDate": "2026-10-22",
    "currency": "USD",
}

# Run the Actor and wait for it to finish
run = client.actor("dev00/bing-flights-scraper-api").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "aiPrompt": "",
  "origin": "CDG",
  "destination": "LHR",
  "departureDate": "2026-10-15",
  "returnDate": "2026-10-22",
  "currency": "USD"
}' |
apify call dev00/bing-flights-scraper-api --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,dev00/bing-flights-scraper-api"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/FOzocaShcWjfTFV31/builds/LuRogDpRCS7fo3BvB/openapi.json
