{
  "openapi": "3.0.1",
  "info": {
    "title": "Accor Hotel Search Scraper",
    "description": "Scrape Accor hotel prices for any destination and dates. Just add a city and dates and get every Sofitel, Pullman, Novotel, Mercure and ibis with nightly and stay prices, member rate, breakfast flag, stars, guest rating, coordinates and distance. $0.80 per 1,000 hotels.",
    "version": "1.0",
    "x-build-id": "UnPNtcXi9fliowg3U"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/boncross~accor-search/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-boncross-accor-search",
        "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/boncross~accor-search/runs": {
      "post": {
        "operationId": "runs-sync-boncross-accor-search",
        "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/boncross~accor-search/run-sync": {
      "post": {
        "operationId": "run-sync-boncross-accor-search",
        "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": {
          "destinations": {
            "title": "Destinations",
            "type": "array",
            "description": "Where to search. Use \"City, Country\" (\"Paris, France\", \"Tokyo, Japan\"), an Accor destination slug (\"paris-france\"), or coordinates as \"lat,lng,metres\" (\"35.6812,139.7671,5000\").",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "hotelIds": {
            "title": "Hotel ids",
            "type": "array",
            "description": "Optional. Price a specific set of Accor hotels instead of (or as well as) a destination. Four-character ids such as 0663 or C185, or all.accor.com hotel URLs.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "maxResultsPerDestination": {
            "title": "Max hotels per destination",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Stop after this many hotels per destination.",
            "default": 100
          },
          "maxItems": {
            "title": "Maximum results for the whole run",
            "minimum": 0,
            "type": "integer",
            "description": "A run-wide ceiling across every target. The per-target limit above applies to each one separately, so ten targets at 50 each returns 500; set this to cap the total. Zero means no run-wide limit. Rows that report an input the actor could not resolve are not counted here and are never charged for.",
            "default": 0
          },
          "checkIn": {
            "title": "Check-in",
            "type": "string",
            "description": "Arrival date, YYYY-MM-DD. Leave empty to use \"Check-in days ahead\".",
            "default": ""
          },
          "checkOut": {
            "title": "Check-out",
            "type": "string",
            "description": "Departure date, YYYY-MM-DD. Leave empty to use \"Nights\".",
            "default": ""
          },
          "checkInDaysAhead": {
            "title": "Check-in days ahead",
            "minimum": 0,
            "maximum": 500,
            "type": "integer",
            "description": "Used when Check-in is empty: arrive this many days from today. Handy for scheduled runs.",
            "default": 30
          },
          "nights": {
            "title": "Nights",
            "minimum": 1,
            "maximum": 30,
            "type": "integer",
            "description": "Used when Check-out is empty. 1 to 30.",
            "default": 2
          },
          "adults": {
            "title": "Adults",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Adults in the room.",
            "default": 2
          },
          "childrenAges": {
            "title": "Children ages",
            "type": "array",
            "description": "One entry per child, in years. Leave empty for an adults-only stay.",
            "default": []
          },
          "dayUse": {
            "title": "Day use",
            "type": "boolean",
            "description": "Price a daytime stay with no overnight instead of a normal booking.",
            "default": false
          },
          "memberRateOnly": {
            "title": "Member rate only",
            "type": "boolean",
            "description": "Keep only hotels whose cheapest offer is a loyalty member rate.",
            "default": false
          },
          "promotionsOnly": {
            "title": "Promotions only",
            "type": "boolean",
            "description": "Keep only hotels with a promotional rate for your dates, Accor's \"Promotion\" filter.",
            "default": false
          },
          "loyaltyHotelsOnly": {
            "title": "ALL loyalty hotels only",
            "type": "boolean",
            "description": "Keep only hotels where ALL Accor points can be earned and spent, Accor's own loyalty filter. Applied by Accor.",
            "default": false
          },
          "preferentialCode": {
            "title": "Preferential code",
            "type": "string",
            "description": "A preferential or promotional code, as entered in Accor's \"Special rates\" box. Accor does not check these codes: one it does not recognise, or that does not apply to these hotels and dates, returns the ordinary rates, and the run log warns when no code-specific rate came back. Stored encrypted."
          },
          "clientCode": {
            "title": "Company client code",
            "type": "string",
            "description": "Your company's Accor client code (\"SC…\"), for your negotiated rates. Give the access code below too if your company uses one. Stored encrypted."
          },
          "accessCode": {
            "title": "Company access code",
            "type": "string",
            "description": "The access code that goes with your company client code. Stored encrypted."
          },
          "loyaltyCardNumber": {
            "title": "Loyalty or subscription card",
            "type": "string",
            "description": "Your ALL Accor loyalty or subscription card number, to see the rates your card gets. Stored encrypted, and never written to the results or the log."
          },
          "hideMemberRate": {
            "title": "Public rates only",
            "type": "boolean",
            "description": "Return the public rate instead of the discounted member rate, so prices match what a signed-out visitor sees.",
            "default": false
          },
          "sort": {
            "title": "Sort by",
            "enum": [
              "recommended",
              "price",
              "distance",
              "stars",
              "rating",
              "availability"
            ],
            "type": "string",
            "description": "Order of the results.",
            "default": "recommended"
          },
          "sortDirection": {
            "title": "Sort direction",
            "enum": [
              "ASC",
              "DESC"
            ],
            "type": "string",
            "description": "Ascending or descending.",
            "default": "ASC"
          },
          "stars": {
            "title": "Star ratings",
            "type": "array",
            "description": "Keep only these star classes. Leave empty to keep all.",
            "items": {
              "type": "string",
              "enum": [
                "0",
                "1",
                "2",
                "3",
                "4",
                "5"
              ],
              "enumTitles": [
                "Unclassified",
                "1 star",
                "2 stars",
                "3 stars",
                "4 stars",
                "5 stars"
              ]
            },
            "default": []
          },
          "brands": {
            "title": "Brands",
            "type": "array",
            "description": "Keep only these brands, by name or Accor code: \"ibis\" or IBH, \"Novotel\" or NOV, \"Sofitel\" or SOF, \"ibis Styles\" or IBS, \"Pullman\" or PUL, \"Raffles\" or RAF, and every other Accor brand. Empty keeps all.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "amenities": {
            "title": "Amenities",
            "type": "array",
            "description": "Keep only hotels with ALL of these, as ticking several boxes does on Accor's site. Applied by Accor.",
            "items": {
              "type": "string",
              "enum": [
                "PARKING",
                "ELECTRIC_CHARGING_TERMINAL",
                "SHUTTLE",
                "NON_SMOKING",
                "AIR_CONDITIONING",
                "IRON",
                "LAUNDRY",
                "WIFI",
                "BABY_SITTING",
                "FAMILY_FRIENDLY",
                "CHILD_FACILITIES",
                "BAR",
                "BREAKFAST",
                "RESTAURANT",
                "ROOM_SERVICE",
                "BUSINESS_CENTER",
                "CONVENTION_CENTER",
                "MEETING_ROOMS",
                "FITNESS",
                "HAMMAM",
                "JACUZZI",
                "MASSAGE",
                "SAUNA",
                "SPA",
                "POOL",
                "COFFEE_MACHINE",
                "TEA_MACHINE",
                "KITCHEN",
                "PRIVATIVE_BATHROOM",
                "PRIVATE_JACUZZI",
                "TENNIS",
                "GOLF",
                "DISABILITY_COMPLIANT",
                "HEARING_ROOM",
                "WHEELCHAIR_ACCESS",
                "ECO_CERTIFIED",
                "PET"
              ],
              "enumTitles": [
                "Car park",
                "Electric car recharging units",
                "Shuttle",
                "100% non-smoking property",
                "Air conditioning",
                "Iron",
                "Laundry / valet services",
                "Wi-Fi",
                "Babysitting on request",
                "Family friendly",
                "Services for children",
                "Bar",
                "Breakfast",
                "Restaurant",
                "Room service",
                "Business centre",
                "Connected to a convention centre",
                "Meeting rooms",
                "Fitness centre",
                "Hammam",
                "Jacuzzi",
                "Massage",
                "Sauna",
                "Spa",
                "Swimming pool",
                "Coffee machine",
                "Kettle",
                "Kitchen",
                "Private bathroom",
                "Private jacuzzi",
                "Tennis",
                "Golf",
                "Accessible room available",
                "Hearing impaired room",
                "Wheelchair accessible hotel",
                "Eco-certified",
                "Pets allowed"
              ]
            },
            "default": []
          },
          "lodgingTypes": {
            "title": "Property types",
            "type": "array",
            "description": "Keep only these property types. Applied by Accor.",
            "items": {
              "type": "string",
              "enum": [
                "HTL",
                "RST",
                "APT"
              ],
              "enumTitles": [
                "Hotel",
                "Resort hotel",
                "Aparthotel"
              ]
            },
            "default": []
          },
          "minRating": {
            "title": "Minimum guest rating",
            "minimum": 0,
            "maximum": 5,
            "type": "number",
            "description": "Keep hotels rated at least this, on the 5-point guest scale; 0 keeps all. Decimals such as 4.5 are applied exactly.",
            "default": 0
          },
          "minPricePerNight": {
            "title": "Minimum price per night",
            "minimum": 0,
            "type": "number",
            "description": "In the chosen currency. 0 means no minimum.",
            "default": 0
          },
          "maxPricePerNight": {
            "title": "Maximum price per night",
            "minimum": 0,
            "type": "number",
            "description": "In the chosen currency. 0 means no maximum.",
            "default": 0
          },
          "onlyAvailable": {
            "title": "Only available hotels",
            "type": "boolean",
            "description": "Drop hotels that are sold out or not bookable for the dates.",
            "default": true
          },
          "breakfastOnly": {
            "title": "Breakfast included only",
            "type": "boolean",
            "description": "Keep only hotels whose cheapest offer includes a meal plan.",
            "default": false
          },
          "currency": {
            "title": "Currency",
            "pattern": "^[A-Za-z]{3}$",
            "type": "string",
            "description": "ISO currency code for every price, for example USD, GBP, EUR, JPY. Default USD.",
            "default": "USD"
          },
          "countryMarket": {
            "title": "Country market",
            "pattern": "^[A-Za-z]{2}$",
            "type": "string",
            "description": "Two-letter country of the traveller. Accor uses it to pick the market, so it can change taxes and which rates are shown.",
            "default": "GB"
          },
          "language": {
            "title": "Language",
            "enum": [
              "en",
              "fr",
              "de",
              "es",
              "it",
              "pt",
              "nl",
              "pl",
              "ja",
              "ko",
              "zh",
              "ru",
              "tr",
              "ar"
            ],
            "type": "string",
            "description": "Language for names, descriptions and labels.",
            "default": "en"
          },
          "priceStoreName": {
            "title": "Price memory store",
            "type": "string",
            "description": "Name of a key-value store that remembers the last price per hotel and stay. Set it once and every run adds the previous price and the change.",
            "default": ""
          },
          "onlyNewOrChanged": {
            "title": "Only new or changed prices",
            "type": "boolean",
            "description": "With a price memory store set, skip hotels whose price has not moved since the last run.",
            "default": false
          },
          "dedupStoreName": {
            "title": "Seen-hotels store",
            "type": "string",
            "description": "Name of a key-value store that remembers which hotels have already been returned, so scheduled runs output only hotels that are new to you.",
            "default": ""
          },
          "delayMs": {
            "title": "Delay between requests (ms)",
            "minimum": 0,
            "maximum": 10000,
            "type": "integer",
            "description": "Optional pause before each call, in milliseconds. 0 (the default) runs as fast as the parallel limit allows. Values above 2000 are treated as 2000.",
            "default": 0
          },
          "maxConcurrency": {
            "title": "Parallel requests",
            "minimum": 1,
            "maximum": 32,
            "type": "integer",
            "description": "How many requests run at once across the whole run. The default is the fastest level measured clean; lower it only if a run reports refusals or errors.",
            "default": 8
          },
          "includeRawOffer": {
            "title": "Include raw offer",
            "type": "boolean",
            "description": "Add the untouched offer object to every record, next to the mapped fields.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}