Developer API
Programmatically send review invites via our REST API. Perfect for CRM integrations and automation workflows.
⚡ The Developer API is available on paid plans (Starter, Franchise, Agency).
How It Works
- •One API key per account (not per page)
- •Specify
pageSlugin each request to target a specific review page - •Works with all your review pages (1 or 50+)
- •Each page uses its own email/SMS credentials (Resend/Twilio)
Getting Started
- •Go to Dashboard → Integrations → Developer API
- •Click "Generate API Key"
- •Copy and save your API key securely (you won't see it again)
- •Find your pageSlug in the URL of your review page:
https://your-domain.com/acme-plumbing ← This is your pageSlug
Send Invite Endpoint
POST /api/v1/inviteHeaders
Authorization: Bearer YOUR_API_KEY Content-Type: application/json
Request Body
{
"pageSlug": "acme-plumbing", // Required: Your review page slug
"channel": "email", // Required: "email" or "sms"
"contacts": [ // Required: Array of contacts
{
"name": "John Doe", // Required
"email": "john@example.com" // Required for email channel
// "phone": "+1234567890" // Required for sms channel
}
],
"template": "Hi {name}, review us: {link}" // Optional: Custom message
}Template variables: Use
{name} for customer name and {link} for review page URLResponse
{
"success": true,
"sent": 1,
"failed": 0,
"errors": []
}Code Examples
cURL
curl -X POST https://your-domain.com/api/v1/invite \
-H "Authorization: Bearer sk_live_xxx" \
-H "Content-Type: application/json" \
-d '{
"pageSlug": "acme-plumbing",
"channel": "email",
"contacts": [{"name": "John", "email": "john@example.com"}],
"template": "Hi {name}, review us: {link}"
}'JavaScript
const response = await fetch('/api/v1/invite', {
method: 'POST',
headers: {
'Authorization': 'Bearer sk_live_xxx',
'Content-Type': 'application/json'
},
body: JSON.stringify({
pageSlug: 'acme-plumbing',
channel: 'email',
contacts: [{ name: 'John', email: 'john@example.com' }],
template: 'Hi {name}, review us: {link}'
})
});
const data = await response.json();Python
import requests
response = requests.post(
'https://your-domain.com/api/v1/invite',
headers={
'Authorization': 'Bearer sk_live_xxx',
'Content-Type': 'application/json'
},
json={
'pageSlug': 'acme-plumbing',
'channel': 'email',
'contacts': [{'name': 'John', 'email': 'john@example.com'}],
'template': 'Hi {name}, review us: {link}'
}
)
data = response.json()Important Notes
- •Authentication: Include API key in Authorization header
- •Limits: Maximum 100 contacts per request
- •Plans: Available on Starter, Franchise, and Agency plans
- •Credentials: Uses the page's configured Resend/Twilio keys
- •Security: Keep your API key secret - treat it like a password