GET

Accor Search API

Find Accor (ALL) hotels near a location, each with its best available offer for your dates.

Overview

Search returns live pricing

Unlike a metadata-only search, this endpoint returns each property's best available offer (price, meal plan, availability) for the requested dates in the same call. It therefore takes check-in / check-out dates, which default to today and tomorrow if you omit them.

The Accor Search endpoint covers all ALL — Accor Live Limitless properties (Sofitel, Fairmont, Raffles, Pullman, Novotel, Mercure, Ibis, Mövenpick, Swissôtel, plus partner hotels like Hard Rock). It returns distance-sorted properties with brand details, star classification, a guest-review summary, structured address, top amenities, distance from the search center, and the property\'s best offer.

Endpoint URL

GET https://api.stayapi.com/v1/accor/search

Parameters

Parameter Type Required Description
latitude float One of Latitude of search center (-90 to 90). Provide with longitude, or use destination_slug instead.
longitude float One of Longitude of search center (-180 to 180).
destination_slug string One of Accor destination slug, e.g. new-york-ny-usa. Alternative to latitude/longitude.
radius_km integer Optional Search radius in km (1-200), geo mode only. Default: 50
check_in date Optional Check-in date (YYYY-MM-DD). Default: today
check_out date Optional Check-out date (YYYY-MM-DD). Default: check-in + 1 night
adults integer Optional Number of adults (1-8). Default: 1
currency string Optional ISO-4217 currency code. Default: USD
country_market string Optional ISO-3166 alpha-2 market country (affects price/availability). Default: US
limit integer Optional Maximum properties to return (1-50). Default: 20
offset integer Optional Pagination offset (≥ 0). Default: 0

Pick one location mode

Provide either latitude + longitude (with optional radius_km) or a destination_slug. Omitting both returns a 400 MISSING_LOCATION error. For coordinates, geocode a place name first — for example, Times Square is approximately 40.758, -73.985.

Response Format

The response lists Accor hotels nearest-first, each with brand details, star rating, a guest-review summary, structured address, top amenities, distance from the search center, and the property\'s best available offer for the dates.

Response Structure

  • success: Boolean indicating request success
  • hotels: Array of hotel objects (sorted by distance)
  • total: Number of hotels returned
  • place: Resolved place (slug + center coordinates; populated in slug mode)
  • price_range: Min/max nightly price across the results

Hotel Object Fields

Field Type Description
id string Accor hotel id (a code like "C5U9" or "2185"). Use with the Rooms, Photos, and Price Calendar endpoints.
name string Hotel name
brand object Brand details (code, name) e.g., "Sofitel", "Fairmont"
lodging object Lodging type (code, name) e.g., "Hotel"
stars float Official star classification
rating float Guest-review score (0-5). May be null for some partner properties.
review_count integer Number of guest reviews
amenities array Top amenity codes (e.g., "PARKING", "PET", "RESTAURANT")
address object Structured address (street, city, postal_code, country, country_code)
distance_meters integer Distance from the search center, in meters (also distance_feet)
availability_status string "AVAILABLE" or "UNAVAILABLE" for the requested dates
best_offer object Cheapest offer for the dates: currency, amount, per_night, total, aggregation_type, formatted, tax_summary, meal_plan, nights. Null when the property has no priced offer.

No per-hotel coordinates

This upstream does not expose per-property latitude/longitude on search results — only distance_meters from the search center. Use the address fields for mapping, or the place.location center in slug mode.

Error Responses

The API returns standard HTTP error codes with detailed messages following the RFC 7807 Problem Details format.

400 Bad Request

Missing location (neither lat/lng nor destination_slug), or invalid/past dates.

{
  "type": "https://api.stayapi.com/errors/missing-location",
  "title": "Missing Location",
  "status": 400,
  "detail": "Provide either latitude+longitude or destination_slug",
  "provider": "accor",
  "product": "search",
  "error_code": "MISSING_LOCATION"
}

422 Unprocessable Entity

A parameter is out of range (e.g., bad coordinates, limit > 50).

502 Bad Gateway

Upstream service error from Accor.

Usage Tips

Best Practices

  • Take the id from each result and call the Rooms, Photos, or Price Calendar endpoints — the id works on all of them
  • Set currency and country_market to your guest\'s market — both affect price and availability
  • Results are sorted by distance (nearest first); bound the area with radius_km
  • A property with best_offer: null has no priced offer for those dates — try different dates

Rate Limiting

This endpoint is subject to your plan's rate limits. Each search counts as one API call regardless of the number of results returned.

Related Endpoints

Accor Rooms

Get bookable room offers and rate plans for a property

View Documentation →

Accor Price Calendar

See the cheapest offer per date across a window

View Documentation →
Request
curl -X GET "https://api.stayapi.com/v1/accor/search?latitude=40.758&longitude=-73.985&radius_km=15&currency=USD&limit=3" \
  -H "X-API-Key: YOUR_API_KEY"
Response
{
  "success": true,
  "total": 3,
  "place": {
    "slug": null,
    "location": { "latitude": null, "longitude": null }
  },
  "price_range": { "min": 36, "max": 1620 },
  "hotels": [
    {
      "id": "C5U9",
      "name": "Hard Rock Hotel New York - Partner of ALL Accor",
      "brand": { "code": "HAR", "name": "Hard Rock" },
      "lodging": { "code": "HTL", "name": "Hotel" },
      "stars": 4.5,
      "rating": null,
      "review_count": null,
      "amenities": ["PARKING", "PET", "RESTAURANT"],
      "address": {
        "street": "159 W 48 Street",
        "city": "New York",
        "postal_code": "10036",
        "country": "United States",
        "country_code": "US"
      },
      "distance_meters": 304,
      "distance_feet": 996,
      "availability_status": "AVAILABLE",
      "best_offer": {
        "currency": "USD",
        "amount": 405,
        "per_night": 405,
        "total": 405,
        "aggregation_type": "TOTAL_STAY",
        "formatted": "$405",
        "tax_summary": "Of which Urban Experience Fee : $46, taxes not included : $57.",
        "meal_plan": "EUROPEAN_PLAN",
        "nights": 1
      }
    }
  ]
}