Operator API Reference

Operator app management and analytics.

3 endpoints

Endpoints on this page
GET /api/operator/analytics

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)

NameTypeRequiredDescription
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 /api/operator/app

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)

NameTypeRequiredDescription
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": {}
  }
}
PUT /api/operator/app

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

NameTypeRequiredDescription
app_description string optional
app_name string optional
redirect_uris array<string> optional
website_url string optional

Response (Success)

NameTypeRequiredDescription
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": {}
  }
}