Operator API Reference
Operator app management and analytics.
3 endpoints
Get operator analytics
Returns aggregate analytics for the operator's app over the default 30-day window. **Authentication:** Requires an OAuth access token (Bearer), not a JWT. Use the token returned by POST /api/oauth/token.
Authentication
OAuth2 app:balance:read
Response (Success)
| Name | Type | Required | Description |
|---|---|---|---|
analytics |
object |
required |
Example Request
curl -X GET "https://api.buddo.xyz/api/operator/analytics" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
Example Response
{
"analytics": {
"total_awards": 0,
"total_spends": 0,
"total_users": 0,
"window_days": 0
}
}
Get operator's app details
Returns full app details including total user count. Requires the requesting OAuth token to belong to the app owner. **Authentication:** Requires an OAuth access token (Bearer), not a JWT. Use the token returned by POST /api/oauth/token.
Authentication
OAuth2 app:balance:read
Response (Success)
| Name | Type | Required | Description |
|---|---|---|---|
app |
object |
required | Full operator app details including user count. |
Example Request
curl -X GET "https://api.buddo.xyz/api/operator/app" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
Example Response
{
"app": {
"allowed_scopes": [
"string"
],
"app_description": {},
"app_name": "string",
"client_id": "string",
"id": "00000000-0000-0000-0000-000000000000",
"inserted_at": "2026-01-01T00:00:00Z",
"is_approved": false,
"listed": false,
"logo_url": {},
"redirect_uris": [
"string"
],
"total_users": 0,
"updated_at": "2026-01-01T00:00:00Z",
"website_url": {}
}
}
Update operator's app
Updates app metadata. All fields are optional. Returns the updated app without total_users. **Authentication:** Requires an OAuth access token (Bearer), not a JWT. Use the token returned by POST /api/oauth/token.
Authentication
OAuth2 app:balance:read
Request Body
| Name | Type | Required | Description |
|---|---|---|---|
app_description |
string |
optional | |
app_name |
string |
optional | |
redirect_uris |
array<string> |
optional | |
website_url |
string |
optional |
Response (Success)
| Name | Type | Required | Description |
|---|---|---|---|
app |
object |
required | Operator app details returned after update — excludes total_users. |
Example Request
curl -X PUT "https://api.buddo.xyz/api/operator/app" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"app_description": "string",
"app_name": "string",
"redirect_uris": [
"string"
],
"website_url": "string"
}'
Example Response
{
"app": {
"allowed_scopes": [
"string"
],
"app_description": {},
"app_name": "string",
"client_id": "string",
"id": "00000000-0000-0000-0000-000000000000",
"inserted_at": "2026-01-01T00:00:00Z",
"is_approved": false,
"listed": false,
"logo_url": {},
"redirect_uris": [
"string"
],
"updated_at": "2026-01-01T00:00:00Z",
"website_url": {}
}
}