API

Read your reviews and publish replies from your own systems. Useful if you manage several venues and already have a dashboard, a reporting tool or an automation you would rather keep working in.

Agency plan

Getting a key

Sign in, open Settings and create a key under API access. The key is shown once, at that moment. We store only a hash of it, so we cannot show it to you again and a copy of our database would not give anyone a working key. Lost a key? Revoke it and make another.

Send it as a bearer token on every request:

Authorization: Bearer rzp_live_...

Base URL

https://upepsbyqqefdaygmjxie.supabase.co/functions/v1/api

Endpoints

GET/venues

Every venue on your account.

# request
curl https://upepsbyqqefdaygmjxie.supabase.co/functions/v1/api/venues \
  -H "Authorization: Bearer $REZPONA_KEY"

# response
{
  "venues": [
    {
      "id": "f08e032a-e92e-4f3a-a796-9d873dce2609",
      "name": "Trattoria Vista",
      "type": "restaurant",
      "autopilot": false,
      "created_at": "2026-09-24T20:06:55Z"
    }
  ]
}
GET/venues/{id}/reviews

Reviews for one venue, newest first. limit defaults to 50, maximum 200.

curl "https://upepsbyqqefdaygmjxie.supabase.co/functions/v1/api/venues/$VENUE/reviews?limit=20" \
  -H "Authorization: Bearer $REZPONA_KEY"

{
  "reviews": [
    {
      "id": "3c1f...",
      "google_review_id": "AbFvOq...",
      "author_name": "Marco Rossi",
      "rating": 4,
      "text": "Ottima cena, servizio un po' lento.",
      "sentiment": "positive",
      "topics": ["Food", "Wait time"],
      "review_created_at": "2026-09-29T11:04:00Z"
    }
  ]
}
POST/venues/{id}/reply

Publishes a reply to Google. Send reply_text to publish your own wording, or leave it out and Rezpona writes the reply itself, in the language the guest used.

curl -X POST https://upepsbyqqefdaygmjxie.supabase.co/functions/v1/api/venues/$VENUE/reply \
  -H "Authorization: Bearer $REZPONA_KEY" \
  -H "Content-Type: application/json" \
  -d '{"google_review_id": "AbFvOq..."}'

{ "ok": true, "reply": "Grazie mille! Sul servizio avete ragione, ci stiamo lavorando." }
POST/draft

Writes a reply and hands it back without touching Google. Nothing is published and nothing is stored, so this is the one to use inside your own tool when a person should read the reply before it goes out.

curl -X POST https://upepsbyqqefdaygmjxie.supabase.co/functions/v1/api/draft \
  -H "Authorization: Bearer $REZPONA_KEY" \
  -H "Content-Type: application/json" \
  -d '{"rating": 2, "comment": "La habitacion no estaba limpia.", "venue": "hotel"}'

{ "reply": "Lo siento mucho. Lo he hablado con el equipo. Escribidnos y lo arreglo." }

venue is restaurant, hotel or cafe and shapes the wording. rating and author are optional; without a rating the tone is judged from the text alone.

Errors

StatusMeaning
400A required field is missing, or the reply is longer than 4096 characters.
401Missing, unknown or revoked key.
402The account has used its replies for this month.
403The account is not on the Agency plan, or the subscription is not active.
404Unknown venue, or a review we have not seen yet. Sync reviews first, or pass reply_text.

Errors come back as JSON with an error field, and a message when there is something useful to say to a person.

Published replies count towards the account's monthly allowance, whether they were published from the dashboard or through this API. The Agency plan has no limit, but a key stops working if the subscription lapses.

Notes

Responses are JSON, UTF-8. Replies come back in the language the guest wrote in, which is detected from the original text rather than Google's translation of it.

Treat a key like a password: it acts on your account, it can publish to your Google Business Profile, and it belongs on your server rather than in a browser or a mobile app. Revoke it from Settings the moment you suspect it has leaked.