onrup

Docs

API reference

What endpoints does the Onrup API expose?

A REST API over HTTPS with server-sent events for progress. Bearer authentication, cursor pagination, idempotency keys on mutations, and a stable namespaced error envelope. The full endpoint list is below and is also published as an OpenAPI document.

Conventions

Account

MethodPathPurposeScope
GET/v1/meThe authenticated identity, tenant and role.any
PATCH/v1/meUpdate profile fields on the authenticated user.session

API keys

MethodPathPurposeScope
POST/v1/keysCreate an API key with an explicit scope set.The secret is returned once and never again.keys:write
GET/v1/keysList keys with their scopes and last use.keys:read
DELETE/v1/keys/{id}Revoke a key immediately.keys:write

Datasets

MethodPathPurposeScope
POST/v1/data-assets/uploadsBegin a resumable multipart upload.Returns presigned part URLs; bytes go straight to storage and never traverse the API.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

Catalogue

MethodPathPurposeScope
GET/v1/modelsBase models with memory thresholds and supported objectives.any
GET/v1/templates/trainingTraining templates, filterable by model.Add ?include=experimental to see templates outside the stable set.any
GET/v1/templates/inferenceInference templates and their scaling options.any

Runs

MethodPathPurposeScope
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.This is where spend is reserved. A run that would breach the limit is rejected here, before compute is leased.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.The adapter, or the merged model where the template produced one.runs:read
GET/v1/runs/{id}/streamServer-sent event stream of run progress.runs:read

Operations

MethodPathPurposeScope
GET/v1/operations/{id}State of any long-running operation.any
GET/v1/operations/{id}/eventsReplay the event log from a cursor.Pass ?after=<event-id> to continue from where a client left off.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

Evaluation

MethodPathPurposeScope
POST/v1/evaluationsRun a blinded comparison of a candidate against a baseline.Declares a cost ceiling; the job stops at the ceiling rather than exceeding it.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

Publishing

MethodPathPurposeScope
POST/v1/runs/{id}/publicationsPublish a finished run to a model hub.Weights and a generated model card only. Datasets are never included.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

Deployments

MethodPathPurposeScope
POST/v1/deploymentsCreate an endpoint for a finished run.min_replicas 0 for scale-to-zero, 1 or more for always warm.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

Billing

MethodPathPurposeScope
GET/v1/forecast/costEstimate a run’s cost before creating it.Takes model, template and dataset size; returns an estimate and a wait-window indication.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

Inference

MethodPathPurposeScope
POST/{tenant}/{deployment}/v1/chat/completionsOpenAI-compatible chat completions. Served from serve.onrup.com.Supports streaming, tool calling and structured output.deployments:read

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.