API reference
Running it
Keys you can scope and rotate, usage you can see, limits that fail predictably rather than silently, and deployment that can sit in our infrastructure or inside yours when the data cannot leave.
REST server
https://api.belumind.comMCP server
https://mcp.belumind.com/operationsAuthentication
Every request carries a bearer token. Keys are scoped — an endpoint returns 403 if the calling key lacks the scope named in its reference entry, so an agent can be handed a key that reaches exactly one tool and nothing else.
MCP clients pass the same token as a bearer credential when connecting to the server URL above.
account:readAuthorization: Bearer blm_live_7f3c… Content-Type: application/json
/v1/usageaccount:readRead usage against quota
Current period usage broken down by capability, with the quota and reset time. The same numbers the rate limiter is working from, so a client can back off before it starts getting 429s.
get_usagePath & query parameters
period"current" | "previous"optional- Billing period to report. Defaults to `current`.
Responses
200 OKSuccess. Body as shown in the example.400 Bad RequestThe request body failed validation. The response names the offending field.401 UnauthorizedMissing, malformed, or revoked API key.403 ForbiddenThe key is valid but lacks the scope this endpoint requires.429 Too Many RequestsRate limit exceeded. `Retry-After` carries the seconds to wait; usage is readable from /v1/usage.500 Internal Server ErrorSomething failed on our side. Requests are idempotent by `Idempotency-Key`, so a retry is safe.
Request
curl -X GET https://api.belumind.com/v1/usage \ -H "Authorization: Bearer $BELUMIND_API_KEY"
Response
{
"period": "current",
"resets_at": "2026-09-01T00:00:00Z",
"usage": {
"data-processing": {
"pages_processed": 41208,
"quota": 100000
},
"inference": {
"predictions": 883104,
"quota": 2000000
}
},
"rate_limit": {
"requests_per_minute": 600,
"remaining": 587
}
}Try it
Send a request
Sample modeGET https://api.belumind.com/v1/usageThe platform is in early access, so this console returns the documented example response rather than calling a live endpoint. Ask us for a key and the same console starts issuing real requests.
Errors
Errors use conventional HTTP status codes and always carry a machine-readable code alongside the human-readable message, so a client can branch on the former and log the latter. Every request is idempotent by Idempotency-Key, which makes retrying a 5xx safe.
{
"error": {
"code": "invalid_parameter",
"message": "`min_confidence` must be between 0 and 1.",
"param": "min_confidence",
"request_id": "req_4d91c0b7"
}
}Ready to call it for real?
The console returns documented examples while the platform is in early access. Tell us what you are building and we will get you a key.