{
  "openapi": "3.0.1",
  "info": {
    "title": "Alamo Car Rental Scraper: Rates, Classes & Branches",
    "description": "Scrape alamo.com car rental quotes for any airport or city: vehicle classes with daily and total rates incl. taxes, prepay savings, mileage and driver age fees, plus branches and the class catalog. No login, no proxy. Low volume: Alamo limits quote requests. Export JSON, CSV or Excel.",
    "version": "0.1",
    "x-build-id": "X5f0ACzI9RB6vu5zF"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/recordsdata~alamo-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-recordsdata-alamo-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/recordsdata~alamo-scraper/runs": {
      "post": {
        "operationId": "runs-sync-recordsdata-alamo-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/recordsdata~alamo-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-recordsdata-alamo-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": {
          "mode": {
            "title": "What to collect",
            "enum": [
              "offers",
              "locations",
              "vehicleClasses"
            ],
            "type": "string",
            "description": "offers: one row per car class quoted for a pickup branch and your dates. locations: one row per Alamo branch (address, coordinates, hours, services). vehicleClasses: the car classes Alamo rents out in a country.",
            "default": "offers"
          },
          "pickupLocations": {
            "title": "Pickup locations",
            "type": "array",
            "description": "Where the car is picked up. Type an airport code (SAT), a branch id (52A3), a city (Austin or Austin, TX) or a branch page address from alamo.com. A city is expanded to its branches, airports first. In locations mode this narrows the branch list; leave it empty there to read every branch of the country.",
            "items": {
              "type": "string"
            }
          },
          "returnLocation": {
            "title": "Return location (optional)",
            "type": "string",
            "description": "Where the car is dropped off, same formats as the pickup. Leave empty to return it where it was picked up. A different branch makes a one-way rental, which Alamo usually prices higher."
          },
          "locationCountry": {
            "title": "Country of the locations",
            "type": "string",
            "description": "Two-letter country code of the pickup places (US, CA, GB, MX, DE, AU...). It is used to look up airport codes and city names, and it is the country whose branches the locations mode lists.",
            "default": "US"
          },
          "locationState": {
            "title": "State or province (locations mode)",
            "type": "string",
            "description": "Optional two-letter state or province code that narrows the locations mode to one state, for example TX or ON. Only countries with states in Alamo's address tree (US, CA, MX...) support it."
          },
          "pickupDate": {
            "title": "Pickup date",
            "type": "string",
            "description": "Day the rental starts, formatted 2026-12-12. Leave empty to use 14 days from today. It must not be in the past."
          },
          "pickupTime": {
            "title": "Pickup time",
            "type": "string",
            "description": "Local time at the pickup branch on a 24-hour clock, for example 10:00. The branch must be open then or Alamo refuses the quote.",
            "default": "10:00"
          },
          "returnDate": {
            "title": "Return date",
            "type": "string",
            "description": "Day the car comes back, formatted 2026-12-15. Leave empty to use the pickup date plus the number of rental days below."
          },
          "returnTime": {
            "title": "Return time",
            "type": "string",
            "description": "Local time at the return branch on a 24-hour clock. Leave empty to use the pickup time."
          },
          "rentalDays": {
            "title": "Rental days",
            "minimum": 1,
            "maximum": 330,
            "type": "integer",
            "description": "Length of the rental when no return date is given. Prices follow Alamo's daily, weekly and monthly rate steps, so a 7-day or 30-day rental can cost less per day.",
            "default": 3
          },
          "driverAge": {
            "title": "Driver age",
            "minimum": 16,
            "maximum": 99,
            "type": "integer",
            "description": "Age of the main driver. Drivers under 25 pay Alamo's young renter surcharge, which is included in the totals, and some car classes are not offered to them.",
            "default": 30
          },
          "renterCountry": {
            "title": "Country of residence of the driver",
            "type": "string",
            "description": "Two-letter country code (US, CA, GB...). Alamo shows prices in the driver's currency next to the branch currency; the renterCurrency columns hold that view. It also picks the vehicle catalog in vehicleClasses mode.",
            "default": "US"
          },
          "vehicleCategories": {
            "title": "Vehicle categories",
            "type": "array",
            "description": "Keep only these categories: Cars, SUVs, Trucks, Vans. Leave empty for all of them.",
            "items": {
              "type": "string"
            }
          },
          "transmission": {
            "title": "Transmission",
            "enum": [
              "any",
              "automatic",
              "manual"
            ],
            "type": "string",
            "description": "Keep only automatic or only manual cars.",
            "default": "any"
          },
          "fuelType": {
            "title": "Fuel type",
            "enum": [
              "any",
              "gasoline",
              "hybrid",
              "electric",
              "diesel"
            ],
            "type": "string",
            "description": "Keep only one fuel type.",
            "default": "any"
          },
          "minPassengers": {
            "title": "Minimum passengers",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Keep only car classes that seat at least this many people."
          },
          "maxPricePerDay": {
            "title": "Maximum price per day",
            "minimum": 0,
            "type": "number",
            "description": "Keep only offers whose all-in price per day (taxes and fees included, branch currency) is at most this amount."
          },
          "maxTotalPrice": {
            "title": "Maximum total price",
            "minimum": 0,
            "type": "number",
            "description": "Keep only offers whose total for the whole rental (taxes and fees included, branch currency) is at most this amount."
          },
          "availableOnly": {
            "title": "Available offers only",
            "type": "boolean",
            "description": "Skip car classes that Alamo does not offer for those dates (sold out or on request).",
            "default": true
          },
          "airportsOnly": {
            "title": "Airport branches only (locations mode)",
            "type": "boolean",
            "description": "In locations mode, keep only branches at an airport.",
            "default": false
          },
          "maxBranchesPerLocation": {
            "title": "Branches per city",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "When a pickup location is a city that has several branches, quote at most this many of them (airports first). An airport code or a branch id always means one branch.",
            "default": 3
          },
          "includeContactDetails": {
            "title": "Include branch phone numbers",
            "type": "boolean",
            "description": "Add the public phone number of each branch to the location rows. Off by default.",
            "default": false
          },
          "maxItems": {
            "title": "Maximum items",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Stop after this many rows. Each car class quote, branch or vehicle class counts as one item. Free accounts are limited to 10 items per run.",
            "default": 50
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Off by default: the site answers Apify servers directly. Turn on the Apify proxy only if you see repeated blocked requests in the log.",
            "default": {}
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}