Everything the service does
One request format, prices you can read before you run, and a cost cap that cannot be overrun.
One contract
Describe the problem once, independent of any solver. The format stays stable release to release.
- One request format in, one solution format out
- Versioned API, so today's integration keeps working
- Published JSON Schemas, generated from the validators so they cannot drift
- Idempotency keys: retry safely, never pay twice
- Structured errors that name the field at fault before you spend a credit
- Tags on every problem for your own bookkeeping
Any problem, any engine
Routing, scheduling, rostering, packing, allocation, and anything else you can write down. The engine is a detail we handle.
- The same request works for every kind of optimisation problem
- Pin an engine by name, or name a meta-solver and let any of its member engines take the job
- A meta-solver is a named set of member engines, not a black box
- Every result reports the engine that ran and its price
- Open engines run on our side; bring your own licence for commercial ones
- New engines join without a change to your integration
Billing you can check
We run the metering and the solving, so the meter is disclosed and the worst case is capped.
- Prepaid credits, bought in packs, with free credits to start
- Published price per solver: a base fee plus a rate per second
- A maximum cost on every run, known before you submit and reserved before it starts
- Cancel a run and pay only for the seconds it used, up to your cost cap
- Full metering on every solve, itemised on your ledger
- A proven infeasible or unbounded answer is a real result, and we bill it. We say so up front
Results that reach you
Webhook, event stream or one blocking call. Every finished solve reaches you.
- Signed, thin webhooks the moment a problem finishes
- Automatic retries with a visible dead-letter log
- A server-sent event stream, one connection for the whole account
- The solver's own progress on that stream while it works
- Or one call that holds open until the problem ends, for a script with nowhere to receive
- Webhook egress is guarded, so a hijacked URL cannot reach internal services
- A crashed solve re-queues automatically, and you are billed once
Your portal
Keys, usage and delivery logs, all self-service.
- Named API keys, each revocable on its own
- Keys scoped to the optimisation API alone, nothing else
- Usage and credit ledger, itemised and exportable
- Webhook delivery log you can inspect and replay
- Buy credit packs through checkout, with an invoice
Try before you build
Prove it works before you write a line of integration code.
- NexOR Studio: write a model in the browser, no account needed
- Worked examples you can copy, adapt and run
- jumpy, our Python SDK: write the model in Python, read the solution as objects
- A readable API reference and the published schemas
Your first solve is five minutes away
Run a real model against a real solver, in the browser. No account, no credit card.