GET /properties/{id}
API reference
GET /properties/{id}
Static property record. Use this for product pages, post-decision detail views, or to inspect amenities and OTA coverage. No idempotency key (read-only).
GET /v1/properties/{property_id}
| Parameter | Type | Description |
|---|---|---|
| property_idrequired | path | From /decide or /search/stays. Prefix prop_. |
| include | query | Comma-separated. reviews_aggregate (score + counts + per-OTA breakdown), reviews_sample (up to 5 review texts), reviews_extended (up to 20 review texts). Review data is opt-in. |
Static facts only — returns no price unless you pass check_in/check_out (with guests), which adds a live availability check. reviews_aggregate carries two distinct counts: rating_count (reviews behind the score) and comment_count (readable review texts, fetchable via reviews_sample/reviews_extended; usually far fewer). reviews_meta notes the deliberate cap on returned texts — the aggregate already reflects all reviews.
Request
curl "https://api.b2a.bluepillow.com/v1/properties/prop_abc123?include=reviews_aggregate,reviews_extended" \
-H "Authorization: Bearer $B2A_API_KEY" Response 200
{
"id": "prop_abc123",
"name": "Hotel Blue Sky",
"brand": "Rocco Forte",
"property_type": "hotel",
"rating": 4.7,
"stars": 5,
"location": {
"lat": 41.9097, "lon": 12.4801,
"address": "Via del Babuino 9",
"city": "Rome", "country": "IT",
"neighborhood": "Centro Storico"
},
"amenities": ["wifi", "spa", "restaurant", "bar", "breakfast"],
"images": [{"url": "https://...", "caption": "Lobby"}],
"reviews_aggregate": {
"score_0_5": 4.7,
"rating_count": 1843,
"comment_count": 312,
"distribution_by_ota": {"Booking": {"score": 4.7, "count": 1240}}
},
"reviews_sample": [
{"score": 5.0, "description": "Spotless rooms, superb staff.",
"language": "en", "date": "2026-04-18T09:12:00Z", "connector_name": "Booking"}
],
"reviews_meta": {"returned": 20, "total_available": 312, "capped": true, "cap": 20},
"ota_coverage": ["Booking", "Expedia", "Agoda"],
"dedup_meta": {"source_listings": 4, "confidence": 0.98, "last_reconciled": "2026-05-27T..."}
} Errors
401 authentication_failed · 404 not_found · 429 rate_limited