| title | Admin Summary API |
|---|---|
| description | Admin dashboard summary with service health, trial stats, and agent status |
Retrieve a consolidated admin dashboard summary including service health, trial statistics, and agent status breakdowns.
GET /api/admin/summaryRequires session authentication with an admin email. Returns service health checks, active trial counts, expiring trial users, agent status totals, and recent agent errors.
The authenticated user's email must be in the ADMIN_EMAILS environment variable (comma-separated list). Non-admin users receive a 403 response.
{
"serviceHealth": [
{ "name": "Agentbot API", "status": "ok", "detail": "ok" },
{ "name": "Tempo Soul", "status": "ok", "detail": "ok" },
{ "name": "x402 Gateway", "status": "degraded", "detail": "HTTP 502" }
],
"trial": {
"active": 12,
"expiringSoon": [
{
"id": "user_abc123",
"email": "user@example.com",
"endsAt": "2026-04-04T00:00:00.000Z",
"daysLeft": 2
}
]
},
"agents": {
"totals": {
"running": 8,
"stopped": 3,
"error": 1
},
"recentErrors": [
{
"id": "agent_xyz",
"name": "my-agent",
"userId": "user_abc123",
"updatedAt": "2026-04-02T12:00:00.000Z",
"status": "error"
}
]
},
"timestamp": "2026-04-02T12:00:00.000Z"
}| Field | Type | Description |
|---|---|---|
serviceHealth |
array | Health status of monitored platform services. See dashboard health for the service health format. |
serviceHealth[].name |
string | Service display name |
serviceHealth[].status |
string | Service status: ok, degraded, or down |
serviceHealth[].detail |
string | Additional detail such as an HTTP status code or error message |
trial.active |
number | Number of users on the free plan with an active trial |
trial.expiringSoon |
array | Users whose trial expires within the next 3 days, ordered by expiration date. Returns up to 12 entries. |
trial.expiringSoon[].id |
string | User ID |
trial.expiringSoon[].email |
string | User email |
trial.expiringSoon[].endsAt |
string | ISO 8601 trial expiration timestamp |
trial.expiringSoon[].daysLeft |
number | Days remaining on the trial |
agents.totals |
object | Agent counts grouped by status. Keys are status values (for example running, stopped, error) and values are counts. |
agents.recentErrors |
array | Up to 5 most recently updated agents in the error state |
agents.recentErrors[].id |
string | Agent ID |
agents.recentErrors[].name |
string | Agent name |
agents.recentErrors[].userId |
string | Owner's user ID |
agents.recentErrors[].updatedAt |
string | ISO 8601 timestamp of the last status update |
agents.recentErrors[].status |
string | Always error |
timestamp |
string | ISO 8601 timestamp of when the summary was generated |
| Code | Description |
|---|---|
| 403 | Unauthorized — user is not authenticated or is not an admin |