{
  "openapi": "3.0.1",
  "info": {
    "title": "Airbnb & Booking Spain Tourist License Checker",
    "description": "Check the tourist licence number of Airbnb listings and Booking.com properties in Spain against the official regional registers (Catalonia, Andalusia, Valencia, Mallorca, Canary Islands, Madrid): verdict, registered holder, floor, door, authorised places — plus listing and host details.",
    "version": "0.0",
    "x-build-id": "46oZnngFeZo1qZ7br"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/nice_dev~airbnb-spain-license-checker/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-nice_dev-airbnb-spain-license-checker",
        "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/nice_dev~airbnb-spain-license-checker/runs": {
      "post": {
        "operationId": "runs-sync-nice_dev-airbnb-spain-license-checker",
        "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/nice_dev~airbnb-spain-license-checker/run-sync": {
      "post": {
        "operationId": "run-sync-nice_dev-airbnb-spain-license-checker",
        "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": {
          "startUrls": {
            "title": "Airbnb URLs",
            "maxItems": 1000,
            "type": "array",
            "description": "Airbnb listing URLs (`https://www.airbnb.com/rooms/12345`, any Airbnb domain such as airbnb.es) and/or Airbnb search URLs (`https://www.airbnb.com/s/Barcelona--Spain/homes`, map searches included: their filters are kept, pagination and map splitting are automatic). Max 1 000 URLs.",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "listingIds": {
            "title": "Airbnb listing IDs",
            "maxItems": 1000,
            "uniqueItems": true,
            "type": "array",
            "description": "Airbnb listing IDs alone (the digits after `/rooms/`), one per line — checked in this order, before any search: with a result limit, the first ones are the ones saved. Max 1 000.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "bookingUrls": {
            "title": "Booking.com URLs",
            "maxItems": 1000,
            "uniqueItems": true,
            "type": "array",
            "description": "Booking.com property pages to check, e.g. `https://www.booking.com/hotel/es/la-roqueta.html` (any language version). Read whatever Sites searched says.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "location": {
            "title": "Place",
            "maxLength": 200,
            "type": "string",
            "description": "A place in Spain, as typed in Airbnb's or Booking.com's search box (e.g. `Barcelona, Spain`, `Málaga`, `Palma de Mallorca`), searched on the **Sites searched**. Each listing found is opened and its licence checked."
          },
          "locations": {
            "title": "More places",
            "maxItems": 100,
            "uniqueItems": true,
            "type": "array",
            "description": "Several places in one run (one search each and per site, max 100). Added to **Place**; a listing found by several searches is saved once.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "sources": {
            "title": "Sites searched",
            "type": "array",
            "description": "The sites each place (Place, More places) is searched on: Airbnb, Booking.com, or both (one search per place and site, each with its own Max listings per search). Airbnb URLs, listing IDs and map areas always go to Airbnb, Booking.com URLs to Booking.com.",
            "items": {
              "type": "string",
              "enum": [
                "airbnb",
                "booking"
              ],
              "enumTitles": [
                "Airbnb",
                "Booking.com"
              ]
            },
            "default": [
              "airbnb"
            ]
          },
          "boundingBoxes": {
            "title": "Map areas",
            "maxItems": 100,
            "uniqueItems": true,
            "type": "array",
            "description": "Map rectangles to search, one per line as `south latitude, west longitude, north latitude, east longitude` (e.g. `41.37, 2.15, 41.40, 2.19` for central Barcelona). The surest way to cover a whole city: Airbnb returns at most 270 listings per search, and a full area is split into smaller ones automatically.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "licenseNumbers": {
            "title": "Licence numbers to check",
            "maxItems": 1000,
            "uniqueItems": true,
            "type": "array",
            "description": "Tourist licence numbers checked against the registers without any Airbnb listing (e.g. `HUTB-064079`, `VFT/MA/48725`, `CV-VUT0052409-V`, `ETV/9960`, `VV-35-2-0001234`, `VT-14529`). One result per licence (two spellings of one number are checked once). Max 1 000.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "Max results",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Maximum number of results (listings checked + licence numbers) to save for the whole run, after filters. 0 = no limit.",
            "default": 100
          },
          "maxItemsPerQuery": {
            "title": "Max listings per search",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Cap for EACH search (place and site, map area or search URL), so that the first search cannot use up the whole **Max results** budget. 0 = no per-search cap — except when the run searches both sites (places on both, or a Booking.com place next to an Airbnb map area or search URL): **Max results** is then shared evenly between the searches (a Booking.com page brings 100 properties at once and would take every slot).",
            "default": 0
          },
          "splitMap": {
            "title": "Split full areas",
            "type": "boolean",
            "description": "Airbnb shows at most 270 listings (15 pages) per search: a full search has its map area cut into 4 smaller areas, again and again. Booking.com shows at most 1 000 properties per search: a bigger one is also read district by district. Off = the first 270 (Airbnb) or 1 000 (Booking.com) of each search only.",
            "default": true
          },
          "checkIn": {
            "title": "Check-in date",
            "type": "string",
            "description": "Travel dates of the search (`2026-10-12`). Airbnb then shows the listings free on those dates and their price for the stay; empty = Airbnb's own flexible dates. Today or later (the day in Spain): Airbnb shows nothing for a stay that has begun."
          },
          "checkOut": {
            "title": "Check-out date",
            "type": "string",
            "description": "End of the stay (`2026-10-15`), after the check-in date."
          },
          "adults": {
            "title": "Guests",
            "minimum": 0,
            "maximum": 16,
            "type": "integer",
            "description": "Number of guests: only the listings that can host them. 0 = any.",
            "default": 0
          },
          "children": {
            "title": "Children",
            "minimum": 0,
            "maximum": 15,
            "type": "integer",
            "description": "Children aged 2-12 travelling (Airbnb filter). 0 = none.",
            "default": 0
          },
          "infants": {
            "title": "Infants",
            "minimum": 0,
            "maximum": 5,
            "type": "integer",
            "description": "Infants under 2 travelling (Airbnb filter). 0 = none.",
            "default": 0
          },
          "pets": {
            "title": "Pets",
            "minimum": 0,
            "maximum": 5,
            "type": "integer",
            "description": "Pets travelling: only listings that allow pets. 0 = none.",
            "default": 0
          },
          "currency": {
            "title": "Currency",
            "enum": [
              "EUR",
              "USD",
              "GBP"
            ],
            "type": "string",
            "description": "Currency of the prices shown on the search results.",
            "default": "EUR"
          },
          "priceMin": {
            "title": "Min price per night",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Lowest price per night, in the currency above. 0 = no minimum.",
            "default": 0
          },
          "priceMax": {
            "title": "Max price per night",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Highest price per night, in the currency above. 0 = no maximum.",
            "default": 0
          },
          "roomTypes": {
            "title": "Type of place",
            "type": "array",
            "description": "Only these kinds of place. Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "entire_home",
                "private_room",
                "shared_room",
                "hotel_room"
              ],
              "enumTitles": [
                "Entire home",
                "Private room",
                "Shared room",
                "Hotel room"
              ]
            },
            "default": []
          },
          "propertyTypes": {
            "title": "Property type",
            "type": "array",
            "description": "Only these kinds of property (Airbnb filter). Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "house",
                "apartment",
                "guesthouse",
                "hotel"
              ],
              "enumTitles": [
                "House",
                "Apartment",
                "Guesthouse",
                "Hotel"
              ]
            },
            "default": []
          },
          "minBedrooms": {
            "title": "Min bedrooms",
            "minimum": 0,
            "maximum": 20,
            "type": "integer",
            "description": "Only listings with at least this many bedrooms. 0 = any.",
            "default": 0
          },
          "minBeds": {
            "title": "Min beds",
            "minimum": 0,
            "maximum": 20,
            "type": "integer",
            "description": "Only listings with at least this many beds. 0 = any.",
            "default": 0
          },
          "minBathrooms": {
            "title": "Min bathrooms",
            "minimum": 0,
            "maximum": 20,
            "type": "integer",
            "description": "Only listings with at least this many bathrooms. 0 = any.",
            "default": 0
          },
          "superhostOnly": {
            "title": "Superhosts only",
            "type": "boolean",
            "description": "Only listings of Superhosts (Airbnb filter).",
            "default": false
          },
          "bookingPropertyTypes": {
            "title": "Booking.com property types",
            "type": "array",
            "description": "Kinds of properties a Booking.com search lists. Default: apartments, holiday homes and villas — the homes a tourist licence is for (a hotel has a licence of another register).",
            "items": {
              "type": "string",
              "enum": [
                "apartment",
                "holiday_home",
                "villa",
                "chalet",
                "country_house",
                "farm_stay",
                "guesthouse",
                "homestay",
                "bed_and_breakfast",
                "condo_hotel",
                "hotel",
                "hostel"
              ],
              "enumTitles": [
                "Apartments",
                "Holiday homes",
                "Villas",
                "Chalets",
                "Country houses",
                "Farm stays",
                "Guesthouses",
                "Homestays",
                "Bed and breakfasts",
                "Condo hotels",
                "Hotels",
                "Hostels"
              ]
            },
            "default": [
              "apartment",
              "holiday_home",
              "villa"
            ]
          },
          "onlyVerdicts": {
            "title": "Keep only these verdicts",
            "type": "array",
            "description": "Save only the listings whose verdict is one of these — e.g. `never_issued`, `not_in_register`, `other_property`, `over_capacity`, `national_mismatch`, `unknown_format` and `no_number` to get the suspicious listings only (the verdicts marked isSuspicious). Empty = every listing.",
            "items": {
              "type": "string",
              "enum": [
                "valid",
                "never_issued",
                "not_in_register",
                "other_property",
                "over_capacity",
                "national_mismatch",
                "unknown_format",
                "no_number",
                "exempt_claimed",
                "other_register",
                "region_not_covered",
                "register_unavailable"
              ],
              "enumTitles": [
                "Valid: found in the register, same place, capacity within the authorised places",
                "Never issued: higher than any number the register ever issued",
                "Not in the register: well-formed but absent (withdrawn or invented)",
                "Other property: registered far from the listing, or in another region",
                "Over capacity: more guests than the authorised places",
                "National mismatch: the national number quotes another regional number",
                "Unknown format: text that is not a licence number of the region",
                "No number: the listing shows no registration number",
                "Exempt claimed: the listing says it is exempt (hotel, seasonal rental…)",
                "Other register: a hotel / apartment-block number, from a register not read here",
                "Region not covered: outside the six regions checked",
                "Register unavailable: the register could not be downloaded in this run"
              ]
            },
            "default": []
          },
          "regions": {
            "title": "Regions",
            "type": "array",
            "description": "Only listings located in these regions. Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "catalonia",
                "andalusia",
                "valencia",
                "mallorca",
                "canary_islands",
                "madrid",
                "other"
              ],
              "enumTitles": [
                "Catalonia",
                "Andalusia",
                "Valencian Community",
                "Mallorca",
                "Canary Islands",
                "Community of Madrid",
                "Elsewhere (not checked)"
              ]
            },
            "default": []
          },
          "hostType": {
            "title": "Host type",
            "enum": [
              "any",
              "business",
              "individual"
            ],
            "type": "string",
            "description": "Only listings of business hosts (companies and professionals, who must show their business details) or of individual hosts, as Airbnb labels them on the search results (on the listing page for listing URLs and IDs) — on Booking.com, as the host declared itself (professional or private).",
            "default": "any"
          },
          "minRating": {
            "title": "Min rating",
            "minimum": 0,
            "maximum": 5,
            "type": "number",
            "description": "Only listings rated at least this much out of 5 (Booking.com's score out of 10 is halved; listings without a rating are dropped). 0 = any.",
            "default": 0
          },
          "excludeKeywords": {
            "title": "Exclude keywords",
            "maxItems": 50,
            "uniqueItems": true,
            "type": "array",
            "description": "Drop the listings whose title contains one of these words (case and accents ignored).",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "gpsToleranceKm": {
            "title": "Distance tolerance",
            "minimum": 0.5,
            "maximum": 50,
            "type": "number",
            "description": "Airbnb blurs a listing's position by a few hundred metres. A register record farther than this from the listing (or the Booking.com property) gives the verdict `other_property` (registers that give a position: Andalusia, Mallorca, Canary Islands, Barcelona city).",
            "default": 1.5
          },
          "includeHostProfile": {
            "title": "Host's listing count",
            "type": "boolean",
            "description": "Airbnb: open the host's public profile (1 extra request per host, not per listing) for the number of listings they manage and their IDs. Charged per host profile (see Pricing). Booking.com shows no host profile.",
            "default": false
          },
          "onlyNew": {
            "title": "Only new listings",
            "type": "boolean",
            "description": "Skip the listings (and licence numbers) that a previous run (same **Memory name**) already delivered: they are not saved and not charged, and their page is not even opened. First run = everything is new.",
            "default": false
          },
          "memoryName": {
            "title": "Memory name",
            "pattern": "^[a-zA-Z0-9_-]{1,64}$",
            "maxLength": 64,
            "type": "string",
            "description": "Name of the memory used by **Only new listings**. Give each schedule / task its own name (e.g. `barcelona-weekly`) so that they do not share their memory. Letters, digits, `-` and `_`.",
            "default": "default"
          },
          "resetState": {
            "title": "Reset the memory",
            "type": "boolean",
            "description": "Forget everything remembered under this **Memory name** before the run: this run returns (and charges) every listing again. Untick it afterwards.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Apify Proxy or your own proxies, for the Airbnb and Booking.com pages. Keep the default: it is included in the price. The residential Apify proxy is not available in this Actor. The official registers are downloaded directly.",
            "default": {
              "useApifyProxy": true
            }
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Maximum number of Airbnb pages processed in parallel.",
            "default": 8
          },
          "maxRequestsPerMinute": {
            "title": "Max requests per minute",
            "minimum": 10,
            "maximum": 2000,
            "type": "integer",
            "description": "Most requests to Airbnb and Booking.com in any 60 seconds, all of them counted: search pages, listing pages and host profiles. A budget, not an even pace: up to this many can leave at once when the minute starts (spread them with the minimum delay below). Lower it if Airbnb or Booking.com answers HTTP 429 / 403 in the log.",
            "default": 120
          },
          "minRequestIntervalMs": {
            "title": "Min delay between requests",
            "minimum": 0,
            "maximum": 60000,
            "type": "integer",
            "description": "Smallest gap between two requests to Airbnb, in milliseconds. Unlike the per-minute rate, this spreads the requests evenly instead of letting them go out in a burst. 0 = no gap.",
            "default": 0
          },
          "maxRequestRetries": {
            "title": "Max request retries",
            "minimum": 0,
            "maximum": 20,
            "type": "integer",
            "description": "Retries per request before it is marked as failed. Behind a proxy, a request Airbnb turns away is also retried on a new proxy session up to 10 times without using up these retries.",
            "default": 5
          },
          "debugLog": {
            "title": "Debug log",
            "type": "boolean",
            "description": "Include debug messages in the run log.",
            "default": false
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}