Docs
Long-running operations
How do I track a long-running job on the Onrup API?
Every long job is a durable operation with an append-only event log. Stream it with server-sent events, or poll the log from a cursor — both give the same history. Cancel, resume and retry-from-checkpoint are all idempotent.
One contract, six job types
Uploads, validation, dataset generation, training, evaluation, publishing and endpoint warm-up all behave identically from a client’s point of view. Learn the operation contract once and every long-running thing in the product follows it.
The event log is the source of truth
State lives in an append-only log rather than in a streaming connection. That means a client that disconnects has lost nothing: it reconnects, says which event it last saw, and continues.
It also means polling and streaming are equivalent. Ask what happened after a given event and get exactly what a live subscriber would have received.
# Live
curl -N https://api.onrup.com/v1/operations/$OP/stream \
-H "Authorization: Bearer $ONRUP_API_KEY" \
-H "Last-Event-ID: 1183"
# Or catch up
curl "https://api.onrup.com/v1/operations/$OP/events?after=1183" \
-H "Authorization: Bearer $ONRUP_API_KEY"Percentages are a display convenience
Progress percentages are projections, not commitments. The authoritative information is the state and the events; a percentage that goes backwards is the projection being corrected, not the job regressing.
Everything is idempotent
Cancel, resume and retry-from-checkpoint can all be called more than once without doing the thing twice. That matters because these calls are made exactly when the network is behaving badly and a client cannot tell whether the first attempt landed.
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.