API Overview
Welcome to the EliteCircle API documentation. This RESTful API allows you to programmatically manage memberships, subscriptions, course enrollments, and automated webhooks.
https://api.elitecircle.com/v1Rate Limit: 120 requests/minute per API key
Format: JSON Request/Response, UTF-8 encoding
Authentication
Authenticate all requests using Bearer tokens in the Authorization header. Generate your API key from the Developer Dashboard.
Authorization: Bearer ek_live_8f7a9c2d4e5b6f1a2b3c4d5e
Test mode keys begin with ek_test_ and are sandboxed. Production keys begin with ek_live_.
Members
Returns a list of members sorted by creation date. Supports filtering by status, plan, and query search.
| Parameter | Type | Required | Description |
|---|---|---|---|
| limit | integer | No | Items per page (max 100) |
| offset | integer | No | Pagination offset |
| status | string | No | Filter: active, paused, canceled |
{
"data": [
{
"id": "mem_9x8y7z6w",
"email": "alex@example.com",
"status": "active",
"created_at": "2024-11-15T08:30:00Z"
}
],
"pagination": {
"total": 1240,
"limit": 20,
"offset": 0
}
}
Creates a new member account. Sends a verification email automatically.
| Parameter | Type | Required | Description |
|---|---|---|---|
| string | Required | Valid email address | |
| first_name | string | Required | Member first name |
| last_name | string | Required | Member last name |
| plan_id | string | No | Assign a subscription plan immediately |
{
"email": "jane.doe@company.com",
"first_name": "Jane",
"last_name": "Doe",
"plan_id": "plan_pro_monthly"
}
Initiates a new subscription for an existing member. Requires a valid payment method ID.
| Parameter | Type | Required | Description |
|---|---|---|---|
| member_id | string | Required | Member identifier |
| plan_id | string | Required | Target plan (starter, pro, enterprise) |
| payment_method_id | string | Required | Stripe/PayPal token |
| trial_days | integer | No | Grace period before first charge |
{
"id": "sub_3a2b1c0d",
"status": "trialing",
"current_period_end": "2024-12-15T00:00:00Z",
"cancel_at_period_end": false
}
Grants immediate access to a specific course module. Triggers course.enrolled webhook.
{
"member_id": "mem_9x8y7z6w",
"grant_certificate": true
}
Subscribe to real-time events. EliteCircle will POST JSON payloads to your endpoint.
| Parameter | Type | Required | Description |
|---|---|---|---|
| url | string | Required | HTTPS endpoint |
| events | array | Required | Event types to listen to |
| secret | string | No | HMAC signature verification key |
["member.created", "subscription.updated", "course.completed", "payment.failed"]
Error Handling
The API uses standard HTTP status codes. Error responses include a structured error object.
{
"error": {
"code": "subscription_expired",
"message": "Access denied. Subscription has ended.",
"request_id": "req_8f7a9c2d"
}
}