Control Plane API
The current operator-facing API surface across projects, datasets, jobs, billing, and deployments.
Control plane API
The control plane owns the operator-facing product surface. It is where Bitstride manages tenancy, configuration, jobs, and account state.
Current route groups
Auth
POST /v1/auth/register
POST /v1/auth/login
GET /v1/auth/login/{provider}
GET /v1/auth/callback/{provider}
GET /v1/auth/verify
POST /v1/auth/logout
POST /v1/auth/refresh
POST /v1/auth/mfa/enroll
POST /v1/auth/mfa/verify
POST /v1/auth/mfa/verify-login
POST /v1/auth/mfa/disable
API keys
GET /v1/api_keys
POST /v1/api_keys
PUT /v1/api_keys/{id}
DELETE /v1/api_keys/{id}
Projects
GET /v1/projects
POST /v1/projects
GET /v1/projects/{id}
PUT /v1/projects/{id}
DELETE /v1/projects/{id}
Models
GET /v1/models
POST /v1/models
GET /v1/models/{id}
PUT /v1/models/{id}
DELETE /v1/models/{id}
Datasets
GET /v1/datasets
POST /v1/datasets
GET /v1/datasets/{id}
PUT /v1/datasets/{id}
DELETE /v1/datasets/{id}
POST /v1/datasets/{id}/upload
POST /v1/datasets/{id}/validate
Fine-tuning
GET /v1/fine_tuning/jobs
POST /v1/fine_tuning/jobs
GET /v1/fine_tuning/jobs/{id}
POST /v1/fine_tuning/jobs/{id}/cancel
Reinforcement learning
GET /v1/rl/jobs
POST /v1/rl/jobs
GET /v1/rl/jobs/{id}
POST /v1/rl/jobs/{id}/cancel
Deployments
GET /v1/deployments
POST /v1/deployments
GET /v1/deployments/{id}
PUT /v1/deployments/{id}
Billing and usage
GET /v1/usage
GET /v1/invoices
Organization context
GET /v1/orgs/current
PUT /v1/orgs/current
DELETE /v1/orgs/current
Notes on auth routing
The dedicated auth service owns all auth/session/API-key mutations. The control-plane API keeps
/v1/auth/* and /v1/api_keys/* as compatibility shims and proxies them to AUTH_SERVICE_URL.
For first-party frontends, prefer NEXT_PUBLIC_AUTH_URL for auth, MFA, and API-key calls. When it
is unset, clients fall back to NEXT_PUBLIC_API_URL.
Runtime modes
The API binary supports two runtime modes:
| Mode | Routes | Use case |
|---|---|---|
| Full | All control plane + gateway routes | Complete platform API |
| Gateway | Health, readiness, metrics, inference only | Dedicated inference serving |
Error shape
Error responses follow the OpenAI-style envelope used across the product:
{
"error": {
"code": "example_code",
"message": "Human-readable error message"
}
}