Agoo Reviews quick start
Make a Reviews key in your business area on agoo.reviews, read your reviews and score, reply, invite customers after a sale, keep a copy in step and receive signed webhooks.
This is a published preview. Names and fields may still change before general availability; changes will be listed in the changelog.
This walkthrough is for a business that uses Agoo Reviews on its own, without an Agoo organisation. You'll connect Coastline Consult's till to its page: read its reviews and score, post a reply, invite a customer after a sale, and keep a copy of the reviews in step. An Agoo organisation uses its ordinary keys from Console → Settings → Developers for the same Reviews operations, with the same requests.
Nothing you pay changes a review
No request hides, edits, reorders or deletes a review, and no level changes a score or a page. Keys read and answer your page; moderators decide what stays up.
What you need
- A claimed page on Agoo Reviews, and the owner or a manager role on it.
- Reviews Business for a live key and webhooks. A test key works on every level.
curl, Node.js 22.18 or later, or Python 3.10 or later.
Make a test key
On agoo.reviews, open your page's business area, select Developers and fill in:
- Name: "Till system"
- What it may do: Read reviews, scores, invitations and changes (
reviews:read), Reply to reviews (reviews:write) and Invite customers and make links (reviews:invite) - Branches: none ticked, for every branch; or tick the branches this key may use
- Live key: leave it unticked for now
Select Make the key and copy it. It's shown once, and starts with agoo_rk_test_:
export AGOO_API_KEY="agoo_rk_test_…" # paste your full keyA test key reads your page's real reviews and checks every reply and invitation exactly as a live key would, but saves and sends nothing, so nothing made up ever sits beside real reviews. Writes answer with "test": true.
Keys belong to the page, not to a person, and work from your servers only. Never put one in a website's code or an app.
Read your reviews and score
curl "https://api.agoohq.com/v1/reviews?limit=5&unanswered=true" \
-H "Authorization: Bearer $AGOO_API_KEY"
curl https://api.agoohq.com/v1/review-scores \
-H "Authorization: Bearer $AGOO_API_KEY"Each review carries its label (verified_visit, invited, phone_confirmed or email_confirmed: what Agoo checked about the person, never that it is true), place (the branch) and your reply. A reviewer appears as the page shows them, never with a contact detail. A key limited to some branches sees only theirs.
Reply to a review
curl -X POST https://api.agoohq.com/v1/reviews/review_01m6b3c4d5e6f7g8h9jkmnpqrs/reply \
-H "Authorization: Bearer $AGOO_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "body": "Thank you for telling us about the wait at the counter, Esi. We have added a second teller at lunchtime." }'Replies go through the same checks as replies written on agoo.reviews. A reply is your business's public voice: have a person read it before your system posts it.
Invite a customer after a sale
curl -X POST https://api.agoohq.com/v1/review-invitations \
-H "Authorization: Bearer $AGOO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"place_id": "rplace_01m6a2b3c4d5e6f7g8h9jkmnpq",
"customers": [{ "name": "Ama Owusu", "email": "ama@coastline.example" }],
"declared": true
}'- Invite everyone, or no one.
declared: truesays you invite every customer, never a chosen few. Never offer anything for a review. - Allowances: invitations count against your page's month (50 emails on Basic, 1,000 with Reviews Plus, 5,000 with Reviews Business). Texts to customers with no email need Reviews Plus and come from your SMS bundles.
- Left out: people invited in the last 90 days, people who asked not to be invited, and your own team. The answer says how many and why.
- Receipts:
POST /review-invitations/linksmakes single-use links to print on a receipt, each for one review within 30 days.
A review that comes from an invitation is labelled invited. Nothing tells you which invitation became which review.
Keep a copy in step
GET /review-changes lists every change to your page's reviews after a position, oldest first: published, updated, removed and replied. A review that left the page comes as a tombstone (its id and status, never its words), so your copy can drop it.
curl "https://api.agoohq.com/v1/review-changes?since=0&limit=100" \
-H "Authorization: Bearer $AGOO_API_KEY"Keep the last next_since and ask from it next time, or after an outage. Changes are kept 13 months, longer than events.
Receive webhooks
With Reviews Business, add an endpoint under Developers: its Endpoint address (public, HTTPS), the Events to send, then Add the endpoint. Copy Your signing secret, and select Send a test event.
Deliveries are signed the same way as an organisation's (verify signatures), retried on the same schedule, and carry business_id where an organisation's carry organisation_id:
{
"id": "evt_01m6b3c5a0f2n6tq4xbz7k9hdw",
"type": "review.published",
"created_at": "2026-10-14T10:02:01Z",
"business_id": "rbiz_01m6a1b2c3d4e5f6g7h8jkmnpq",
"livemode": true,
"data": {
"object": {
"id": "review_01m6b3c4d5e6f7g8h9jkmnpqrs",
"object": "review",
"place": { "id": "rplace_01m6a2b3c4d5e6f7g8h9jkmnpq", "name": "Osu", "town": "Accra" },
"status": "published",
"stars": 4,
"title": "Quick and friendly",
"label": "invited",
"reviewer_name": "Esi O.",
"url": "https://agoo.reviews/coastline-consult/osu"
}
}
}The events are review.published, review.updated, review.removed, review.replied, question.published, question.answered and business.facts_changed; see Reviews events. Return any 2xx within 15 seconds and de-duplicate on webhook-id.
Go live
Make a new key with Live key ticked (it starts with agoo_rk_live_), put it in your server's settings, and revoke the test key if you no longer need it. If your page leaves Reviews Business, live keys stop working and test keys carry on.
Limits
- Requests share your page's rate limits; each answer carries
RateLimit-*headers (see rate limits). - Reviews keys don't take
Idempotency-Key: an invitation to someone already invited is left out, and a reply replaces your earlier one. - Reviews keys can't flag a review. Flag one from Reviews and replies on agoo.reviews, where a moderator reads why.
Make your first API call
Create a test key, list your sites, invite a visitor with an idempotent request, read the visit back, and receive a signed test webhook.
Authentication
Authenticate with secret or publishable API keys for your own integrations, or with OAuth 2.1 and PKCE for apps that other organisations connect.