Skip to content

GET /v1/places/:placeId ​

Returns the rich detail for one place — a food and beverage venue, an attraction, or a hotel. The list responses stay lean; this endpoint fills in the editorial copy, media, menu, recognition, and booking links.

http
GET /v1/places/:placeId
Authorization: Bearer <token>

Path and query ​

ParameterTypeRequiredNotes
placeIdstringyesOverlook place id, from a placeId in a list item or the hotel object. A namespaced id is normalized to its bare form.
hotelPlaceIdstringnoReference hotel; when supplied, distanceFromHotel is computed in miles.
bash
curl -s "https://api.overlookhospitality.com/v1/places/4484774505543785?hotelPlaceId=123456" \
  -H "Authorization: Bearer $OVERLOOK_TOKEN"

Response 200 OK ​

One shape for every place. Whatever the place has is populated; the rest is empty/null. A place that is both a hotel and a restaurant comes back with the hotel fields and the food fields.

json
{
  "place": {
    "placeId": "4484774505543785",
    "name": "Scales Food",
    "category": ["food"],
    "subCategories": ["seafood"],
    "tags": ["Outdoor seating"],
    "shortDescription": "Seafood house",
    "longDescription": "A waterfront seafood house with a raw bar and harbor views.",
    "foodDescription": "Raw bar and chowder.",
    "ambianceDescription": "Harbor views and a lively bar.",
    "storyDescription": "Opened on Portland Pier in 2013.",
    "reviewSummary": "Reviewers praise the oysters and the harbor views.",
    "imageUrls": ["https://…"],
    "imageUrl": "https://…",
    "website": "https://scalesfood.com/",
    "reservationUrl": "https://www.opentable.com/r/scales-food-portland",
    "phone": "+1 207-555-0100",
    "openHours": {
      "sunday": null,
      "monday": ["11:30-22:00"],
      "tuesday": ["11:30-22:00"],
      "wednesday": ["11:30-22:00"],
      "thursday": ["11:30-22:00"],
      "friday": ["11:30-22:00"],
      "saturday": ["11:30-22:00"]
    },
    "timezone": "America/New_York",
    "layers": ["michelin"],
    "aggregateRating": 4.6,
    "reviewCount": 2103,
    "ratingsBySource": [
      {
        "provider": "opentable",
        "rating": 4.7,
        "count": 16777,
        "url": "https://www.opentable.com/r/scales-food-portland"
      }
    ],
    "address": "2 Portland Pier",
    "locality": "Portland",
    "region": "ME",
    "postalCode": "04101",
    "country": "USA",
    "latitude": 43.6567,
    "longitude": -70.2531,
    "priceRange": "$$$",
    "neighborhoods": ["Old Port"],
    "recognition": [
      {
        "slug": "michelin",
        "name": "Michelin Guides",
        "shortName": "Michelin",
        "iconUrl": "https://…",
        "url": "https://guide.michelin.com/…"
      }
    ],
    "menu": [
      { "title": "Dinner", "items": [{ "name": "Chowder", "description": "Creamy", "price": 12 }] }
    ],
    "similarPlaces": [
      { "placeId": "…", "name": "Eventide Oyster Co.", "imageUrl": "https://…", "section": "foodAndBeverage" }
    ],
    "events": [{ "eventId": "…", "title": "Live Jazz", "date": "2026-10-07", "url": "https://…" }],
    "distanceFromHotel": 0.1
  }
}

The payload is a PlaceDetail. Collections are capped server-side: 12 images, 6 similar places, 5 events, and 6 menu sections × 20 items. There is no section field on the detail — the list item you clicked carries it, and it is a property of the list, not the place.

Provenance and attribution ​

We do not republish the content of the sources we aggregate. Instead, the detail points back to them:

  • ratingsBySource is one entry per review provider, each with a url to that provider's page. Link guests out rather than showing review text.
  • recognition is one entry per curated layer (Michelin, AAA, James Beard, Eater, …) with the layer's name, badge icon, and the source url.
  • reviewSummary is our own synthesized "what reviewers say" blurb.

Identity, location, contact, hours, and recognition come from our place data; descriptions, media, menu, and similar places come from our editorial data. aggregateRating/reviewCount are reconciled across sources.

Errors ​

All errors use the shared envelope and codes; see Errors. This route's own code is 404 place_not_found — no such place.

Overlook Hospitality API