Build powerful integrations with our RESTful API. Manage advocates, automate rewards, track referrals, and sync customer data.
Generate an API key from your dashboard settings. Keep it secure - it grants access to your business data.
Go to API SettingsInclude your API key in the Authorization header of every request using Bearer token authentication.
Authorization: Bearer sk_live_...Start with a simple GET request to list your advocates. All responses are JSON formatted.
GET /api/v1/advocatesAll API requests should be made to:
All requests must be made over HTTPS. HTTP requests will be rejected.
Use Bearer token authentication with your API key:
Manage your advocate community
| Method | Endpoint | Description | Responses |
|---|---|---|---|
| GET | /api/v1/advocatesParams: page, limit, search, tier | List all advocates with pagination | 200: { advocates: [], total, page } |
| GET | /api/v1/advocates/:id | Get a single advocate by ID | 200: { advocate } | 404: Not found |
| POST | /api/v1/advocatesBody: { email, name, metadata } | Create a new advocate | 201: { advocate } | 400: Validation error |
| PATCH | /api/v1/advocates/:idBody: { name, tier, metadata } | Update an advocate | 200: { advocate } | 404: Not found |
| POST | /api/v1/advocates/:id/pointsBody: { amount, description, type } | Award or deduct points | 200: { transaction, newBalance } |
Manage rewards and redemptions
| Method | Endpoint | Description | Responses |
|---|---|---|---|
| GET | /api/v1/rewardsParams: status, type | List all rewards | 200: { rewards: [] } |
| GET | /api/v1/rewards/:id | Get reward details | 200: { reward } | 404: Not found |
| POST | /api/v1/rewardsBody: { name, description, pointsCost, type, stock } | Create a new reward | 201: { reward } | 400: Validation error |
| POST | /api/v1/rewards/:id/redeemBody: { advocateId } | Redeem a reward for an advocate | 200: { redemption } | 400: Insufficient points |
Manage campaigns and tasks
| Method | Endpoint | Description | Responses |
|---|---|---|---|
| GET | /api/v1/questsParams: status | List all quests | 200: { quests: [] } |
| GET | /api/v1/quests/:id | Get quest with tasks | 200: { quest, tasks: [] } | 404: Not found |
| POST | /api/v1/questsBody: { title, description, tasks, reward } | Create a new quest | 201: { quest } | 400: Validation error |
| POST | /api/v1/quests/:id/completeBody: { advocateId, taskId } | Mark a task as complete for an advocate | 200: { completion, pointsAwarded } |
Track referral clicks and conversions
| Method | Endpoint | Description | Responses |
|---|---|---|---|
| GET | /api/v1/referrals | List all referral codes | 200: { referrals: [] } |
| GET | /api/v1/referrals/:code/stats | Get referral statistics | 200: { clicks, conversions, revenue } |
| POST | /api/v1/referrals/trackBody: { code, visitorId } | Track a referral click | 200: { tracked: true } |
| POST | /api/v1/referrals/convertBody: { code, orderId, orderValue } | Track a conversion | 200: { conversion, pointsAwarded } |
Collect and manage testimonials
| Method | Endpoint | Description | Responses |
|---|---|---|---|
| GET | /api/v1/testimonialsParams: status, rating | List all testimonials | 200: { testimonials: [], total } |
| PATCH | /api/v1/testimonials/:idBody: { status } | Approve or reject a testimonial | 200: { testimonial } | 404: Not found |
Manage feedback boards and ideas
| Method | Endpoint | Description | Responses |
|---|---|---|---|
| GET | /api/v1/feedback/boards | List feedback boards | 200: { boards: [] } |
| GET | /api/v1/feedback/boards/:id/ideasParams: status, sort | List ideas in a board | 200: { ideas: [], total } |
| PATCH | /api/v1/feedback/ideas/:idBody: { status } | Update idea status | 200: { idea } | 404: Not found |
Single sign-on for seamless widget personalization
| Method | Endpoint | Description | Responses |
|---|---|---|---|
| POST | /api/v1/sso/recognizeBody: { businessId, externalCustomerId, timestamp, signature } | Recognize a customer via SSO token | 200: { advocateId, sessionToken } |
| GET | /api/v1/sso/mappings | List customer mappings | 200: { mappings: [] } |
| POST | /api/v1/sso/mappingsBody: { advocateId, externalCustomerId, externalEmail, externalName } | Create a customer mapping | 201: { mapping } | 400: Validation error |
| Plan | Requests/min | Requests/day |
|---|---|---|
| Starter | 30 | 1,000 |
| Growth | 60 | 10,000 |
| Professional | 120 | 100,000 |
Every response includes headers to help you track usage:
The API uses conventional HTTP response codes. Errors include a JSON body with details.
| 200 | Success |
| 201 | Created |
| 400 | Bad Request |
| 401 | Unauthorized |
| 403 | Forbidden |
| 404 | Not Found |
| 429 | Rate Limited |
| 500 | Server Error |
{
"error": {
"code": "VALIDATION_ERROR",
"message": "Email is required",
"field": "email"
}
}Receive real-time HTTP notifications when events happen in your account. Get notified about new reviews, advocates joining, reward redemptions, quest completions, survey responses, and more. Webhooks support retry logic and signature verification for secure integrations.
Official SDK for Node.js and browser environments.
Coming SoonOfficial SDK for Python applications.
Coming SoonOfficial SDK for PHP applications.
Coming Soon