curl --location --request POST 'https://api.userorbit.com/v1/public/subscriber.identify' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"email": "john@example.com",
"name": "John Doe",
"meta": {
"plan": "pro",
"mrr": 99,
"role": "Product Manager",
"team": "Acme Corp"
}
}'
const response = await fetch('https://api.userorbit.com/v1/public/subscriber.identify', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
email: 'john@example.com',
name: 'John Doe',
meta: {
plan: 'pro',
mrr: 99,
role: 'Product Manager',
team: 'Acme Corp'
}
})
});
const data = await response.json();
import requests
response = requests.post(
'https://api.userorbit.com/v1/public/subscriber.identify',
headers={
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
json={
'email': 'john@example.com',
'name': 'John Doe',
'meta': {
'plan': 'pro',
'mrr': 99,
'role': 'Product Manager',
'team': 'Acme Corp'
}
}
)
data = response.json()
{
"data": {
"id": "87654321-1234-1234-1234-123456789012",
"name": "John Doe",
"email": "john@example.com",
"source": "api",
"meta": {
"plan": "pro",
"mrr": 99,
"role": "Product Manager",
"team": "Acme Corp"
},
"avatarUrl": null,
"createdAt": "2024-01-15T10:30:00Z",
"lastUpdated": "2024-01-15T10:30:00Z"
},
"code": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"isFirstSignin": true
}
Subscribers
Identify Subscriber
Identify or create a subscriber for tracking. Used to initialize the widget and track user activity.
POST
/
v1
/
public
/
subscriber.identify
curl --location --request POST 'https://api.userorbit.com/v1/public/subscriber.identify' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"email": "john@example.com",
"name": "John Doe",
"meta": {
"plan": "pro",
"mrr": 99,
"role": "Product Manager",
"team": "Acme Corp"
}
}'
const response = await fetch('https://api.userorbit.com/v1/public/subscriber.identify', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
email: 'john@example.com',
name: 'John Doe',
meta: {
plan: 'pro',
mrr: 99,
role: 'Product Manager',
team: 'Acme Corp'
}
})
});
const data = await response.json();
import requests
response = requests.post(
'https://api.userorbit.com/v1/public/subscriber.identify',
headers={
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
json={
'email': 'john@example.com',
'name': 'John Doe',
'meta': {
'plan': 'pro',
'mrr': 99,
'role': 'Product Manager',
'team': 'Acme Corp'
}
}
)
data = response.json()
{
"data": {
"id": "87654321-1234-1234-1234-123456789012",
"name": "John Doe",
"email": "john@example.com",
"source": "api",
"meta": {
"plan": "pro",
"mrr": 99,
"role": "Product Manager",
"team": "Acme Corp"
},
"avatarUrl": null,
"createdAt": "2024-01-15T10:30:00Z",
"lastUpdated": "2024-01-15T10:30:00Z"
},
"code": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"isFirstSignin": true
}
Authentication
This endpoint requires API key authentication via theAuthorization header.
Authorization: Bearer YOUR_API_KEY
Request Body
Response
Subscriber object
curl --location --request POST 'https://api.userorbit.com/v1/public/subscriber.identify' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"email": "john@example.com",
"name": "John Doe",
"meta": {
"plan": "pro",
"mrr": 99,
"role": "Product Manager",
"team": "Acme Corp"
}
}'
const response = await fetch('https://api.userorbit.com/v1/public/subscriber.identify', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
email: 'john@example.com',
name: 'John Doe',
meta: {
plan: 'pro',
mrr: 99,
role: 'Product Manager',
team: 'Acme Corp'
}
})
});
const data = await response.json();
import requests
response = requests.post(
'https://api.userorbit.com/v1/public/subscriber.identify',
headers={
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
json={
'email': 'john@example.com',
'name': 'John Doe',
'meta': {
'plan': 'pro',
'mrr': 99,
'role': 'Product Manager',
'team': 'Acme Corp'
}
}
)
data = response.json()
{
"data": {
"id": "87654321-1234-1234-1234-123456789012",
"name": "John Doe",
"email": "john@example.com",
"source": "api",
"meta": {
"plan": "pro",
"mrr": 99,
"role": "Product Manager",
"team": "Acme Corp"
},
"avatarUrl": null,
"createdAt": "2024-01-15T10:30:00Z",
"lastUpdated": "2024-01-15T10:30:00Z"
},
"code": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"isFirstSignin": true
}
Behavior
- Existing Subscriber: If email exists, updates metadata and returns existing subscriber
- New Subscriber: Creates new subscriber with provided information
- Metadata Merge: New metadata is merged with existing metadata (doesn’t overwrite completely)
- Case Insensitive: Email matching is case-insensitive
Use Cases
- Widget Initialization: Identify user when loading feedback widget
- User Tracking: Track user activity and associate with account
- User Segmentation: Store custom attributes for targeting
- Personalization: Use metadata to customize user experience
Notes
- The returned
code(JWT token) should be stored and used for subsequent authenticated requests - Metadata fields are flexible - you can add any custom fields
- Only
mmr,plan,role,team, andcreated_atare automatically extracted from metadata - Email is case-insensitive and will be stored in lowercase
Was this page helpful?

