EscapeLifeDocs
Phase 4 · Available

Reviews

Ingest and manage guest reviews from TripAdvisor, Google, Booking.com, Airbnb, and direct channels. Track response status, sentiment, and sub-ratings to understand and act on guest feedback at scale.

The Review object

idstring

Unique review ID. Prefixed rev_.

property_idstring

Property this review belongs to.

guest_idstring?

Linked guest profile, if matched.

sourceenum

tripadvisor · google · booking · airbnb · internal · direct

sentimentenum

positive · neutral · negative

overall_ratingfloat

Overall rating (1.0–5.0).

cleanliness_ratingfloat?

Cleanliness sub-rating (1.0–5.0).

service_ratingfloat?

Service sub-rating (1.0–5.0).

location_ratingfloat?

Location sub-rating (1.0–5.0).

value_ratingfloat?

Value sub-rating (1.0–5.0).

titlestring?

Review headline.

bodystring?

Full review text.

responsestring?

Management response text.

responded_atdatetime?

When the management response was posted.

review_datedate

Date the review was written (YYYY-MM-DD).

is_publishedboolean

Whether the review is visible in the dashboard.

created_atdatetime

ISO 8601 timestamp.

Endpoints

POST/v1/reviewsIngest a review

Create a review record from an OTA or direct channel.

Request Body

sourcestringrequiredReview source: tripadvisor, google, booking, airbnb, internal, or direct.
overall_ratingnumberrequiredOverall rating from 1.0 to 5.0.
review_datestringrequiredDate of the review (YYYY-MM-DD).
sentimentstringpositive, neutral, or negative.
titlestringReview headline.
bodystringFull review content.
cleanliness_ratingnumberCleanliness sub-score (1.0–5.0).
service_ratingnumberService sub-score (1.0–5.0).
guest_idstringLink to a guest profile.
cURL
curl -X POST https://api.escapelife.ai/v1/reviews \
  -H "X-API-Key: sk_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "source": "tripadvisor",
    "overall_rating": 5,
    "cleanliness_rating": 5,
    "service_rating": 5,
    "title": "Exceptional stay — best resort experience",
    "body": "The spa team went above and beyond.",
    "review_date": "2026-03-15",
    "sentiment": "positive"
  }'
Response
{
  "id": "rev_ghi789",
  "property_id": "pty_xyz",
  "source": "tripadvisor",
  "sentiment": "positive",
  "overall_rating": 5.0,
  "cleanliness_rating": 5.0,
  "service_rating": 5.0,
  "title": "Exceptional stay — best resort experience",
  "body": "The spa team went above and beyond.",
  "response": null,
  "responded_at": null,
  "review_date": "2026-03-15",
  "is_published": true,
  "created_at": "2026-03-16T10:00:00Z"
}
GET/v1/reviewsList reviews

Return reviews for the property, sorted by review_date descending.

Path / Query Parameters

sourcestringFilter by source platform.
sentimentstringFilter by sentiment: positive, neutral, negative.
min_ratingnumberMinimum overall_rating to include.
max_ratingnumberMaximum overall_rating to include.
respondedbooleantrue returns only responded reviews; false returns unanswered.
limitintegerMax results (1–100). Default 20.
offsetintegerPagination offset. Default 0.
GET/v1/reviews/summaryReview summary

Return aggregate statistics: average ratings, sentiment distribution, and source breakdown.

Response
{
  "total": 124,
  "average_overall": 4.6,
  "average_cleanliness": 4.7,
  "average_service": 4.5,
  "by_sentiment": {
    "positive": 98,
    "neutral": 20,
    "negative": 6
  },
  "by_source": {
    "tripadvisor": 45,
    "google": 38,
    "booking": 27,
    "airbnb": 14
  },
  "unanswered": 12
}
GET/v1/reviews/{id}Retrieve a review

Fetch a single review by ID.

Path / Query Parameters

idstringrequiredReview ID (rev_...).
PATCH/v1/reviews/{id}/respondPost a management response

Add or update the management response for a review. Sets responded_at to the current time.

Path / Query Parameters

idstringrequiredReview ID (rev_...).

Request Body

responsestringrequiredThe management response text to post.
Respond to a review
curl -X PATCH https://api.escapelife.ai/v1/reviews/rev_ghi789/respond \
  -H "X-API-Key: sk_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{"response": "Thank you so much — we are thrilled the spa experience was the highlight of your stay. We look forward to welcoming you back!"}'