Updated Oct 2026

Hospitable reviews API in Python: Airbnb, Booking.com and Vrbo reviews, replies

Hospitable’s Public API v2 gives a host the guest reviews of every property across Airbnb, Booking.com, Vrbo and direct bookings, with the public rating and text, and a one-shot respond endpoint. Authentication is a personal token, which keeps the code short; the trade-off is a reviews list with no date filter. This guide does it with requests, following developer.hospitable.com, which is also how Prisma’s Hospitable connector works (in beta, built from the docs). Guesty and Hostaway have their own guides; the sector view is on hotel reviews API.

Shell
pip install requests

Credentials: a Personal Access Token (my.hospitable.com → Apps → API access) with the reviews read and write scopes. The API needs a Host, Professional or Mogul plan.

1. Properties

Python
import os, requests

API = "https://public.api.hospitable.com/v2"
H = {"Authorization": f"Bearer {os.environ['HOSPITABLE_TOKEN']}", "Accept": "application/json", "Content-Type": "application/json"}

def paged(path, per_page=100, **params):
    page = 1
    while True:
        body = requests.get(f"{API}{path}", headers=H, params={"page": page, "per_page": per_page, **params}, timeout=30).json()
        yield from body.get("data", [])
        meta = body.get("meta") or {}
        if meta.get("current_page", page) >= meta.get("last_page", page) or not body.get("data"):
            break
        page += 1

props = list(paged("/properties"))
for p in props:
    print(p["id"], p.get("public_name") or p.get("name"), (p.get("address") or {}).get("display"))
PROPERTY = props[0]["id"]

2. Reviews of a property

Python
for r in paged(f"/properties/{PROPERTY}/reviews", per_page=50, include="guest"):
    pub = r.get("public") or {}
    g = r.get("guest") or {}
    author = " ".join(x for x in [g.get("first_name"), (g.get("last_name") or "")[:1] and f"{g['last_name'][0]}."] if x) or None
    print(r["id"], r.get("platform"), pub.get("rating"), r.get("reviewed_at"), author, (pub.get("review") or "")[:80],
          "| responded" if (pub.get("response") or "").strip() else "", "| can respond" if r.get("can_respond") else "")

Fields: id, platform (airbnb, booking, vrbo, direct), public.rating (1 to 5), public.review (the guest’s text), public.response (yours), reviewed_at, responded_at, can_respond, guest (first and last name, language, when include=guest) and listing.platform_id (the Airbnb listing id, so https://www.airbnb.com/rooms/<id> links to it). Pages are 50 at most, with meta.current_page and meta.last_page; there’s no date filter and no documented order, so a sync reads every page and keeps what’s newer than the last check.

3. Respond (once, while the window is open)

Python
if r.get("can_respond"):
    requests.post(f"{API}/reviews/{r['id']}/respond", headers=H, json={"response": "Thank you, Laura! The new coffee machine is in for your next stay."}, timeout=30).raise_for_status()

One response per review, inside the channel’s window (30 days on Airbnb); it can’t be edited or removed. Errors come back with a message or reason_phrase.

4. The same job through Prisma

Prisma connects a Hospitable account with the token (checked before storing, encrypted), imports properties as locations, syncs reviews with the guest’s name and the channel, and publishes responses through /respond only while can_respond is true, reading the review back after a dropped request. One key covers Hospitable, Guesty and Hostaway plus Google, Tripadvisor, Expedia and 50+ other platforms, with a webhook per new review.

Python
H = {"Authorization": f"Bearer {os.environ['PRISMA_API_KEY']}"}
r = requests.get("https://api.prismareviews.com/v1/reviews", headers=H, params={"platform": "hospitable", "has_reply": "false", "limit": 100}, timeout=30)
for rev in r.json()["data"]:
    print(rev["rating"], rev["author"], rev["text"], rev["url"])
requests.post(f"https://api.prismareviews.com/v1/reviews/{rev['id']}/reply", headers=H, json={"text": "Thank you, Laura! The new coffee machine is in for your next stay."}, timeout=30).raise_for_status()

Hospitable is in beta in Prisma. Connection fields: Platforms. A test key returns sample reviews so the code runs now.

FAQ

Which Hospitable plan includes the API?

Host, Professional or Mogul. You create a Personal Access Token in my.hospitable.com → Apps → API access with the reviews read and write scopes; a 401 usually means the scopes are missing or the plan doesn’t include API access.

Can I reply to a guest review through Hospitable?

Yes, once per review, while the review’s can_respond flag is true (the channel’s window, 30 days on Airbnb): POST /reviews/{uuid}/respond with the response text. It can’t be edited or removed afterwards.

Does the Hospitable reviews endpoint support date filters?

No. It pages 50 at a time with no date filter and no documented order, so read every page per property on each sync and keep what’s newer than your last check (reviewed_at and responded_at).

Hospitable, Guesty, Hostaway and Google, one key.

Get API key

2 locations free. Test keys return sample reviews from every platform.

Get your API key in a minute

Free Spark plan: 2 locations, no card. Test keys return sample data on all 62 platforms, so you can build before connecting a real one.