{
  "openapi": "3.0.1",
  "info": {
    "title": "Accor Room Rates Scraper",
    "description": "Scrape every room and rate plan an Accor hotel sells for your dates. Add hotel ids and get per-night and stay prices, taxes and fees, cancellation and prepayment policy, board, room size, beds, occupancy, member-rate discount and a day-by-day price calendar. $3.50 per 1,000 priced hotel-stays.",
    "version": "1.0",
    "x-build-id": "fJQR5KxcJWupxSfhm"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/boncross~accor-room-rates/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-boncross-accor-room-rates",
        "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-room-rates/runs": {
      "post": {
        "operationId": "runs-sync-boncross-accor-room-rates",
        "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-room-rates/run-sync": {
      "post": {
        "operationId": "run-sync-boncross-accor-room-rates",
        "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": {
          "hotels": {
            "title": "Hotels",
            "type": "array",
            "description": "Accor hotel ids (four characters, e.g. 0663, C185) or all.accor.com hotel URLs.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Start URLs (bulk upload)",
            "type": "array",
            "description": "Accor page addresses, with the option to load them in bulk from a file, a Google Sheet or a remote list. Use this when you have more links than you want to paste. Combined with anything in the list above.",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "maxItems": {
            "title": "Maximum hotel-stays for the whole run",
            "minimum": 0,
            "type": "integer",
            "description": "A run-wide ceiling on hotel-stays, across every hotel and stay. One hotel-stay is one row, or one row per room and rate plan with Flatten rates. Zero means no limit. Rows that report an input the actor could not resolve are not counted here and are never charged for.",
            "default": 0
          },
          "maxRows": {
            "title": "Maximum rows for the whole run",
            "minimum": 0,
            "type": "integer",
            "description": "A run-wide ceiling on rows. With Flatten rates a hotel-stay is one row per room and rate plan, so the last stay is cut to fit, keeping its cheapest rates, and is still charged as one hotel-stay. Works alongside Maximum hotel-stays: the run stops at whichever is reached first. Zero means no limit.",
            "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
          },
          "stays": {
            "title": "Several stays",
            "type": "array",
            "description": "Optional. Price more than one stay per hotel, as [{\"checkIn\": \"2026-11-11\", \"checkOut\": \"2026-11-13\"}]. Overrides the single check-in and check-out above.",
            "default": []
          },
          "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": []
          },
          "calendarDays": {
            "title": "Price calendar days",
            "minimum": 0,
            "maximum": 365,
            "type": "integer",
            "description": "Add a day-by-day calendar of the cheapest rate, starting at check-in, for this many days. 0 turns the calendar off.",
            "default": 0
          },
          "dayUse": {
            "title": "Day use",
            "type": "boolean",
            "description": "Price a daytime stay with no overnight instead of a normal booking.",
            "default": false
          },
          "hideMemberRate": {
            "title": "Public rates only",
            "type": "boolean",
            "description": "Return public rates instead of discounted loyalty member rates, so prices match what a signed-out visitor sees.",
            "default": false
          },
          "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."
          },
          "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, so the run tells you if no rate specific to it came back. 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."
          },
          "mealPlans": {
            "title": "Board types",
            "type": "array",
            "description": "Keep only these board types: BED_AND_BREAKFAST, EUROPEAN_PLAN (room only), HALF_BOARD, FULL_BOARD, ALL_INCLUSIVE. Empty keeps all.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "cancellationPolicies": {
            "title": "Cancellation policies",
            "type": "array",
            "description": "Keep only these policies: FREE_CANCELLATION, RESTRICTED_CANCELLATION, NO_CANCELLATION. Empty keeps all.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "accessibleOnly": {
            "title": "Accessible rooms only",
            "type": "boolean",
            "description": "Keep only rooms Accor marks as accessible.",
            "default": false
          },
          "freeCancellationOnly": {
            "title": "Free cancellation only",
            "type": "boolean",
            "description": "Keep only rate plans that can be cancelled free of charge.",
            "default": false
          },
          "breakfastOnly": {
            "title": "Breakfast included only",
            "type": "boolean",
            "description": "Keep only rate plans that include a meal plan.",
            "default": false
          },
          "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
          },
          "flattenRates": {
            "title": "One row per rate plan",
            "type": "boolean",
            "description": "Emit one dataset row per room and rate plan instead of one row per hotel-stay with a rates array.",
            "default": false
          },
          "includeHotel": {
            "title": "Include hotel details",
            "type": "boolean",
            "description": "Add the hotel name, brand, stars, guest rating, city and coordinates to every row. Costs one extra request per hotel.",
            "default": false
          },
          "includeRateTerms": {
            "title": "Include full rate terms",
            "type": "boolean",
            "description": "Add each rate's full terms: the price night by night, the complete cancellation, guarantee, modification and children policies as the hotel words them, and every tax line. Slower: one more request per stay.",
            "default": false
          },
          "currency": {
            "title": "Currency",
            "type": "string",
            "description": "ISO currency code for every price, for example USD, GBP, EUR, JPY. Default USD.",
            "default": "USD"
          },
          "countryMarket": {
            "title": "Country market",
            "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",
            "type": "string",
            "description": "Two-letter language for room names, rate names and policy text: en, fr, de, es, it, pt, nl, pl, ja, ko, zh, ru, tr, ar.",
            "default": "en"
          },
          "priceStoreName": {
            "title": "Price memory store",
            "type": "string",
            "description": "Name of a key-value store that remembers the last lowest 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 hotel-stays whose lowest price has not moved since the last run.",
            "default": false
          },
          "includeRawOffers": {
            "title": "Include raw offers",
            "type": "boolean",
            "description": "Add the untouched offer object to every rate, next to the mapped fields.",
            "default": false
          },
          "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
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}