{
  "openapi": "3.0.1",
  "info": {
    "title": "Airbnb & Booking Japan Licence Checker (旅館業 / 民泊)",
    "description": "Check the licence number of Airbnb listings and Booking.com properties in Japan — 旅館業 permit or 民泊 notification — against the official lists of Tokyo's 23 wards, Osaka and Kyoto: verdict, exact address with building and room, operator, phone, licence date — plus listing and host details.",
    "version": "0.0",
    "x-build-id": "kSuZ1jQVp6zxe4gJS"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/nice_dev~airbnb-japan-license-checker/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-nice_dev-airbnb-japan-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-japan-license-checker/runs": {
      "post": {
        "operationId": "runs-sync-nice_dev-airbnb-japan-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-japan-license-checker/run-sync": {
      "post": {
        "operationId": "run-sync-nice_dev-airbnb-japan-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": {
          "sources": {
            "title": "Platforms",
            "type": "array",
            "description": "Where the places and map areas are searched: Airbnb, Booking.com, or both. Booking.com shows the Japanese licence number on nearly every holiday flat (28 of 30 checked). Listing URLs and IDs are read on their own platform whatever this says.",
            "items": {
              "type": "string",
              "enum": [
                "airbnb",
                "booking"
              ],
              "enumTitles": [
                "Airbnb",
                "Booking.com"
              ]
            },
            "default": [
              "airbnb"
            ]
          },
          "startUrls": {
            "title": "Airbnb URLs",
            "maxItems": 1000,
            "type": "array",
            "description": "Airbnb listing URLs (`https://www.airbnb.com/rooms/12345`, any Airbnb domain such as airbnb.jp) and/or Airbnb search URLs (`https://www.airbnb.com/s/Shinjuku--Tokyo--Japan/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 property URLs",
            "maxItems": 1000,
            "uniqueItems": true,
            "type": "array",
            "description": "Booking.com property pages (`https://www.booking.com/hotel/jp/stay-ari-apartment.html`), one per line — checked in this order, before any search. Max 1 000.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "location": {
            "title": "Place",
            "maxLength": 200,
            "type": "string",
            "description": "A place in Japan, as typed in the platforms' search box (e.g. `Shinjuku, Tokyo`, `Asakusa`, `Osaka`, `Kyoto`). Searched on each platform of **Platforms**; each listing found is opened and its licence number (旅館業 permit or 民泊 notification) looked up in the official list of its ward or city."
          },
          "locations": {
            "title": "More places",
            "maxItems": 100,
            "uniqueItems": true,
            "type": "array",
            "description": "Several places in one run (one search each, max 100). Added to **Place**; a listing found by several searches is saved once.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "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. `35.685, 139.690, 35.705, 139.715` for central Shinjuku). The surest way to cover a whole ward: 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": "旅館業 permit numbers or 民泊 notification numbers checked in the official lists without any listing (e.g. `8新保衛環第61号`, `M130051741`, `第M130042017号`). One result per number (two spellings of one number are checked once). A 旅館業 number is looked up in the list of the ward its code names (新保 = Shinjuku…); a 民泊 number in every Tokyo ward list. Max 1 000.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "registerAreas": {
            "title": "Register lists: wards and cities",
            "type": "array",
            "description": "Every licensed hotel, inn and private lodging of these Tokyo wards (or Osaka, Kyoto) as the official lists publish them — address with building and room, operator, phone, date — without any Airbnb search. Newest first. Filtered by **Kind of licence** and **Licensed on or after**. The 民泊 lists of Minato, Shinagawa and Nerima ask not to be used for sales outreach: they are used to check numbers, not listed here.",
            "items": {
              "type": "string",
              "enum": [
                "chiyoda",
                "chuo",
                "minato",
                "shinjuku",
                "bunkyo",
                "taito",
                "sumida",
                "koto",
                "shinagawa",
                "meguro",
                "ota",
                "setagaya",
                "shibuya",
                "nakano",
                "suginami",
                "toshima",
                "kita",
                "arakawa",
                "itabashi",
                "nerima",
                "adachi",
                "katsushika",
                "edogawa",
                "osaka",
                "kyoto"
              ],
              "enumTitles": [
                "Chiyoda (千代田区)",
                "Chuo (中央区)",
                "Minato (港区)",
                "Shinjuku (新宿区)",
                "Bunkyo (文京区)",
                "Taito (台東区)",
                "Sumida (墨田区)",
                "Koto (江東区)",
                "Shinagawa (品川区)",
                "Meguro (目黒区)",
                "Ota (大田区)",
                "Setagaya (世田谷区)",
                "Shibuya (渋谷区)",
                "Nakano (中野区)",
                "Suginami (杉並区)",
                "Toshima (豊島区)",
                "Kita (北区)",
                "Arakawa (荒川区)",
                "Itabashi (板橋区)",
                "Nerima (練馬区)",
                "Adachi (足立区)",
                "Katsushika (葛飾区)",
                "Edogawa (江戸川区)",
                "Osaka city (大阪市)",
                "Kyoto city (京都市)"
              ]
            },
            "default": []
          },
          "maxItems": {
            "title": "Max results",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Maximum number of results (listings checked + licence numbers + register records) 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, map area or search URL) and each register list (ward or city), so that the first one cannot use up the whole **Max results** budget. 0 = no per-search cap, except for places searched on both Airbnb and Booking.com: `maxItems` is then shared evenly between the searches.",
            "default": 0
          },
          "splitMap": {
            "title": "Split full areas",
            "type": "boolean",
            "description": "Airbnb shows at most 270 listings (15 pages) per search. When a search is full, cut its map area into 4 smaller areas, again and again, to reach the listings beyond 270. Off = the first 270 of each search only.",
            "default": true
          },
          "checkIn": {
            "title": "Check-in date",
            "type": "string",
            "description": "Travel dates of the search (`2027-07-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 Japan): Airbnb shows nothing for a stay that has begun."
          },
          "checkOut": {
            "title": "Check-out date",
            "type": "string",
            "description": "End of the stay (`2027-07-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": [
              "JPY",
              "USD",
              "EUR"
            ],
            "type": "string",
            "description": "Currency of the prices shown on the search results.",
            "default": "JPY"
          },
          "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, guesthouses and homestays — the places a 民泊 notification or a small 旅館業 permit is for. Hotels and hostels hold a 旅館業 permit of the same ward lists: they can be checked too.",
            "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",
              "guesthouse",
              "homestay"
            ]
          },
          "registeredAfter": {
            "title": "Licensed on or after",
            "type": "string",
            "description": "Only places licensed (permit or notification date) on this date or later (`2026-01-01`): the new operators of the ward. Empty = all."
          },
          "licenseTypes": {
            "title": "Kind of licence",
            "type": "array",
            "description": "Only these kinds of licence: in the register lists, and for listings the kind of number they show. Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "ryokan",
                "minpaku",
                "tokku"
              ],
              "enumTitles": [
                "Hotels and inns (旅館業)",
                "Private lodging (民泊, 住宅宿泊事業)",
                "Special zone private lodging (特区民泊)"
              ]
            },
            "default": []
          },
          "onlyVerdicts": {
            "title": "Keep only these verdicts",
            "type": "array",
            "description": "Save only the listings whose verdict is one of these — e.g. `not_in_register`, `closed`, `other_property`, `over_capacity`, `unknown_format` and `no_number` to get the suspicious listings only (the verdicts marked isSuspicious). Empty = every listing.",
            "items": {
              "type": "string",
              "enum": [
                "valid",
                "closed",
                "not_in_register",
                "other_property",
                "over_capacity",
                "unknown_format",
                "no_number",
                "exempt_claimed",
                "not_yet_listed",
                "region_not_covered",
                "register_unavailable"
              ],
              "enumTitles": [
                "Valid",
                "Closed (in a closures list)",
                "Not in the official list",
                "Another ward's or place's number",
                "More guests than allowed",
                "Unreadable number",
                "No number shown",
                "Says it is exempt",
                "Newer than the published list",
                "No list with numbers for this place",
                "List unavailable"
              ]
            },
            "default": []
          },
          "regions": {
            "title": "Wards and cities",
            "type": "array",
            "description": "Only listings located in these Tokyo wards or cities (a licence number or register record: the ward of its list). Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "chiyoda",
                "chuo",
                "minato",
                "shinjuku",
                "bunkyo",
                "taito",
                "sumida",
                "koto",
                "shinagawa",
                "meguro",
                "ota",
                "setagaya",
                "shibuya",
                "nakano",
                "suginami",
                "toshima",
                "kita",
                "arakawa",
                "itabashi",
                "nerima",
                "adachi",
                "katsushika",
                "edogawa",
                "osaka",
                "kyoto",
                "other"
              ],
              "enumTitles": [
                "Chiyoda (千代田区)",
                "Chuo (中央区)",
                "Minato (港区)",
                "Shinjuku (新宿区)",
                "Bunkyo (文京区)",
                "Taito (台東区)",
                "Sumida (墨田区)",
                "Koto (江東区)",
                "Shinagawa (品川区)",
                "Meguro (目黒区)",
                "Ota (大田区)",
                "Setagaya (世田谷区)",
                "Shibuya (渋谷区)",
                "Nakano (中野区)",
                "Suginami (杉並区)",
                "Toshima (豊島区)",
                "Kita (北区)",
                "Arakawa (荒川区)",
                "Itabashi (板橋区)",
                "Nerima (練馬区)",
                "Adachi (足立区)",
                "Katsushika (葛飾区)",
                "Edogawa (江戸川区)",
                "Osaka city (大阪市)",
                "Kyoto city (京都市)",
                "Elsewhere (not covered)"
              ]
            },
            "default": []
          },
          "holderType": {
            "title": "Operator",
            "enum": [
              "any",
              "person",
              "company"
            ],
            "type": "string",
            "description": "Only results whose licensed operator (営業者 / 届出者) is a private person or a company (株式会社, 合同会社…), as the list names it. A list without the operator, or with the name hidden, matches neither.",
            "default": "any"
          },
          "onlyWithPhone": {
            "title": "Phone only",
            "type": "boolean",
            "description": "Only results with a phone number in the official list (the place's, the operator's or the 民泊 manager's; about half of the Tokyo lists publish one).",
            "default": false
          },
          "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).",
            "default": "any"
          },
          "minRating": {
            "title": "Min rating",
            "minimum": 0,
            "maximum": 5,
            "type": "number",
            "description": "Only listings rated at least this much out of 5 (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 licence of another ward whose border is farther than this from the listing, or a listed place farther than this (lists with a position: Taito, Minato 民泊, Osaka), gives the verdict `other_property`.",
            "default": 1.5
          },
          "includeHostProfile": {
            "title": "Host's listing count",
            "type": "boolean",
            "description": "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).",
            "default": false
          },
          "includeCalendar": {
            "title": "Availability calendar (12 months)",
            "type": "boolean",
            "description": "Read each Airbnb listing's calendar (1 extra request per listing): nights open and nights booked or blocked from today to the end of the 11th month after this one (Airbnb's 12 calendar months), per month and per day, and whether it is open more than the 180 nights a year a 民泊 may host. Charged per listing whose calendar reaches your results (see Pricing).",
            "default": false
          },
          "includeRevenueEstimate": {
            "title": "Revenue estimate (12 months)",
            "type": "boolean",
            "description": "Estimate the revenue of each Airbnb listing from its availability calendar: the nights the calendar shows as not open (booked, or closed by the host — Airbnb does not tell them apart) × the price per night of the dates searched, with the share of the calendar that is blocked. An estimate, not what the host earned. Needs **Check-in date** and **Check-out date** (the price per night comes from a search with dates; a listing given by URL or ID has none) and reads the calendar too, charged as **Availability calendar**. A listing without a price per night gets no estimate and is not charged for one. Charged per listing whose row carries its estimate (see Pricing).",
            "default": false
          },
          "includeComparables": {
            "title": "Comparable listings",
            "type": "boolean",
            "description": "Add, to each Airbnb listing, the Airbnb listings around it: the nearest ones of the same type of place and within one bedroom of it (up to **Max comparables per listing**), each with its price per night, rating, bedrooms and distance, and the median price per night of them. Read from the cards of a search around the listing: no listing page is opened, and one search serves every listing of the same area, type of place and size. A listing whose position or type is unknown, or an entire home whose bedrooms are unknown, gets none. Give **Check-in date** and **Check-out date** to get prices: without dates the comparables have no price and there is no median. Charged per listing whose row carries comparables (see Pricing).",
            "default": false
          },
          "maxComparablesPerListing": {
            "title": "Max comparables per listing",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Most comparable listings kept for each listing (**Comparable listings**): the nearest ones.",
            "default": 10
          },
          "cardsOnly": {
            "title": "Cards only (fast)",
            "type": "boolean",
            "description": "Deliver the card of each Airbnb search result — link, title, type of place, price, rating, position, bedrooms — without opening the listing: faster and cheaper, but no licence number, no verdict, nothing from the official lists. Charged per card (see Pricing), nothing else is charged in this mode. Needs a place, a map area or an Airbnb search URL. Not compatible with the options that read the listing (host profile, calendar, risk score, revenue estimate, comparables, AI labels), with Airbnb listing URLs and IDs, Booking.com, licence numbers and whole lists of wards, nor with the host type filter and the filters on verdicts, regions, operator, phone and kind of licence.",
            "default": false
          },
          "downloadPhotos": {
            "title": "Download photos",
            "type": "boolean",
            "description": "Download the first photos of each listing into this run's key-value store and give their public links, their SHA-256 and the time of the download: a dated copy of what the listing showed that day. The links in **Photos** (`images`) stay in every run for free. A photo that cannot be had (gone, too big, not an image) is left out and not charged. Charged per photo delivered (see Pricing). Not available with **Cards only (fast)**.",
            "default": false
          },
          "maxPhotosPerListing": {
            "title": "Max photos per listing",
            "minimum": 1,
            "maximum": 30,
            "type": "integer",
            "description": "Photos downloaded for each listing (**Download photos**): the first ones of the listing.",
            "default": 5
          },
          "includeBusinessContact": {
            "title": "Business contact (Booking.com)",
            "type": "boolean",
            "description": "For a Booking.com property run by a professional host (a company), add the business e-mail and phone its page shows: `businessEmail` and `businessPhone`. Only professional hosts have them, a private host's contact is not given. The contact Airbnb's business block shows stays in every run for free; the official lists give none. Charged per Booking.com property whose row carries an e-mail or a phone (see Pricing). Not available with **Cards only (fast)**.",
            "default": false
          },
          "includeProHostContact": {
            "title": "Professional host contact",
            "type": "boolean",
            "description": "Add the business e-mail and phone of professional Airbnb hosts, from publicly available sources, with the page each comes from and a confidence: `proHostEmails`, `proHostPhones`, `proHostContactSourceUrl`, `proHostContactConfidence`. A host is looked up only when a company name is known (the business name Airbnb gives, or a host or co-host whose name is a company's), never under a person's name, whatever the type of host or the number of listings; a name with no Latin letters (株式会社…) cannot be looked up. Charged per listing whose row carries a contact (see Pricing); a listing with none is delivered as it is, not charged. Not available with **Cards only (fast)**.",
            "default": false
          },
          "includeRiskScore": {
            "title": "Risk score (0-100)",
            "type": "boolean",
            "description": "Give each Airbnb listing and Booking.com property a risk score from 0 to 100 and the short codes of the rules behind it: the verdict first, then a number shown by several listings, a registered address far from the listing, an entire home, a host who manages several listings (needs **Host's listing count**), a calendar open past the 180 nights a year a 民泊 may host (needs **Availability calendar**) and a professional host. A rule whose data is not read is skipped and named, never counted as a risk. No extra request. Charged per listing whose row carries a score (see Pricing); a row whose register could not be read gets none and is not charged for it.",
            "default": false
          },
          "includeAiLabels": {
            "title": "AI labels (needs 2 GB of memory)",
            "type": "boolean",
            "description": "Label each Airbnb listing's description with five yes / no AI labels and their scores: managed by a company or a property manager, self check-in with a lockbox or a keypad, monthly or long stays (28 nights or more), host does not live in the home (a 民泊 run by an absent host), mentions a licence or a permit. English descriptions only: a description in Japanese or any other language, a Booking.com property and a listing without a description get none. The labels are read in the text of the description, they are indications, not facts. Needs 2 GB of memory (Run options → Memory): with less, the AI labels are skipped, said in the log, and nothing is charged. The descriptions are read one at a time, so a run with this option is slower. Charged per listing whose row carries its labels (see Pricing).",
            "default": false
          },
          "onlyNew": {
            "title": "Only new listings",
            "type": "boolean",
            "description": "Skip the listings (licence numbers, register records) that a previous run (same **Memory key**) already delivered: they are not saved and not charged, and their page is not even opened. First run = everything is new.",
            "default": false
          },
          "stateKey": {
            "title": "Memory key",
            "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 key (e.g. `shinjuku-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 key** 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 (the official lists are public files, read directly). Keep the default: it is included in the price. The residential Apify proxy is not available in this Actor.",
            "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 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 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}