Getting Started
Welcome to the Referral Reactor API. This guide walks you through everything you need to make your first successful API call — from obtaining credentials to reading the response.
Prerequisites
Before you begin, make sure you have:
- A Referral Reactor account on the Unlimited plan (API access is gated behind the
api_accessfeature) - Access to your organization's dashboard at app.referralreactor.com
curlor a JavaScript/TypeScript runtime (Node.js 18+) installed locally
Step 1: Obtain an API Key
Referral Reactor API keys are Clerk-issued bearer tokens scoped to your organization.
To get your API key:
- Sign in at app.referralreactor.com
- Navigate to Settings → API Keys
- Click Create API Key, give it a name, and select the scopes you need
- Copy the key — it will only be shown once
Your key will look something like:
rr_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Keep it secret. Never commit it to source control or expose it in client-side code.
Step 2: Make Your First Request
The GET /api/v1/health endpoint requires no authentication and is the simplest way to confirm the API is reachable.
curl
curl https://app.referralreactor.com/api/v1/health
To make an authenticated request (required for all other endpoints), pass your API key as a Bearer token:
curl https://app.referralreactor.com/api/v1/health \
-H "Authorization: Bearer rr_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
TypeScript / JavaScript
const BASE_URL = 'https://app.referralreactor.com';
const API_KEY = process.env.REFERRAL_REACTOR_API_KEY; // store in env, never hardcode
async function checkHealth(): Promise<void> {
const response = await fetch(`${BASE_URL}/api/v1/health`, {
headers: {
Authorization: `Bearer ${API_KEY}`,
'Content-Type': 'application/json',
},
});
if (!response.ok) {
const error = await response.json();
throw new Error(`API error ${response.status}: ${error.message}`);
}
const data = await response.json();
console.log('Health check:', data);
}
checkHealth();
Step 3: Interpret the Response
A successful health check returns HTTP 200 with a JSON body:
{
"status": "ok",
"version": "1"
}
| Field | Type | Description |
| --------- | -------- | ---------------------------------------- |
| status | string | "ok" when the API is healthy |
| version | string | The current API major version identifier |
If something goes wrong, the API returns a structured error body:
{
"code": "INTERNAL_ERROR",
"message": "An unexpected error occurred.",
"requestId": "req_abc123"
}
Use the requestId when contacting support — it uniquely identifies the failed request in our logs.
Next Steps
Now that you've made your first request, explore the rest of the docs:
- Authentication — Bearer token setup, available scopes, rate limiting, and error shapes
- API Reference — Interactive reference for all REST endpoints with live examples
- Webhooks — Event types, payload schemas, signature verification, and retry behavior