Skip to main content

Admin API Reference

The Rise Admin API allows you to programmatically manage Jobs, users, and configurations.

Base URL

https://api.getrise.ai/v1

Authentication

All API requests require authentication using an API key:

curl -H "Authorization: Bearer YOUR_API_KEY" \
https://api.getrise.ai/v1/jobs

Get Your API Key

  1. Log into Rise Admin Console
  2. Navigate to Settings > API Keys
  3. Click Create New Key
  4. Copy and securely store your key

Security:

  • Never commit API keys to version control
  • Use environment variables
  • Rotate keys periodically
  • Use different keys for dev/prod

Jobs API

List All Jobs

GET /v1/jobs

Response:

{
"jobs": [
{
"id": "job_abc123",
"name": "Complete Profile Setup",
"status": "active",
"priority": "high",
"created_at": "2024-10-01T10:00:00Z",
"metrics": {
"completion_rate": 0.72,
"users_targeted": 1240,
"users_completed": 893
}
}
],
"total": 12,
"page": 1
}

Get Job Details

GET /v1/jobs/{job_id}

Response:

{
"id": "job_abc123",
"name": "Complete Profile Setup",
"description": "Help new users complete their profile",
"goal": "User fills in all required profile fields",
"status": "active",
"priority": "high",
"target_audience": {
"type": "segment",
"criteria": "days_since_signup <= 7"
},
"automation": {
"level": "guided_shortcuts",
"requires_confirmation": true
},
"metrics": {
"completion_rate": 0.72,
"avg_time_to_completion": 145,
"users_targeted": 1240,
"users_completed": 893
},
"created_at": "2024-10-01T10:00:00Z",
"updated_at": "2024-10-15T14:23:00Z"
}

Create Job

POST /v1/jobs

Request Body:

{
"name": "First Data Export",
"description": "Help users export data for the first time",
"goal": "User successfully exports data",
"priority": "medium",
"target_audience": {
"type": "segment",
"criteria": "days_since_signup > 7 AND export_count = 0"
},
"automation": {
"level": "subtle_hints",
"requires_confirmation": false
}
}

Response:

{
"id": "job_xyz789",
"name": "First Data Export",
"status": "draft",
"created_at": "2024-10-16T10:00:00Z"
}

Update Job

PATCH /v1/jobs/{job_id}

Request Body:

{
"status": "active",
"priority": "high"
}

Delete Job

DELETE /v1/jobs/{job_id}

Response:

{
"id": "job_abc123",
"deleted": true
}

Users API

Identify User

POST /v1/users/identify

Request Body:

{
"user_id": "user_123",
"properties": {
"email": "user@example.com",
"plan": "pro",
"company": "Acme Inc"
}
}

Update User Properties

PATCH /v1/users/{user_id}

Request Body:

{
"properties": {
"plan": "enterprise",
"mrr": 500
}
}

Delete User Data (GDPR)

DELETE /v1/users/{user_id}

Deletes all user data in compliance with GDPR/privacy regulations.

Events API

Track Event

POST /v1/events

Request Body:

{
"user_id": "user_123",
"event": "feature_used",
"properties": {
"feature_name": "export",
"format": "csv"
},
"timestamp": "2024-10-16T14:23:00Z"
}

Batch Track Events

POST /v1/events/batch

Request Body:

{
"events": [
{
"user_id": "user_123",
"event": "page_viewed",
"properties": { "page": "/dashboard" }
},
{
"user_id": "user_456",
"event": "feature_used",
"properties": { "feature": "export" }
}
]
}

Cohorts API

List Cohorts

GET /v1/cohorts

Get Cohort Users

GET /v1/cohorts/{cohort_id}/users

Create Custom Cohort

POST /v1/cohorts

Request Body:

{
"name": "Power Users",
"criteria": {
"features_used": { "gte": 20 },
"days_active": { "gte": 30 }
}
}

Webhooks

Configure Webhooks

Receive real-time notifications for events:

POST /v1/webhooks

Request Body:

{
"url": "https://your-app.com/webhooks/rise",
"events": [
"job.completed",
"user.friction_detected",
"cohort.changed"
]
}

Webhook Payload Example

{
"event": "job.completed",
"data": {
"job_id": "job_abc123",
"user_id": "user_123",
"completed_at": "2024-10-16T14:23:00Z"
},
"timestamp": "2024-10-16T14:23:01Z"
}

Rate Limits

  • Standard tier: 1,000 requests/hour
  • Pro tier: 10,000 requests/hour
  • Enterprise: Custom limits

Rate limit headers:

X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 847
X-RateLimit-Reset: 1697456789

Error Responses

{
"error": {
"code": "invalid_request",
"message": "Missing required field: name",
"details": {
"field": "name",
"reason": "required"
}
}
}

Common Error Codes:

  • 400 - Bad Request
  • 401 - Unauthorized (invalid API key)
  • 403 - Forbidden (insufficient permissions)
  • 404 - Not Found
  • 429 - Rate Limit Exceeded
  • 500 - Internal Server Error

SDKs and Libraries

Official SDKs

Node.js:

npm install @getrise-ai/node-sdk

Python:

pip install rise-ai

Ruby:

gem install rise-ai

Example Usage (Node.js)

const Rise = require('@getrise-ai/node-sdk');

const client = new Rise({
apiKey: process.env.RISE_API_KEY
});

// Create a Job
const job = await client.jobs.create({
name: 'Complete Onboarding',
goal: 'User completes all onboarding steps',
priority: 'high'
});

// Get analytics
const analytics = await client.analytics.features({
dateRange: 'last_30_days'
});

Next Steps