Skip to main content
SONZAI
Api

Analytics

Composio plugin usage analytics

GET
/analytics/composio

Authorization

bearerClerk
AuthorizationBearer <token>

Clerk session JWT from an authenticated dashboard user. Format: Bearer eyJ....

In: header

Query Parameters

start?string

Start date YYYY-MM-DD (defaults to 30 days ago)

end?string

End date YYYY-MM-DD (defaults to today)

agent_id?string

Optional agent UUID filter

Response Body

application/json

application/problem+json

curl -X GET "https://loading/api/v1/analytics/composio"
{
  "$schema": "/api/v1/schemas/ComposioUsageResponse.json",
  "by_app": [
    {
      "app": "string",
      "calls": 0,
      "cost_usd": 0.1
    }
  ],
  "period": {
    "end": "string",
    "start": "string"
  },
  "summary": {
    "total_calls": 0,
    "total_cost_usd": 0.1
  }
}
{
  "$schema": "/api/v1/schemas/ErrorModel.json",
  "detail": "Property foo is required but is missing.",
  "errors": [
    {
      "location": "string",
      "message": "string",
      "value": null
    }
  ],
  "instance": "https://example.com/error-log/abc123",
  "status": 400,
  "title": "Bad Request",
  "type": "https://example.com/errors/example"
}

Cost analytics with billing-aware pricing

GET
/analytics/cost

Authorization

bearerClerk
AuthorizationBearer <token>

Clerk session JWT from an authenticated dashboard user. Format: Bearer eyJ....

In: header

Query Parameters

start?string

Start date YYYY-MM-DD (defaults to 30 days ago)

end?string

End date YYYY-MM-DD (defaults to today)

group_by?string

Group by 'project' (default) or 'character'

project_id?string

Optional project UUID filter

Response Body

application/json

application/problem+json

curl -X GET "https://loading/api/v1/analytics/cost"
{
  "$schema": "/api/v1/schemas/CostResponse.json",
  "byCharacter": [
    {
      "agentId": "string",
      "agentName": "string",
      "projectId": "string",
      "projectName": "string"
    }
  ],
  "byProject": [
    {
      "agentCount": 0,
      "costUsd": 0.1,
      "inputTokens": 0,
      "outputTokens": 0,
      "projectId": "string",
      "projectName": "string",
      "serviceCostUsd": 0.1,
      "totalTokens": 0
    }
  ],
  "byService": [
    {
      "costUsd": 0.1,
      "count": 0,
      "service": "string"
    }
  ],
  "byTrafficSource": [
    {
      "costUsd": 0.1,
      "entryCount": 0,
      "tokens": 0,
      "trafficSource": "string"
    }
  ],
  "daily": [
    {
      "costUsd": 0.1,
      "date": "string",
      "inputTokens": 0,
      "outputTokens": 0,
      "serviceCostUsd": 0.1,
      "totalCostUsd": 0.1,
      "totalTokens": 0
    }
  ],
  "period": {
    "end": "string",
    "start": "string"
  },
  "summary": {
    "billingMode": "string",
    "creditBalanceUsd": 0.1,
    "inputCostUsd": 0.1,
    "outputCostUsd": 0.1,
    "serviceCostUsd": 0.1,
    "tokenCostUsd": 0.1,
    "tokenPricePer1KUsd": 0.1,
    "totalCostUsd": 0.1,
    "totalInputTokens": 0,
    "totalOutputTokens": 0,
    "totalTokens": 0
  }
}
{
  "$schema": "/api/v1/schemas/ErrorModel.json",
  "detail": "Property foo is required but is missing.",
  "errors": [
    {
      "location": "string",
      "message": "string",
      "value": null
    }
  ],
  "instance": "https://example.com/error-log/abc123",
  "status": 400,
  "title": "Bad Request",
  "type": "https://example.com/errors/example"
}

Cost breakdown by operation / model / agent

GET
/analytics/cost/breakdown

Authorization

bearerClerk
AuthorizationBearer <token>

Clerk session JWT from an authenticated dashboard user. Format: Bearer eyJ....

In: header

Query Parameters

month?string

Month shortcut YYYY-MM (takes priority over start/end)

start?string

Start date YYYY-MM-DD

end?string

End date YYYY-MM-DD

project_id?string

Optional project UUID filter

Response Body

application/json

application/problem+json

curl -X GET "https://loading/api/v1/analytics/cost/breakdown"
{
  "$schema": "/api/v1/schemas/CostBreakdownResponse.json",
  "byAgent": [
    {
      "costUsd": 0.1,
      "inputTokens": 0,
      "key": "string",
      "label": "string",
      "outputTokens": 0,
      "turns": 0
    }
  ],
  "byModel": [
    {
      "costUsd": 0.1,
      "inputTokens": 0,
      "key": "string",
      "label": "string",
      "outputTokens": 0,
      "turns": 0
    }
  ],
  "byOperation": [
    {
      "costUsd": 0.1,
      "inputTokens": 0,
      "key": "string",
      "label": "string",
      "outputTokens": 0,
      "turns": 0
    }
  ],
  "period": {
    "end": "string",
    "start": "string"
  },
  "totalCostUsd": 0.1,
  "totalInputTokens": 0,
  "totalOutputTokens": 0
}
{
  "$schema": "/api/v1/schemas/ErrorModel.json",
  "detail": "Property foo is required but is missing.",
  "errors": [
    {
      "location": "string",
      "message": "string",
      "value": null
    }
  ],
  "instance": "https://example.com/error-log/abc123",
  "status": 400,
  "title": "Bad Request",
  "type": "https://example.com/errors/example"
}

Dashboard analytics overview

GET
/analytics/overview

Authorization

bearerClerk
AuthorizationBearer <token>

Clerk session JWT from an authenticated dashboard user. Format: Bearer eyJ....

In: header

Response Body

application/json

application/problem+json

curl -X GET "https://loading/api/v1/analytics/overview"
{
  "$schema": "/api/v1/schemas/AnalyticsOverview.json",
  "activeAgents": 0,
  "activeSessions": 0,
  "totalAgents": 0,
  "totalMessages": 0,
  "totalSessions": 0
}
{
  "$schema": "/api/v1/schemas/ErrorModel.json",
  "detail": "Property foo is required but is missing.",
  "errors": [
    {
      "location": "string",
      "message": "string",
      "value": null
    }
  ],
  "instance": "https://example.com/error-log/abc123",
  "status": 400,
  "title": "Bad Request",
  "type": "https://example.com/errors/example"
}

Dashboard analytics realtime

GET
/analytics/realtime

Authorization

bearerClerk
AuthorizationBearer <token>

Clerk session JWT from an authenticated dashboard user. Format: Bearer eyJ....

In: header

Response Body

application/json

application/problem+json

curl -X GET "https://loading/api/v1/analytics/realtime"
{
  "$schema": "/api/v1/schemas/AnalyticsRealtimeResponse.json",
  "daily": [
    {
      "date": "string",
      "messages": 0,
      "sessions": 0
    }
  ],
  "overview": {
    "$schema": "/api/v1/schemas/AnalyticsOverview.json",
    "activeAgents": 0,
    "activeSessions": 0,
    "totalAgents": 0,
    "totalMessages": 0,
    "totalSessions": 0
  }
}
{
  "$schema": "/api/v1/schemas/ErrorModel.json",
  "detail": "Property foo is required but is missing.",
  "errors": [
    {
      "location": "string",
      "message": "string",
      "value": null
    }
  ],
  "instance": "https://example.com/error-log/abc123",
  "status": 400,
  "title": "Bad Request",
  "type": "https://example.com/errors/example"
}

Token and session usage analytics

GET
/analytics/usage

Authorization

bearerClerk
AuthorizationBearer <token>

Clerk session JWT from an authenticated dashboard user. Format: Bearer eyJ....

In: header

Query Parameters

month?string

Month filter YYYY-MM (defaults to current month)

project_id?string

Optional project UUID filter

Response Body

application/json

application/problem+json

curl -X GET "https://loading/api/v1/analytics/usage"
{
  "$schema": "/api/v1/schemas/UsageResponse.json",
  "byProject": [
    {
      "cacheTokens": 0,
      "costUsd": 0.1,
      "inputTokens": 0,
      "outputTokens": 0,
      "projectId": "string",
      "projectName": "string",
      "turns": 0
    }
  ],
  "daily": [
    {
      "cacheTokens": 0,
      "costUsd": 0.1,
      "date": "string",
      "inputTokens": 0,
      "outputTokens": 0,
      "turns": 0
    }
  ],
  "period": {
    "end": "string",
    "start": "string"
  },
  "totalCacheTokens": 0,
  "totalCostUsd": 0.1,
  "totalInputTokens": 0,
  "totalOutputTokens": 0,
  "totalTurns": 0
}
{
  "$schema": "/api/v1/schemas/ErrorModel.json",
  "detail": "Property foo is required but is missing.",
  "errors": [
    {
      "location": "string",
      "message": "string",
      "value": null
    }
  ],
  "instance": "https://example.com/error-log/abc123",
  "status": 400,
  "title": "Bad Request",
  "type": "https://example.com/errors/example"
}