API reference
JSON over HTTPS. Errors return { "error": "…" } with a 4xx status.
The flow
QR scan → POST visits → POST rate (good → Google URL + POST google) | (bad → POST feedback → manager email)
Public — powers the customer review pages
No key. Called by the review pages on every client domain (reviews.mrniceguys.com/api/… works too). Use these to build a review flow on your own stack.
/api/public/orgs/:siteBranding and active stores for a client. :site is the custom domain or slug.
curl https://covrreviews.com/api/public/orgs/reviews.mrniceguys.com
/api/public/visitsOpen a visit when a QR is scanned. Returns visitId. Refreshes within 10 minutes reuse the open visit.
{ "site": "reviews.mrniceguys.com", "code": "K7Q2MX" }/api/public/visits/:id/rateRecord good/bad. Returns the store's Google review URL.
{ "sentiment": "good" }/api/public/visits/:id/googleCustomer tapped through to Google. Safe to send with navigator.sendBeacon.
/api/public/feedbackFile an unhappy-customer ticket and email the store's managers.
{ "visitId": "…", "name": "Dana", "phone": "503-555-0100", "email": "", "contactPreference": "text", "message": "Waited 20 minutes at pickup" }/api/qr/:code?format=svg|png&size=512QR image for an associate or counter code, encoding the client's review URL.
v1 — for integrations
Send Authorization: Bearer crv_… — create keys in Admin → Settings. Every call is scoped to the key's client.
/api/v1/locations· API keyStores, with counter QR URLs, Google review URLs and manager emails.
/api/v1/associates?location=<id|slug>· API keyAssociates with their codes, review URLs and QR image links.
/api/v1/associates· API keyAdd an associate (HR/POS sync). Generates their code.
{ "locationId": "…", "firstName": "Jordan", "lastName": "Lee", "payrollId": "1042" }/api/v1/feedback?status=new|contacted|resolved· API keyUnhappy-customer tickets, newest first.
/api/v1/stats?days=30&location=<id>· API keyTotals, daily series, per-store and per-associate rollups.
/api/v1/visits?since=<ISO>&limit=500· API keyRaw scan events for your warehouse. Page with the returned `next`.
curl -H "Authorization: Bearer $CRV_KEY" "https://covrreviews.com/api/v1/visits?since=2026-10-01T00:00:00Z"