API Reference
Use the BeamCore REST and WebSocket APIs, authentication, and audit routes.
The BeamCore API is a REST + WebSocket API served at beamcore.b1m.ai.
New to Beam? Start with the Developer Quickstart to create an API key and send your first transfer.
Interactive Documentation
Authentication
All non-public endpoints require an X-Api-Key header.
X-Api-Key: your_api_keyAPI keys are scoped by role (client, orchestrator, worker, validator). Each role has access only to the routes relevant to that role.
Base URL
http://<host>:8000The OpenAPI schema is also available as JSON at /openapi.json.
Transfer Metadata Privacy
Public transfer-list, dashboard transfer, and dashboard audit responses redact transfer display names. Existing transfer_name fields remain present as null, and returned transfer metadata omits metadata.name.
Dashboard Audit Routes
These dashboard routes expose audit evidence for verifying transfer behavior: database rows grouped by table, with sensitive credentials and signatures redacted. They are intended for data verification and operator investigation, not for public client API use.
Audit routes are served from the dashboard domain:
https://data.b1m.aiOrchestrator transfer raw data
GET https://data.b1m.ai/api/audit/orchestrator/{orchestratorId}/transfers/{transferId}?limit=100&offset=0Returns raw rows for one orchestrator on one transfer, grouped by table:
transfer_assignment_planstask_offer_batchestaskstask_attemptstask_resultsoverseer_interventions
orchestratorId may be an orchestrator UUID, UID, or hotkey. transferId must be a transfer UUID.
Worker transfer raw data
GET https://data.b1m.ai/api/audit/worker/{workerId}/transfers/{transferId}?limit=100&offset=0Returns raw rows for one worker on one transfer, grouped by table:
workerstransfer_assignment_planstaskstask_attemptstask_resultsoverseer_interventions
workerId may be a worker ID or hotkey. transferId must be a transfer UUID.
Pagination
Both routes accept:
limit: number of rows per table, default1000, max5000offset: row offset per table, default0
Responses include per-table pagination metadata:
{
"pagination": {
"limit": 100,
"offset": 0,
"tables": {
"tasks": {
"limit": 100,
"offset": 0,
"returned": 100,
"has_more": true,
"next_offset": 100
}
}
}
}