{
  "data": {
    "id": "r77fQ6nopV6iUx08D",
    "actId": "eIZgfI7pDY3WRqtPZ",
    "userId": "IYgBDiXtHOijAaUel",
    "startedAt": "2026-11-13T00:11:21.853Z",
    "finishedAt": "2026-11-13T00:11:40.299Z",
    "status": "SUCCEEDED",
    "meta": {
      "origin": "CI"
    },
    "stats": {
      "durationMillis": 18365,
      "runTimeSecs": 18.365,
      "computeUnits": 0.020405555555555555,
      "imageSizeBytes": 359645696
    },
    "options": {
      "useCache": true,
      "betaPackages": false,
      "memoryMbytes": 4096,
      "diskMbytes": 8192
    },
    "createdByOrganizationMemberUserId": "QYo53EZkJk0prePWY",
    "exitCode": 0,
    "inputSchema": "{\n  \"title\": \"Flight Award Mileage Chart Scraper Input\",\n  \"description\": \"Get the published award redemption rates (miles + taxes) between two regions across major frequent-flyer programs. Pulled from each issuer's public chart page.\",\n  \"type\": \"object\",\n  \"schemaVersion\": 1,\n  \"properties\": {\n    \"originRegion\": {\n      \"title\": \"Origin region\",\n      \"type\": \"string\",\n      \"description\": \"Region the trip departs from. The chart returns redemption rates between origin and destination regions.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"north_america\",\n        \"south_america\",\n        \"europe\",\n        \"africa\",\n        \"middle_east\",\n        \"asia\",\n        \"oceania\"\n      ],\n      \"enumTitles\": [\n        \"North America\",\n        \"South America / Caribbean\",\n        \"Europe\",\n        \"Africa\",\n        \"Middle East\",\n        \"Asia\",\n        \"Oceania (Australia / NZ / Pacific)\"\n      ],\n      \"default\": \"north_america\",\n      \"prefill\": \"north_america\"\n    },\n    \"destinationRegion\": {\n      \"title\": \"Destination region\",\n      \"type\": \"string\",\n      \"description\": \"Region the trip ends in.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"north_america\",\n        \"south_america\",\n        \"europe\",\n        \"africa\",\n        \"middle_east\",\n        \"asia\",\n        \"oceania\"\n      ],\n      \"enumTitles\": [\n        \"North America\",\n        \"South America / Caribbean\",\n        \"Europe\",\n        \"Africa\",\n        \"Middle East\",\n        \"Asia\",\n        \"Oceania (Australia / NZ / Pacific)\"\n      ],\n      \"default\": \"europe\",\n      \"prefill\": \"europe\"\n    },\n    \"cabin\": {\n      \"title\": \"Cabin class\",\n      \"type\": \"string\",\n      \"description\": \"Filter the published rates by cabin class.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"economy\",\n        \"premium\",\n        \"business\",\n        \"first\"\n      ],\n      \"enumTitles\": [\n        \"Economy\",\n        \"Premium Economy\",\n        \"Business\",\n        \"First\"\n      ],\n      \"default\": \"business\",\n      \"prefill\": \"business\"\n    },\n    \"issuers\": {\n      \"title\": \"Loyalty programs (issuers)\",\n      \"type\": \"array\",\n      \"description\": \"Which frequent-flyer programs to query. Order matters — earlier issuers run first.\",\n      \"editor\": \"select\",\n      \"items\": {\n        \"type\": \"string\",\n        \"enum\": [\n          \"aeroplan\",\n          \"alaska\",\n          \"american\",\n          \"anaMileage\",\n          \"azul\",\n          \"britishAirways\",\n          \"copa\",\n          \"delta\",\n          \"emirates\",\n          \"etihad\",\n          \"finnair\",\n          \"flyingBlue\",\n          \"jal\",\n          \"lifemiles\",\n          \"lufthansa\",\n          \"qantas\",\n          \"qatar\",\n          \"sas\",\n          \"singaporeKrisflyer\",\n          \"turkishMilesAndSmiles\",\n          \"united\",\n          \"virginAtlantic\",\n          \"aeromexico\"\n        ],\n        \"enumTitles\": [\n          \"Air Canada Aeroplan\",\n          \"Alaska Mileage Plan\",\n          \"American AAdvantage\",\n          \"ANA Mileage Club\",\n          \"Azul TudoAzul\",\n          \"British Airways Avios\",\n          \"Copa ConnectMiles\",\n          \"Delta SkyMiles\",\n          \"Emirates Skywards\",\n          \"Etihad Guest\",\n          \"Finnair Plus\",\n          \"Air France/KLM Flying Blue\",\n          \"JAL Mileage Bank\",\n          \"Avianca LifeMiles\",\n          \"Lufthansa Miles & More\",\n          \"Qantas Frequent Flyer\",\n          \"Qatar Privilege Club\",\n          \"SAS EuroBonus\",\n          \"Singapore KrisFlyer\",\n          \"Turkish Miles&Smiles\",\n          \"United MileagePlus\",\n          \"Virgin Atlantic Flying Club\",\n          \"Aeromexico Club Premier\"\n        ]\n      },\n      \"default\": [\n        \"aeroplan\",\n        \"alaska\",\n        \"american\",\n        \"anaMileage\",\n        \"britishAirways\",\n        \"emirates\",\n        \"flyingBlue\",\n        \"lifemiles\",\n        \"lufthansa\",\n        \"qatar\",\n        \"singaporeKrisflyer\",\n        \"united\",\n        \"virginAtlantic\"\n      ],\n      \"prefill\": [\n        \"aeroplan\",\n        \"alaska\",\n        \"american\",\n        \"anaMileage\",\n        \"britishAirways\",\n        \"emirates\",\n        \"flyingBlue\",\n        \"lifemiles\",\n        \"lufthansa\",\n        \"qatar\",\n        \"singaporeKrisflyer\",\n        \"united\",\n        \"virginAtlantic\"\n      ]\n    },\n    \"oneWay\": {\n      \"title\": \"One-way rate\",\n      \"type\": \"boolean\",\n      \"description\": \"Return one-way award rates instead of roundtrip. Roundtrip is the default for charts that publish in both formats.\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"partnerOnly\": {\n      \"title\": \"Partner redemption only\",\n      \"type\": \"boolean\",\n      \"description\": \"Only return partner-redemption rates (i.e. flying on a partner airline, not the issuer's own metal).\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"maxResults\": {\n      \"title\": \"Max results\",\n      \"type\": \"integer\",\n      \"description\": \"Hard cap on emitted chart rows.\",\n      \"minimum\": 1,\n      \"maximum\": 1000,\n      \"default\": 100,\n      \"prefill\": 100\n    }\n  },\n  \"required\": [\n    \"originRegion\",\n    \"destinationRegion\"\n  ]\n}",
    "readme": "# Airline Mileage Chart Redemption Rate Scraper\n\nMost frequent-flyer programs publish a fixed mileage chart showing how many miles (plus taxes) a redemption costs between two regions — separate from the live seat-availability search. This actor reads those published charts directly from each program's own page and returns one row per chart rate, so you can compare redemption cost across programs without opening a dozen airline websites.\n\n## What this actor does\n\n- Looks up published award-chart rates between an origin and destination region for the loyalty programs you select.\n- Filters results by cabin class, one-way vs. roundtrip, and partner-only redemptions.\n- Returns the miles cost, tax estimate, and any chart notes (e.g. distance band) exactly as published by the program.\n- Cleanly skips any selected program whose chart isn't implemented yet, without emitting placeholder rows for it.\n- Fields a given program's chart doesn't publish (e.g. a one-way rate, or a partner name) are left out of that row.\n\n## Output per rate\n\n| Field | Description |\n|---|---|\n| `recordType` | Always `\"mileage_chart\"`. |\n| `issuer` | Program key (e.g. `aeroplan`, `united`). |\n| `issuerName` | Full program name (e.g. \"Air Canada Aeroplan\"). |\n| `originRegion` / `destinationRegion` | The two regions this rate applies between. |\n| `cabin` | Cabin class the rate applies to. |\n| `miles` | Miles cost for the rate (roundtrip unless `oneWay` was requested). |\n| `milesOneWay` | One-way miles cost, when the chart publishes one separately. |\n| `isPartner` | Whether this is a partner-airline redemption rather than the issuer's own flights. |\n| `partnerName` | Name of the partner airline, when `isPartner` is true and the chart names one. |\n| `milesNote` | Any additional note published alongside the rate, such as the distance band it falls under. |\n| `taxes_min_usd` / `taxes_max_usd` | Published tax/fee range for the redemption, in USD, when the chart publishes one. |\n| `sourceUrl` | The program's own page this rate was read from. |\n| `scrapedAt` | ISO 8601 timestamp of when this actor fetched the record. |\n\n## Input\n\n| Field | Type | Default | Description |\n|---|---|---|---|\n| `originRegion` | String (select) | `\"north_america\"` | Region the trip departs from: North America, South America/Caribbean, Europe, Africa, Middle East, Asia, or Oceania. |\n| `destinationRegion` | String (select) | `\"europe\"` | Region the trip ends in, from the same list. |\n| `cabin` | String (select) | `\"business\"` | Cabin class to filter rates by: Economy, Premium Economy, Business, or First. |\n| `issuers` | Array (select) | `[\"aeroplan\", \"alaska\", \"american\", \"anaMileage\", \"britishAirways\", \"emirates\", \"flyingBlue\", \"lifemiles\", \"lufthansa\", \"qatar\", \"singaporeKrisflyer\", \"united\", \"virginAtlantic\"]` | Which frequent-flyer programs to query (see supported list below). Order affects which runs first. |\n| `oneWay` | Boolean | `false` | Return one-way rates instead of roundtrip, for charts that publish both. |\n| `partnerOnly` | Boolean | `false` | Only return partner-airline redemption rates. |\n| `maxResults` | Integer | `100` | Maximum number of chart rows to return. |\n\n### Example: roundtrip business-class comparison\n\n```json\n{\n    \"originRegion\": \"north_america\",\n    \"destinationRegion\": \"europe\",\n    \"cabin\": \"business\",\n    \"issuers\": [\"aeroplan\", \"united\", \"virginAtlantic\", \"flyingBlue\"]\n}\n```\n\n### Example: one-way, partner-only rates\n\n```json\n{\n    \"originRegion\": \"north_america\",\n    \"destinationRegion\": \"asia\",\n    \"cabin\": \"business\",\n    \"oneWay\": true,\n    \"partnerOnly\": true,\n    \"issuers\": [\"aeroplan\", \"united\", \"lifemiles\"]\n}\n```\n\n### Example: economy rates across all implemented programs\n\n```json\n{\n    \"originRegion\": \"europe\",\n    \"destinationRegion\": \"middle_east\",\n    \"cabin\": \"economy\",\n    \"maxResults\": 200\n}\n```\n\n## Supported loyalty programs\n\nChart data is currently implemented for: Air Canada Aeroplan (`aeroplan`), Alaska Mileage Plan (`alaska`), American AAdvantage (`american`), ANA Mileage Club (`anaMileage`), British Airways Avios (`britishAirways`), Emirates Skywards (`emirates`), Air France/KLM Flying Blue (`flyingBlue`), Avianca LifeMiles (`lifemiles`), Lufthansa Miles & More (`lufthansa`), Qatar Privilege Club (`qatar`), Singapore KrisFlyer (`singaporeKrisflyer`), United MileagePlus (`united`), and Virgin Atlantic Flying Club (`virginAtlantic`).\n\nThe input also lists Aeromexico Club Premier, Azul TudoAzul, Copa ConnectMiles, Delta SkyMiles, Etihad Guest, Finnair Plus, JAL Mileage Bank, Qantas Frequent Flyer, SAS EuroBonus, and Turkish Miles&Smiles for forward compatibility — selecting one of these today simply returns no rows for that program, with no effect on the others you selected.\n\n## Use cases\n\n- **Redemption comparison** — see which program charges the fewest miles for the same route and cabin before booking.\n- **Travel-hacking content** — source up-to-date published chart values for blog posts, spreadsheets, or redemption calculators.\n- **Points valuation** — combine `miles` and `taxes_min_usd`/`taxes_max_usd` with a program's point value to estimate true redemption cost.\n- **Partner-award research** — set `partnerOnly: true` to focus on the partner-airline rates that are often cheaper or open up routes the issuer doesn't fly itself.\n\n## FAQ\n\n**Is this live seat availability?**\nNo. It's the published mileage chart — the fixed miles-and-taxes rate a program advertises for a region pair and cabin, not a live search for bookable award seats on a specific date.\n\n**Why did some of my selected programs return no rows?**\nA few programs listed in the `issuers` input aren't implemented yet (see the list above); they're skipped cleanly rather than returning empty or fake rows.\n\n**Why is `sourceUrl` included?**\nSo you can open the exact page a rate was read from and confirm it against the program's own published chart.\n\n**What does `partnerOnly: true` change?**\nIt keeps only rows for redemptions on a partner airline rather than the issuer's own flights, for programs that publish a distinct partner rate.\n\n**Why do some rows have `milesOneWay` and others don't?**\nOnly programs that publish a separate one-way chart value populate `milesOneWay`; others publish roundtrip-only pricing.\n\n**Does `maxResults` limit results per program or overall?**\nIt's a hard cap on the total number of rows returned across every selected program.\n\n**Will re-running this actor pick up a chart change the same day a program updates it?**\nNot necessarily. Each program's rates are a snapshot of its published chart rather than a page fetched fresh on every run, so a same-day change on the program's own site may not be reflected until the snapshot is refreshed. Use `sourceUrl` to confirm the current published rate.\n\n**Is this affiliated with any airline or loyalty program?**\nNo. This actor reads publicly published mileage charts and is not affiliated with or endorsed by any airline, alliance, or frequent-flyer program named above.\n",
    "actorDefinition": {
      "actorSpecification": 1,
      "name": "airline-mileage-chart-redemption-rate-scraper",
      "title": "Airline Mileage Chart Redemption Rate Scraper",
      "description": "Compare published award redemption rates in miles and taxes between world regions across 13 frequent-flyer programs, including Aeroplan, British Airways Avios, LifeMiles, United, and Flying Blue.",
      "version": "1.0",
      "buildTag": "latest",
      "dockerfile": "../Dockerfile",
      "readme": "# Airline Mileage Chart Redemption Rate Scraper\n\nMost frequent-flyer programs publish a fixed mileage chart showing how many miles (plus taxes) a redemption costs between two regions — separate from the live seat-availability search. This actor reads those published charts directly from each program's own page and returns one row per chart rate, so you can compare redemption cost across programs without opening a dozen airline websites.\n\n## What this actor does\n\n- Looks up published award-chart rates between an origin and destination region for the loyalty programs you select.\n- Filters results by cabin class, one-way vs. roundtrip, and partner-only redemptions.\n- Returns the miles cost, tax estimate, and any chart notes (e.g. distance band) exactly as published by the program.\n- Cleanly skips any selected program whose chart isn't implemented yet, without emitting placeholder rows for it.\n- Fields a given program's chart doesn't publish (e.g. a one-way rate, or a partner name) are left out of that row.\n\n## Output per rate\n\n| Field | Description |\n|---|---|\n| `recordType` | Always `\"mileage_chart\"`. |\n| `issuer` | Program key (e.g. `aeroplan`, `united`). |\n| `issuerName` | Full program name (e.g. \"Air Canada Aeroplan\"). |\n| `originRegion` / `destinationRegion` | The two regions this rate applies between. |\n| `cabin` | Cabin class the rate applies to. |\n| `miles` | Miles cost for the rate (roundtrip unless `oneWay` was requested). |\n| `milesOneWay` | One-way miles cost, when the chart publishes one separately. |\n| `isPartner` | Whether this is a partner-airline redemption rather than the issuer's own flights. |\n| `partnerName` | Name of the partner airline, when `isPartner` is true and the chart names one. |\n| `milesNote` | Any additional note published alongside the rate, such as the distance band it falls under. |\n| `taxes_min_usd` / `taxes_max_usd` | Published tax/fee range for the redemption, in USD, when the chart publishes one. |\n| `sourceUrl` | The program's own page this rate was read from. |\n| `scrapedAt` | ISO 8601 timestamp of when this actor fetched the record. |\n\n## Input\n\n| Field | Type | Default | Description |\n|---|---|---|---|\n| `originRegion` | String (select) | `\"north_america\"` | Region the trip departs from: North America, South America/Caribbean, Europe, Africa, Middle East, Asia, or Oceania. |\n| `destinationRegion` | String (select) | `\"europe\"` | Region the trip ends in, from the same list. |\n| `cabin` | String (select) | `\"business\"` | Cabin class to filter rates by: Economy, Premium Economy, Business, or First. |\n| `issuers` | Array (select) | `[\"aeroplan\", \"alaska\", \"american\", \"anaMileage\", \"britishAirways\", \"emirates\", \"flyingBlue\", \"lifemiles\", \"lufthansa\", \"qatar\", \"singaporeKrisflyer\", \"united\", \"virginAtlantic\"]` | Which frequent-flyer programs to query (see supported list below). Order affects which runs first. |\n| `oneWay` | Boolean | `false` | Return one-way rates instead of roundtrip, for charts that publish both. |\n| `partnerOnly` | Boolean | `false` | Only return partner-airline redemption rates. |\n| `maxResults` | Integer | `100` | Maximum number of chart rows to return. |\n\n### Example: roundtrip business-class comparison\n\n```json\n{\n    \"originRegion\": \"north_america\",\n    \"destinationRegion\": \"europe\",\n    \"cabin\": \"business\",\n    \"issuers\": [\"aeroplan\", \"united\", \"virginAtlantic\", \"flyingBlue\"]\n}\n```\n\n### Example: one-way, partner-only rates\n\n```json\n{\n    \"originRegion\": \"north_america\",\n    \"destinationRegion\": \"asia\",\n    \"cabin\": \"business\",\n    \"oneWay\": true,\n    \"partnerOnly\": true,\n    \"issuers\": [\"aeroplan\", \"united\", \"lifemiles\"]\n}\n```\n\n### Example: economy rates across all implemented programs\n\n```json\n{\n    \"originRegion\": \"europe\",\n    \"destinationRegion\": \"middle_east\",\n    \"cabin\": \"economy\",\n    \"maxResults\": 200\n}\n```\n\n## Supported loyalty programs\n\nChart data is currently implemented for: Air Canada Aeroplan (`aeroplan`), Alaska Mileage Plan (`alaska`), American AAdvantage (`american`), ANA Mileage Club (`anaMileage`), British Airways Avios (`britishAirways`), Emirates Skywards (`emirates`), Air France/KLM Flying Blue (`flyingBlue`), Avianca LifeMiles (`lifemiles`), Lufthansa Miles & More (`lufthansa`), Qatar Privilege Club (`qatar`), Singapore KrisFlyer (`singaporeKrisflyer`), United MileagePlus (`united`), and Virgin Atlantic Flying Club (`virginAtlantic`).\n\nThe input also lists Aeromexico Club Premier, Azul TudoAzul, Copa ConnectMiles, Delta SkyMiles, Etihad Guest, Finnair Plus, JAL Mileage Bank, Qantas Frequent Flyer, SAS EuroBonus, and Turkish Miles&Smiles for forward compatibility — selecting one of these today simply returns no rows for that program, with no effect on the others you selected.\n\n## Use cases\n\n- **Redemption comparison** — see which program charges the fewest miles for the same route and cabin before booking.\n- **Travel-hacking content** — source up-to-date published chart values for blog posts, spreadsheets, or redemption calculators.\n- **Points valuation** — combine `miles` and `taxes_min_usd`/`taxes_max_usd` with a program's point value to estimate true redemption cost.\n- **Partner-award research** — set `partnerOnly: true` to focus on the partner-airline rates that are often cheaper or open up routes the issuer doesn't fly itself.\n\n## FAQ\n\n**Is this live seat availability?**\nNo. It's the published mileage chart — the fixed miles-and-taxes rate a program advertises for a region pair and cabin, not a live search for bookable award seats on a specific date.\n\n**Why did some of my selected programs return no rows?**\nA few programs listed in the `issuers` input aren't implemented yet (see the list above); they're skipped cleanly rather than returning empty or fake rows.\n\n**Why is `sourceUrl` included?**\nSo you can open the exact page a rate was read from and confirm it against the program's own published chart.\n\n**What does `partnerOnly: true` change?**\nIt keeps only rows for redemptions on a partner airline rather than the issuer's own flights, for programs that publish a distinct partner rate.\n\n**Why do some rows have `milesOneWay` and others don't?**\nOnly programs that publish a separate one-way chart value populate `milesOneWay`; others publish roundtrip-only pricing.\n\n**Does `maxResults` limit results per program or overall?**\nIt's a hard cap on the total number of rows returned across every selected program.\n\n**Will re-running this actor pick up a chart change the same day a program updates it?**\nNot necessarily. Each program's rates are a snapshot of its published chart rather than a page fetched fresh on every run, so a same-day change on the program's own site may not be reflected until the snapshot is refreshed. Use `sourceUrl` to confirm the current published rate.\n\n**Is this affiliated with any airline or loyalty program?**\nNo. This actor reads publicly published mileage charts and is not affiliated with or endorsed by any airline, alliance, or frequent-flyer program named above.\n",
      "input": {
        "title": "Flight Award Mileage Chart Scraper Input",
        "description": "Get the published award redemption rates (miles + taxes) between two regions across major frequent-flyer programs. Pulled from each issuer's public chart page.",
        "type": "object",
        "schemaVersion": 1,
        "properties": {
          "originRegion": {
            "title": "Origin region",
            "type": "string",
            "description": "Region the trip departs from. The chart returns redemption rates between origin and destination regions.",
            "editor": "select",
            "enum": [
              "north_america",
              "south_america",
              "europe",
              "africa",
              "middle_east",
              "asia",
              "oceania"
            ],
            "enumTitles": [
              "North America",
              "South America / Caribbean",
              "Europe",
              "Africa",
              "Middle East",
              "Asia",
              "Oceania (Australia / NZ / Pacific)"
            ],
            "default": "north_america",
            "prefill": "north_america"
          },
          "destinationRegion": {
            "title": "Destination region",
            "type": "string",
            "description": "Region the trip ends in.",
            "editor": "select",
            "enum": [
              "north_america",
              "south_america",
              "europe",
              "africa",
              "middle_east",
              "asia",
              "oceania"
            ],
            "enumTitles": [
              "North America",
              "South America / Caribbean",
              "Europe",
              "Africa",
              "Middle East",
              "Asia",
              "Oceania (Australia / NZ / Pacific)"
            ],
            "default": "europe",
            "prefill": "europe"
          },
          "cabin": {
            "title": "Cabin class",
            "type": "string",
            "description": "Filter the published rates by cabin class.",
            "editor": "select",
            "enum": [
              "economy",
              "premium",
              "business",
              "first"
            ],
            "enumTitles": [
              "Economy",
              "Premium Economy",
              "Business",
              "First"
            ],
            "default": "business",
            "prefill": "business"
          },
          "issuers": {
            "title": "Loyalty programs (issuers)",
            "type": "array",
            "description": "Which frequent-flyer programs to query. Order matters — earlier issuers run first.",
            "editor": "select",
            "items": {
              "type": "string",
              "enum": [
                "aeroplan",
                "alaska",
                "american",
                "anaMileage",
                "azul",
                "britishAirways",
                "copa",
                "delta",
                "emirates",
                "etihad",
                "finnair",
                "flyingBlue",
                "jal",
                "lifemiles",
                "lufthansa",
                "qantas",
                "qatar",
                "sas",
                "singaporeKrisflyer",
                "turkishMilesAndSmiles",
                "united",
                "virginAtlantic",
                "aeromexico"
              ],
              "enumTitles": [
                "Air Canada Aeroplan",
                "Alaska Mileage Plan",
                "American AAdvantage",
                "ANA Mileage Club",
                "Azul TudoAzul",
                "British Airways Avios",
                "Copa ConnectMiles",
                "Delta SkyMiles",
                "Emirates Skywards",
                "Etihad Guest",
                "Finnair Plus",
                "Air France/KLM Flying Blue",
                "JAL Mileage Bank",
                "Avianca LifeMiles",
                "Lufthansa Miles & More",
                "Qantas Frequent Flyer",
                "Qatar Privilege Club",
                "SAS EuroBonus",
                "Singapore KrisFlyer",
                "Turkish Miles&Smiles",
                "United MileagePlus",
                "Virgin Atlantic Flying Club",
                "Aeromexico Club Premier"
              ]
            },
            "default": [
              "aeroplan",
              "alaska",
              "american",
              "anaMileage",
              "britishAirways",
              "emirates",
              "flyingBlue",
              "lifemiles",
              "lufthansa",
              "qatar",
              "singaporeKrisflyer",
              "united",
              "virginAtlantic"
            ],
            "prefill": [
              "aeroplan",
              "alaska",
              "american",
              "anaMileage",
              "britishAirways",
              "emirates",
              "flyingBlue",
              "lifemiles",
              "lufthansa",
              "qatar",
              "singaporeKrisflyer",
              "united",
              "virginAtlantic"
            ]
          },
          "oneWay": {
            "title": "One-way rate",
            "type": "boolean",
            "description": "Return one-way award rates instead of roundtrip. Roundtrip is the default for charts that publish in both formats.",
            "default": false,
            "prefill": false
          },
          "partnerOnly": {
            "title": "Partner redemption only",
            "type": "boolean",
            "description": "Only return partner-redemption rates (i.e. flying on a partner airline, not the issuer's own metal).",
            "default": false,
            "prefill": false
          },
          "maxResults": {
            "title": "Max results",
            "type": "integer",
            "description": "Hard cap on emitted chart rows.",
            "minimum": 1,
            "maximum": 1000,
            "default": 100,
            "prefill": 100
          }
        },
        "required": [
          "originRegion",
          "destinationRegion"
        ]
      },
      "output": {
        "actorOutputSchemaVersion": 1,
        "title": "Airline Mileage Chart Redemption Rate Scraper Output",
        "description": "Dataset of published award-chart rates between two regions, with miles, taxes, cabin, and partner details per loyalty program.",
        "properties": {
          "rates": {
            "type": "string",
            "title": "Mileage Chart Rates",
            "description": "Dataset containing all scraped mileage chart rows.",
            "template": "{{links.apiDefaultDatasetUrl}}/items"
          }
        }
      },
      "storages": {
        "dataset": {
          "actorSpecification": 1,
          "views": {
            "overview": {
              "title": "Mileage chart rates",
              "transformation": {
                "fields": [
                  "issuer",
                  "issuerName",
                  "originRegion",
                  "destinationRegion",
                  "cabin",
                  "miles",
                  "milesOneWay",
                  "isPartner",
                  "partnerName",
                  "milesNote",
                  "taxes_min_usd",
                  "taxes_max_usd",
                  "sourceUrl"
                ]
              },
              "display": {
                "component": "table",
                "properties": {}
              }
            }
          }
        }
      }
    },
    "buildNumber": "1.0.1",
    "imageDigest": "f760796c39cbf2e672c329108833465ef37fee42087e35245ad92f9a598d2646",
    "actVersion": {
      "sourceType": "SOURCE_FILES",
      "buildTag": "latest",
      "versionNumber": "1.0"
    },
    "usage": {
      "ACTOR_COMPUTE_UNITS": 0.020405555555555555
    }
  }
}