Requirements
The integration API is available on the Growth plan. To get started, sign in to your dashboard, open Settings → Integrations, and generate an API key. Your raw key is shown only once — store it securely.
All requests go to the base URL https://www.snappyratings.com over HTTPS. Requests and responses are JSON.
Authentication
Authenticate every request with your API key as a bearer token in the Authorization header:
Authorization: Bearer sk_live_your_api_key_hereKeys are stored only as a one-way hash — we can never show a key again after it's generated. You can regenerate or revoke a key at any time from Settings → Integrations; the old key stops working immediately.
Verify a key
Confirms your key is valid and whether the integration is enabled for the account. Sends nothing and uses no credits — handy while setting things up.
Example
curl https://www.snappyratings.com/api/v1/ping \
-H "Authorization: Bearer sk_live_your_api_key_here"Response
{
"success": true,
"business": "Acme Dental",
"plan": "growth",
"accountActive": true,
"integrationEnabled": true
}Send an invite
Sends one review invite to a single customer by email or phone. The message, tracked review link, follow-up handling, and reporting all match what the dashboard sends. Each successful send counts against your monthly credits and skips excluded and unsubscribed/opted-out contacts.
Body parameters
| Field | Type | Description |
|---|---|---|
email | string | Required* Customer email address. Provide either email or phone — not both. |
phone | string | Required* Customer phone in E.164 (e.g. +15551234567). Sends by SMS. |
name | string | Optional Customer name. |
message | string | Optional Custom message text; falls back to your saved invite message. |
locationSlug | string | Optional Target a specific location's review link (multi-location accounts). |
Example (email)
curl -X POST https://www.snappyratings.com/api/v1/invite \
-H "Authorization: Bearer sk_live_your_api_key_here" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: appt-90210" \
-d '{ "email": "customer@example.com" }'Example (SMS)
curl -X POST https://www.snappyratings.com/api/v1/invite \
-H "Authorization: Bearer sk_live_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{ "phone": "+15551234567" }'Response
{ "success": true, "channel": "email" }Idempotency
Include an Idempotency-Key header with a unique value (for example, your internal appointment or order id) so a retried request can never send a second invite. If the same key is reused, the API responds { "success": true, "duplicate": true } without sending again. The key is released if the send fails, so genuine retries still work.
Rate limits
Each API key is limited to 120 requests per minute. Over the limit returns 429. Monthly send volume is governed by your plan's email and SMS credits.
Errors
Errors return a non-2xx status with a JSON body of the shape { "success": false, "error": "..." }.
| Status | Meaning |
|---|---|
400 | Invalid request body (e.g. missing or malformed email/phone). |
401 | Missing or invalid API key. |
403 | Account isn't on the Growth plan, or the subscription/trial isn't active. |
422 | The invite couldn't be sent (e.g. monthly quota reached, recipient excluded, unsubscribed, or opted out). |
429 | Rate limit exceeded. |
500 | Server error — safe to retry with the same Idempotency-Key. |
Webhooks
Growth accounts can also receive outbound event notifications. Set a webhook URL in Settings → Integrations and we'll POST a signed JSON payload to your HTTPS endpoint for events such as invite_sent, qr_scan, email_opened, sms_clicked, and private_feedback_received.
Each request includes an X-SnappyRatings-Signature: sha256=... header — an HMAC-SHA256 of the raw body using your webhook signing secret — so you can verify authenticity. Payloads look like:
{
"event": "invite_sent",
"data": { "type": "email", "contact": "customer@example.com" },
"timestamp": "2026-08-01T14:03:00.000Z"
}/api/v1/invite response as your source of truth for sends.No-code (Zapier / Make)
You don't need to write code. In Zapier or Make, add a Webhooks → POST action pointed at https://www.snappyratings.com/api/v1/invite, set the Authorization header to Bearer YOUR_API_KEY, and send a JSON body with the customer's email or phone. Trigger it from whatever event marks a job done in your other tools.
Questions? Contact us and we'll help you get connected.
