# Award Flights Scraper: Miles, Seats & Taxes (`getascraper/award-flights-scraper`) Actor

Find award-seat availability across FlightPoints and Roame. Export miles, taxes, seats, cabins, loyalty programs, schedules, aircraft, and booking links for single or bulk routes.

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

## Pricing

from $1.31 / 1,000 award fares

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/integrations/mcp.md).

If your project is in a different language, use 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

## ✈️ Award Flights Scraper: Miles, Seats & Taxes

<table width="100%">
<tr>
<td style="padding:24px 28px;background:#F0F8FC;border:1px solid #C7E4F2;border-top:4px solid #005BA2;border-radius:12px">
<span style="font-size:23px;font-weight:800;color:#1C1917;line-height:1.3">Find bookable award seats before the best redemption disappears.</span><br>
<span style="font-size:15px;color:#57534E;line-height:1.6">Compare FlightPoints and Roame fares with miles, taxes, seats, cabins, loyalty programs, and flight details in one dataset.</span>
</td>
</tr>
</table>

<table width="100%">
<tr>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #C7E4F2;border-radius:10px 0 0 10px;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#004878">🔎 Two sources</span><br>
<span style="font-size:12px;color:#57534E">Compare broader availability without joining datasets yourself</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #C7E4F2;border-left:none;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#004878">💺 Cabin detail</span><br>
<span style="font-size:12px;color:#57534E">See points, taxes, and seats for each available cabin</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #C7E4F2;border-left:none;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#004878">🗺️ Bulk routes</span><br>
<span style="font-size:12px;color:#57534E">Check up to 100 origin, destination, and date combinations</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #C7E4F2;border-left:none;border-radius:0 10px 10px 0;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#004878">🔔 Change tracking</span><br>
<span style="font-size:12px;color:#57534E">Return only fares that are new or changed on scheduled runs</span>
</td>
</tr>
</table>

Award Flights Scraper turns fast-changing award availability into clean rows ready for a spreadsheet, alert, dashboard, or points tool. Search one route or a bulk list without providing a FlightPoints or Roame account.

### 🔍 What does Award Flights Scraper do?

Enter an origin, destination, and departure date. The Actor checks both supported award-search sources and returns one row per available cabin or fare.

Every row can include the mileage price, taxes, seats, loyalty program, airline, stops, schedule, aircraft, flight numbers, and booking link. Missing source data is omitted instead of replaced with placeholders.

### 🎯 Why use it?

- **I am an award traveler** comparing loyalty programs before transferring credit-card points that cannot be reversed.
- **I am a travel advisor** checking several client routes and cabin preferences without repeating the same searches by hand.
- **I am building a points tool** and need consistent rows from two award-search sources for comparison and ranking.
- **I manage fare alerts** and want scheduled runs to return only newly available seats or changed mileage prices.

### 🚀 How to use it

<table width="100%">
<tr>
<td style="padding:16px 14px;width:33%;background:#F0F8FC;border:1px solid #C7E4F2;border-radius:10px 0 0 10px;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#005BA2;letter-spacing:1px">STEP 1</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Enter your route</span><br>
<span style="font-size:12px;color:#57534E">Add one airport pair or paste a list of routes and dates.</span>
</td>
<td style="padding:16px 14px;width:33%;background:#F0F8FC;border:1px solid #C7E4F2;border-left:none;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#005BA2;letter-spacing:1px">STEP 2</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Choose your search</span><br>
<span style="font-size:12px;color:#57534E">Select sources, cabin, flexible dates, and direct-flight preference.</span>
</td>
<td style="padding:16px 14px;width:33%;background:#F0F8FC;border:1px solid #C7E4F2;border-left:none;border-radius:0 10px 10px 0;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#005BA2;letter-spacing:1px">STEP 3</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Review and export</span><br>
<span style="font-size:12px;color:#57534E">Compare results in the Award fares, Schedules, or Monitoring view.</span>
</td>
</tr>
</table>

### 🎛️ Input

| Field             | Type             | Required | Description                                                                                                                 |
| ----------------- | ---------------- | -------- | --------------------------------------------------------------------------------------------------------------------------- |
| `origin`          | string           | No       | Three-letter origin IATA code for a single-route search. Defaults to JFK.                                                   |
| `destination`     | string           | No       | Three-letter destination IATA code for a single-route search. Defaults to LHR.                                              |
| `departureDate`   | string           | No       | Departure date in YYYY-MM-DD format. An empty value searches 30 days from the run date.                                     |
| `routes`          | array of objects | No       | Bulk route list containing origin, destination, and an optional departure date. A non-empty list replaces the single route. |
| `sources`         | array of strings | No       | Sources to check. Defaults to both FlightPoints and Roame.                                                                  |
| `searchClass`     | enum             | No       | Cabin requested from Roame. FlightPoints returns every cabin it finds.                                                      |
| `daysAround`      | integer          | No       | Number of days before and after the departure date to include, from 0 to 7.                                                 |
| `directOnly`      | boolean          | No       | Return only non-stop itineraries when enabled.                                                                              |
| `onlyNewItems`    | boolean          | No       | Return only new or changed availability compared with earlier runs using the same task storage.                             |
| `maxItems`        | integer          | No       | Maximum rows saved across all routes and sources. Defaults to 100.                                                          |
| `maxConcurrency`  | integer          | No       | Number of route and source searches processed together. Defaults to 3.                                                      |
| `pollTimeoutSecs` | integer          | No       | Maximum time to wait for a FlightPoints search before using its latest available rows.                                      |

### 📦 Output example

```json
{
    "id": "flightpoints:AA|JFK|LHR|2026-08-22:BUSINESS",
    "source": "flightpoints",
    "origin": "JFK",
    "destination": "LHR",
    "departureDate": "2026-08-22",
    "fareClass": "BUSINESS",
    "awardPoints": 57500,
    "currency": "USD",
    "programCode": "AA",
    "programName": "AAdvantage",
    "alliance": "oneworld",
    "airlineName": "American Airlines",
    "operatingAirlines": ["AA", "BA"],
    "taxes": 54.7,
    "availableSeats": 1,
    "stops": 0,
    "isDirect": true,
    "sourceUpdatedAt": "2026-07-22T18:17:54Z",
    "scrapedAt": "2026-07-22T22:02:46.080Z",
    "changeFingerprint": "a1dcec86ffa900d3c927"
}
````

### 📋 Data table

| Field               | Type    | Description                                                                     |
| ------------------- | ------- | ------------------------------------------------------------------------------- |
| `id`                | string  | Stable source fare and cabin identifier.                                        |
| `source`            | string  | FlightPoints or Roame.                                                          |
| `origin`            | string  | Origin airport IATA code.                                                       |
| `destination`       | string  | Destination airport IATA code.                                                  |
| `departureDate`     | string  | Local departure date.                                                           |
| `fareClass`         | string  | Economy, premium economy, business, or first cabin code.                        |
| `awardPoints`       | number  | Miles or points required.                                                       |
| `taxes`             | number  | Source-reported taxes or surcharge in USD.                                      |
| `availableSeats`    | number  | Award seats reported as available.                                              |
| `programCode`       | string  | Loyalty-program code.                                                           |
| `programName`       | string  | Loyalty-program display name.                                                   |
| `alliance`          | string  | Airline alliance when supplied.                                                 |
| `airlineName`       | string  | Primary or operating airline name.                                              |
| `operatingAirlines` | array   | Operating airline codes in the itinerary.                                       |
| `stops`             | number  | Number of stops.                                                                |
| `isDirect`          | boolean | Whether the itinerary is non-stop.                                              |
| `departureTime`     | string  | Scheduled departure timestamp when supplied.                                    |
| `arrivalTime`       | string  | Scheduled arrival timestamp when supplied.                                      |
| `durationMinutes`   | number  | Total itinerary duration in minutes.                                            |
| `layovers`          | array   | Layover airport codes.                                                          |
| `aircraftNames`     | array   | Aircraft names found across flight segments.                                    |
| `flightNumbers`     | array   | Flight numbers found across segments.                                           |
| `bookingUrl`        | string  | Airline booking link when supplied.                                             |
| `detailUrl`         | string  | Source detail link when supplied.                                               |
| `roameScore`        | number  | Roame value score when supplied.                                                |
| `segments`          | array   | Per-flight origin, destination, schedule, airline, cabin, and aircraft details. |
| `sourceUpdatedAt`   | string  | Time the source last refreshed the fare.                                        |
| `scrapedAt`         | string  | Time this Actor collected the row.                                              |
| `changeFingerprint` | string  | Compact identifier that changes with price, seats, stops, or schedule.          |

### 💰 Pricing

Pricing is pay per result. Empty runs cost nothing, and there is no fixed monthly subscription. Set `maxItems` to keep every run within your preferred result limit.

### ⭐ Enjoying Award Flights Scraper?

<table width="100%">
<tr>
<td style="padding:20px 24px 14px;background:#F0F8FC;border:1px solid #C7E4F2;border-left:5px solid #005BA2;border-radius:10px 10px 0 0">
<span style="font-size:20px;letter-spacing:4px">⭐ ⭐ ⭐ ⭐ ⭐</span><br>
<span style="font-size:17px;font-weight:800;color:#1C1917">Spent less time searching and more time booking with points?</span><br>
<span style="font-size:14px;color:#57534E">A 5-star rating takes 10 seconds and helps award travelers and travel advisors find this Actor. Your feedback also tells us what to build next.</span>
</td>
</tr>
<tr>
<td style="padding:0;background:#005BA2;border:1px solid #C7E4F2;border-top:none;border-radius:0 0 10px 10px;text-align:center">
<a href="https://apify.com/getascraper/award-flights-scraper/reviews" style="display:block;padding:13px 16px;color:#FFFFFF;text-decoration:none;font-weight:800;font-size:15px;letter-spacing:0.3px">★&nbsp;&nbsp;Rate this Actor on Apify</a>
</td>
</tr>
</table>

### ❓ FAQ

##### Do I need a FlightPoints or Roame account?

No. The Actor is limited to award availability those services expose without a login. It does not request account credentials or unlock paid-only features.

##### How fresh is the award-seat data?

Each run performs a new route search and records source refresh times when available. Award seats can disappear quickly, so confirm availability before transferring points.

##### Can I monitor many routes for newly opened seats?

Yes. Add a bulk route list, schedule the task, and enable `onlyNewItems`. Later runs return fares whose availability, points, taxes, seats, stops, or schedule changed.

##### Does the Award Flights Scraper get blocked?

The current public search surfaces work without special access. The Actor uses conservative parallel searches, bounded retries, and clear source-level errors when a provider is temporarily unavailable.

### ⚖️ Responsible use

This Actor returns publicly visible award-search results. Availability is not a booking guarantee. Follow applicable laws and each source's terms, and confirm every itinerary with the loyalty program before moving points.

### 🔗 Other actors

- [Ostrovok Hotels Scraper: Отели Островок](https://apify.com/getascraper/ostrovok-hotels-scraper) ↗ - Compare hotel prices, ratings, and availability for the rest of a trip.
- [Ostrovok Reviews Scraper: Отзывы Островок](https://apify.com/getascraper/ostrovok-reviews-scraper) ↗ - Research guest reviews and hotel replies before booking.
- [2GIS Reviews Scraper: Отзывы 2ГИС](https://apify.com/getascraper/2gis-reviews-scraper) ↗ - Collect place reviews for destination research.
- [Yandex Maps Review Monitor: Парсер отзывов Яндекс Карт](https://apify.com/getascraper/yandex-maps-review-monitor) ↗ - Monitor new place reviews across travel destinations.

# Actor input Schema

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

Three-letter IATA code used in single-route mode.

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

Three-letter IATA code used in single-route mode.

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

Departure date in YYYY-MM-DD format. Leave empty to search 30 days from today.

## `routes` (type: `array`):

Optional route objects with origin, destination, and departureDate. A non-empty list overrides the single-route fields.

## `sources` (type: `array`):

Choose FlightPoints, Roame, or both.

## `searchClass` (type: `string`):

Cabin class requested from Roame. FlightPoints returns every available cabin.

## `daysAround` (type: `integer`):

Search this many days before and after the departure date.

## `directOnly` (type: `boolean`):

Return only non-stop award itineraries.

## `onlyNewItems` (type: `boolean`):

Compare with prior runs in the same task storage and output only new or changed availability.

## `maxItems` (type: `integer`):

Maximum rows saved across every route and source.

## `maxConcurrency` (type: `integer`):

Number of route and source searches processed at once.

## `pollTimeoutSecs` (type: `integer`):

Maximum seconds to wait for a FlightPoints search to complete before returning its latest rows.

## Actor input object example

```json
{
  "origin": "JFK",
  "destination": "LHR",
  "departureDate": "2026-08-22",
  "routes": [],
  "sources": [
    "flightpoints",
    "roame"
  ],
  "searchClass": "ECON",
  "daysAround": 0,
  "directOnly": false,
  "onlyNewItems": false,
  "maxItems": 100,
  "maxConcurrency": 3,
  "pollTimeoutSecs": 30
}
```

# Actor output Schema

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

No description

## `runStats` (type: `string`):

No description

# 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 = {
    "origin": "JFK",
    "destination": "LHR",
    "departureDate": "2026-08-22",
    "sources": [
        "flightpoints",
        "roame"
    ],
    "searchClass": "ECON",
    "daysAround": 0,
    "directOnly": false,
    "onlyNewItems": false,
    "maxItems": 100,
    "maxConcurrency": 3,
    "pollTimeoutSecs": 30
};

// Run the Actor and wait for it to finish
const run = await client.actor("getascraper/award-flights-scraper").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 = {
    "origin": "JFK",
    "destination": "LHR",
    "departureDate": "2026-08-22",
    "sources": [
        "flightpoints",
        "roame",
    ],
    "searchClass": "ECON",
    "daysAround": 0,
    "directOnly": False,
    "onlyNewItems": False,
    "maxItems": 100,
    "maxConcurrency": 3,
    "pollTimeoutSecs": 30,
}

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

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

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

```

## CLI example

```bash
echo '{
  "origin": "JFK",
  "destination": "LHR",
  "departureDate": "2026-08-22",
  "sources": [
    "flightpoints",
    "roame"
  ],
  "searchClass": "ECON",
  "daysAround": 0,
  "directOnly": false,
  "onlyNewItems": false,
  "maxItems": 100,
  "maxConcurrency": 3,
  "pollTimeoutSecs": 30
}' |
apify call getascraper/award-flights-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=getascraper/award-flights-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Award Flights Scraper: Miles, Seats & Taxes",
        "description": "Find award-seat availability across FlightPoints and Roame. Export miles, taxes, seats, cabins, loyalty programs, schedules, aircraft, and booking links for single or bulk routes.",
        "version": "0.1",
        "x-build-id": "BGgvnARrGesWo1PIO"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/getascraper~award-flights-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-getascraper-award-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/getascraper~award-flights-scraper/runs": {
            "post": {
                "operationId": "runs-sync-getascraper-award-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/getascraper~award-flights-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-getascraper-award-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": {
                    "origin": {
                        "title": "Origin airport",
                        "pattern": "^[A-Za-z]{3}$",
                        "type": "string",
                        "description": "Three-letter IATA code used in single-route mode.",
                        "default": "JFK"
                    },
                    "destination": {
                        "title": "Destination airport",
                        "type": "string",
                        "description": "Three-letter IATA code used in single-route mode.",
                        "default": "LHR"
                    },
                    "departureDate": {
                        "title": "Departure date",
                        "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
                        "type": "string",
                        "description": "Departure date in YYYY-MM-DD format. Leave empty to search 30 days from today."
                    },
                    "routes": {
                        "title": "Bulk routes",
                        "type": "array",
                        "description": "Optional route objects with origin, destination, and departureDate. A non-empty list overrides the single-route fields.",
                        "items": {
                            "type": "object",
                            "properties": {
                                "origin": {
                                    "title": "Origin airport",
                                    "type": "string",
                                    "description": "Three-letter origin IATA code.",
                                    "editor": "textfield"
                                },
                                "destination": {
                                    "title": "Destination airport",
                                    "type": "string",
                                    "description": "Three-letter destination IATA code.",
                                    "editor": "textfield"
                                },
                                "departureDate": {
                                    "title": "Departure date",
                                    "type": "string",
                                    "description": "Departure date in YYYY-MM-DD format.",
                                    "editor": "textfield"
                                }
                            },
                            "required": [
                                "origin",
                                "destination"
                            ]
                        },
                        "default": []
                    },
                    "sources": {
                        "title": "Sources",
                        "type": "array",
                        "description": "Choose FlightPoints, Roame, or both.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "flightpoints",
                                "roame"
                            ],
                            "enumTitles": [
                                "FlightPoints",
                                "Roame"
                            ]
                        },
                        "default": [
                            "flightpoints",
                            "roame"
                        ]
                    },
                    "searchClass": {
                        "title": "Roame cabin class",
                        "enum": [
                            "ECON",
                            "PREMECON",
                            "BUSINESS",
                            "FIRST"
                        ],
                        "type": "string",
                        "description": "Cabin class requested from Roame. FlightPoints returns every available cabin.",
                        "default": "ECON"
                    },
                    "daysAround": {
                        "title": "Flexible date window",
                        "minimum": 0,
                        "maximum": 7,
                        "type": "integer",
                        "description": "Search this many days before and after the departure date.",
                        "default": 0
                    },
                    "directOnly": {
                        "title": "Direct flights only",
                        "type": "boolean",
                        "description": "Return only non-stop award itineraries.",
                        "default": false
                    },
                    "onlyNewItems": {
                        "title": "Only new or changed fares",
                        "type": "boolean",
                        "description": "Compare with prior runs in the same task storage and output only new or changed availability.",
                        "default": false
                    },
                    "maxItems": {
                        "title": "Maximum results",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Maximum rows saved across every route and source.",
                        "default": 100
                    },
                    "maxConcurrency": {
                        "title": "Parallel searches",
                        "minimum": 1,
                        "maximum": 8,
                        "type": "integer",
                        "description": "Number of route and source searches processed at once.",
                        "default": 3
                    },
                    "pollTimeoutSecs": {
                        "title": "FlightPoints polling timeout",
                        "minimum": 5,
                        "maximum": 120,
                        "type": "integer",
                        "description": "Maximum seconds to wait for a FlightPoints search to complete before returning its latest rows.",
                        "default": 30
                    }
                }
            },
            "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
                                    }
                                }
                            },
                            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
