onrup

Documentation

The API is the contract.

What can I do with the API?

Everything. There is nothing the console does that the API cannot — upload and validate data, forecast and submit runs, stream progress, gate a candidate against its baseline, deploy an endpoint, publish weights, and read exactly what has been spent. The console is a client of this API, not a privileged one.

Start with the quickstartGet an API key

Pages

Endpoints

55 public endpoints across 11 groups. Also published as an OpenAPI document.

MethodPathPurposeScope
GET/v1/meThe authenticated identity, tenant and role.any
PATCH/v1/meUpdate profile fields on the authenticated user.session
POST/v1/keysCreate an API key with an explicit scope set.keys:write
GET/v1/keysList keys with their scopes and last use.keys:read
DELETE/v1/keys/{id}Revoke a key immediately.keys:write
POST/v1/data-assets/uploadsBegin a resumable multipart upload.datasets:write
POST/v1/data-assets/uploads/{id}/partsRequest further presigned part URLs.datasets:write
POST/v1/data-assets/uploads/{id}/completeFinalise an upload and trigger validation.datasets:write
GET/v1/data-assets/uploads/{id}Upload state and which parts have landed.datasets:read
DELETE/v1/data-assets/uploads/{id}Abandon an upload and release its parts.datasets:write
GET/v1/data-assetsList data assets with kind and state.datasets:read
GET/v1/data-assets/{id}A single data asset and its manifest.datasets:read
GET/v1/data-assets/{id}/reportThe validation report: record counts, token length percentiles, duplicates, truncation risk.datasets:read
POST/v1/data-assets/{id}/generateExpand a seed asset into a full one under a declared cost ceiling.datasets:write
DELETE/v1/data-assets/{id}Delete a data asset and its derived artefacts.datasets:write
GET/v1/modelsBase models with memory thresholds and supported objectives.any
GET/v1/templates/trainingTraining templates, filterable by model.any
GET/v1/templates/inferenceInference templates and their scaling options.any
POST/v1/runsCreate a run in draft, against a template and a data asset.runs:write
POST/v1/runs/{id}/submitAuthorise cost and queue the run.runs:write
POST/v1/runs/{id}/cancelCancel a run and release its reservation.runs:write
POST/v1/runs/{id}/resumeResume an interrupted run from its last checkpoint.runs:write
GET/v1/runsList runs with state and accrued cost.runs:read
GET/v1/runs/{id}A single run: state, template, GPU class, cost so far.runs:read
GET/v1/runs/{id}/logsTraining logs for a run.runs:read
GET/v1/runs/{id}/metricsLoss, throughput and validation metrics over time.runs:read
GET/v1/runs/{id}/weightsA signed URL to download the trained weights.runs:read
GET/v1/runs/{id}/streamServer-sent event stream of run progress.runs:read
GET/v1/operations/{id}State of any long-running operation.any
GET/v1/operations/{id}/eventsReplay the event log from a cursor.any
GET/v1/operations/{id}/streamLive event stream, resumable via Last-Event-ID.any
POST/v1/operations/{id}/cancelCancel an operation.any
POST/v1/operations/{id}/retry-from-checkpointRestart from the last durable checkpoint.any
POST/v1/evaluationsRun a blinded comparison of a candidate against a baseline.runs:write
GET/v1/evaluations/{id}Evaluation state and summary.runs:read
GET/v1/evaluations/{id}/gateThe gate verdict: pass, fail or inconclusive, with win rate and interval.runs:read
GET/v1/evaluations/{id}/resultsPer-case results, including which side won and why.runs:read
POST/v1/runs/{id}/publicationsPublish a finished run to a model hub.runs:write
GET/v1/runs/{id}/publicationsPublications for a run.runs:read
GET/v1/publications/{id}State of a single publication.runs:read
POST/v1/publications/{id}/cancelCancel an in-flight publication.runs:write
GET/v1/runs/{id}/model-cardThe generated model card, as markdown or JSON.runs:read
POST/v1/deploymentsCreate an endpoint for a finished run.deployments:write
POST/v1/deployments/{id}/warmBring a cold endpoint up before traffic arrives.deployments:write
POST/v1/deployments/{id}/retireRetire an endpoint and release its capacity.deployments:write
POST/v1/deployments/{id}/resumeReturn a retired endpoint to service.deployments:write
GET/v1/deploymentsList endpoints with state and hourly rate.deployments:read
GET/v1/deployments/{id}A single endpoint, its URL and scaling configuration.deployments:read
GET/v1/deployments/{id}/streamServer-sent events for warm-up and scaling transitions.deployments:read
GET/v1/forecast/costEstimate a run’s cost before creating it.any
GET/v1/billing/entitlementPlan, spend limit, reserved and settled amounts, available headroom.billing:read
GET/v1/billing/usageUsage for the current period, including events not yet settled.billing:read
GET/v1/billing/invoicesInvoice history.billing:read
POST/v1/billing/portal-sessionA short-lived link to the billing portal.session
POST/{tenant}/{deployment}/v1/chat/completionsOpenAI-compatible chat completions. Served from serve.onrup.com.deployments:read

Scopes

An API key carries an explicit scope set. Administrative actions are deliberately unavailable to any key and require an interactive session, so a leaked key cannot be used for them under any circumstances.

runs:readRead runs, logs, metrics, weights and evaluation results.
runs:writeCreate, submit, cancel and resume runs; publish models.
datasets:readRead data assets and validation reports.
datasets:writeUpload, generate and delete data assets.
deployments:readRead endpoints and call inference.
deployments:writeCreate, warm, retire and resume endpoints.
billing:readRead entitlement, usage and invoices.
keys:readList API keys and their scopes.
keys:writeCreate and revoke API keys.

Start with the free tier

A magic link creates your account, your tenant and your first API key. No card until you ask for compute.