{
  "openapi": "3.0.1",
  "info": {
    "title": "AeroLOPA Seat Map Scraper",
    "description": "Scrape AeroLOPA.com airplane seat maps - seat pitch, width, recline, and AeroLOPA's own seat quality ratings per cabin class, browsable by airline or aircraft type. A free SeatGuru alternative.",
    "version": "1.0",
    "x-build-id": "sADerkqMZ3ZePdJth"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/crawlerbros~aerolopa-seat-map-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-crawlerbros-aerolopa-seat-map-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/crawlerbros~aerolopa-seat-map-scraper/runs": {
      "post": {
        "operationId": "runs-sync-crawlerbros-aerolopa-seat-map-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/crawlerbros~aerolopa-seat-map-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-crawlerbros-aerolopa-seat-map-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",
        "required": [
          "mode"
        ],
        "properties": {
          "mode": {
            "title": "Mode",
            "enum": [
              "byAirline",
              "byAircraft",
              "byVariant"
            ],
            "type": "string",
            "description": "What to fetch.",
            "default": "byAirline"
          },
          "airlineCode": {
            "title": "Airline (mode=byAirline)",
            "enum": [
              "a3",
              "ei",
              "xz",
              "ar",
              "am",
              "ah",
              "g9",
              "kc",
              "uu",
              "bx",
              "ac",
              "tx",
              "ca",
              "hf",
              "en",
              "ux",
              "af",
              "gl",
              "e2",
              "ai",
              "nq",
              "nx",
              "mk",
              "nz",
              "4n",
              "yp",
              "rs",
              "ju",
              "tn",
              "ts",
              "ak",
              "bt",
              "sb",
              "4z",
              "vf",
              "qp",
              "as",
              "g4",
              "aa",
              "nh",
              "dm",
              "iz",
              "oz",
              "gr",
              "os",
              "av",
              "j2",
              "s4",
              "ad",
              "pg",
              "id",
              "b4",
              "bg",
              "nt",
              "ob",
              "mx",
              "ba",
              "sn",
              "fb",
              "5t",
              "bw",
              "cx",
              "kx",
              "5j",
              "cs",
              "ci",
              "mu",
              "cz",
              "qg",
              "de",
              "cm",
              "ss",
              "ou",
              "cy",
              "dl",
              "4y",
              "u2",
              "wk",
              "ms",
              "ly",
              "ek",
              "et",
              "ey",
              "ew",
              "br",
              "fj",
              "ay",
              "f8",
              "f3",
              "fz",
              "xy",
              "bf",
              "f9",
              "ga",
              "g3",
              "gf",
              "hu",
              "ha",
              "2l",
              "uo",
              "hx",
              "ib",
              "fi",
              "6e",
              "az",
              "jl",
              "7c",
              "ls",
              "b6",
              "ja",
              "jq",
              "lj",
              "xe",
              "ho",
              "kq",
              "kl",
              "km",
              "ke",
              "ku",
              "b0",
              "la",
              "ll",
              "jt",
              "lm",
              "lo",
              "lh",
              "lg",
              "mh",
              "me",
              "om",
              "no",
              "n0",
              "dy",
              "oa",
              "wy",
              "mm",
              "pc",
              "pr",
              "pk",
              "pd",
              "qf",
              "qr",
              "zl",
              "rx",
              "at",
              "bi",
              "rj",
              "wb",
              "fr",
              "sk",
              "sv",
              "tr",
              "fm",
              "zh",
              "3u",
              "sq",
              "gq",
              "5y",
              "bc",
              "qs",
              "sa",
              "wn",
              "sg",
              "nk",
              "9c",
              "ul",
              "7g",
              "jx",
              "sy",
              "xq",
              "wg",
              "y8",
              "lx",
              "tw",
              "dt",
              "tp",
              "ro",
              "tg",
              "sl",
              "gs",
              "zt",
              "hv",
              "by",
              "tb",
              "tu",
              "tk",
              "ua",
              "hy",
              "vj",
              "vn",
              "vs",
              "va",
              "vb",
              "y4",
              "v7",
              "vy",
              "ws",
              "wf",
              "w6",
              "mf",
              "zg"
            ],
            "type": "string",
            "description": "Airline to browse. Emits one record per cabin class per aircraft variant operated by this airline.",
            "default": "ba"
          },
          "aircraftType": {
            "title": "Aircraft type (mode=byAircraft)",
            "enum": [
              "airbus-a220-300",
              "airbus-a318",
              "airbus-a319",
              "airbus-a320",
              "airbus-a320neo",
              "airbus-a321",
              "airbus-a321neo",
              "airbus-a330",
              "airbus-a330-300",
              "airbus-a330-900neo",
              "airbus-a340-300",
              "airbus-a340-600",
              "airbus-a350-1000",
              "airbus-a350-900",
              "airbus-a380",
              "atr-42",
              "atr-72",
              "boeing-717",
              "boeing-737-max-8",
              "boeing-737-max-9",
              "boeing-737-300",
              "boeing-737-400",
              "boeing-737-500",
              "boeing-737-600",
              "boeing-737-700",
              "boeing-737-800",
              "boeing-737-900",
              "boeing-747",
              "boeing-747-8",
              "boeing-757-200",
              "boeing-757-300",
              "boeing-767-300",
              "boeing-767-400",
              "boeing-777",
              "boeing-777-200",
              "boeing-777-300",
              "boeing-777-300er",
              "boeing-787-10",
              "boeing-787-8",
              "boeing-787-9",
              "bombardier-crj-1000",
              "bombardier-crj-200",
              "bombardier-crj-550",
              "bombardier-crj-700",
              "bombardier-crj-900",
              "britten-norman-bn-2b-islander",
              "comac-c909",
              "comac-c919",
              "dhc-dash-8",
              "dhc-dash-8-200",
              "dhc-dash-8-300",
              "dhc-dash-8-400",
              "dhc-6-twin-otter",
              "embraer-145",
              "embraer-e135",
              "embraer-e170",
              "embraer-e175",
              "embraer-e190",
              "embraer-e195",
              "fokker-100",
              "saab-340"
            ],
            "type": "string",
            "description": "Aircraft type to compare across every airline that flies it. Emits one summary record per airline+aircraft configuration (seat counts, economy pitch, wifi, IFE).",
            "default": "boeing-787-9"
          },
          "variantCodes": {
            "title": "Seat-map codes (mode=byVariant)",
            "type": "array",
            "description": "Exact AeroLOPA seat-map codes, e.g. `ba-789` (British Airways 787-9), `dl-359` (Delta A350). Find these on aerolopa.com URLs or in byAirline output's `variantCode` field.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "cabinClasses": {
            "title": "Cabin classes",
            "uniqueItems": true,
            "type": "array",
            "description": "Restrict cabin-level records (byAirline / byVariant) to these cabin classes. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "first",
                "business",
                "premium_economy",
                "economy"
              ]
            },
            "default": []
          },
          "minPitchInches": {
            "title": "Min seat pitch (inches)",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Drop cabin records with a parsed seat pitch below this many inches (byAirline / byVariant only; unparsable pitch values pass through)."
          },
          "maxPitchInches": {
            "title": "Max seat pitch (inches)",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Drop cabin records with a parsed seat pitch above this many inches (byAirline / byVariant only; unparsable pitch values pass through)."
          },
          "minFleetCount": {
            "title": "Min fleet count",
            "minimum": 0,
            "maximum": 2000,
            "type": "integer",
            "description": "Drop records for aircraft variants with fewer than this many aircraft in the operator's fleet."
          },
          "ratingLabel": {
            "title": "Seat rating filter",
            "enum": [
              "any",
              "good",
              "be_aware",
              "avoid"
            ],
            "type": "string",
            "description": "Keep only cabin records whose overall seat rating matches (byAirline / byVariant only). AeroLOPA rates individual seats Good / Be Aware / Avoid; this filters on the cabin's majority rating.",
            "default": "any"
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 1,
            "maximum": 2000,
            "type": "integer",
            "description": "Hard cap on emitted records.",
            "default": 50
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}