List accounts
A cursor page of every account, newest first, each with the plan it is on and the balance of its credit ledger. Needs the admin role. email narrows the page to one account. It matches the whole address case-insensitively and takes no wildcards: an operator looking for Ana@Acme.com finds a row stored as ana@acme.com, and there is no substring search across customers' addresses. An account with no subscription reads as free with a balance of 0: the absence of a row is the free plan, and the least-privileged rung is also what any unresolvable lookup should answer.
Request
- Base URL: https://api.naturali.ai
- URL: https://api.naturali.ai/v1/admin/users
- Auth: one of:
- HTTP bearer
- OAuth 2 (authorization code, authorization URL https://api.naturali.ai/authorize, token URL https://api.naturali.ai/token, scopes: mcp:access)
Query parameters
Match one account by its full address, case-insensitively.
Results per page, 1 to 100 (default 50). Above 100 it is clamped; below 1 or not an integer it is 400.
The next_cursor of the previous page.
Response
A page of accounts.
Example response
{
"data": [
{
"id": "user_V1StGXR8Z5jdHi6B",
"email": "ana@acme.com",
"name": "Ana Silva",
"email_verified": true,
"roles": [],
"usage_alerts": true,
"created_at": "2026-07-17T00:00:00.000Z",
"plan": "business",
"next_plan": "pro",
"retention_days": 90,
"credit_balance_usd": 25,
"spend_reconciled_at": "2026-07-17T00:15:00.000Z",
"storage": {
"used": 12.4137,
"limit": 30,
"sampled_at": "2026-07-17T00:15:00.000Z"
}
}
]
}Changes
No recorded changes to this operation across all 1 revision of this API.