Solve your first model
Quicopt is a solver for hard optimization problems. This page takes you from an
empty directory to a solved model in four steps: sign up, install, set your
key, run an example. Pick your language below; the choice carries over to every
page of the docs. In Python you build the model in a standard front-end
(OR-Tools MathOpt or Pyomo), in Julia in JuMP, and in R and Ruby with
the client's own model, then hand it to a single solve call.
Step 1 — Sign up
Create a free account with your email address. We send you your API
key by email; it starts with qo_.
Step 2 — Install
There is no license file to install and no endpoint to configure; the client is one package.
Install it with the front-end you model in. The examples on this page use
OR-Tools MathOpt; for Pyomo install quicopt[pyomo] instead.
pip install "quicopt[mathopt]"
Step 3 — Set your API key
The client reads your key from the environment variable QUICOPT_API_KEY, so it
never has to appear in your code:
export QUICOPT_API_KEY=qo_your_key_here
On Windows (PowerShell) that is $env:QUICOPT_API_KEY = "qo_your_key_here". To
keep the key across sessions, add the line to your shell profile; in R you can
put QUICOPT_API_KEY=qo_your_key_here into your .Renviron instead. You can
also pass the key in code, but then it ends up wherever your code goes; see
API keys.
Step 4 — Run an example
A ready-to-run script that solves a small QUBO: four binary variables, a reward for each and a penalty for each adjacent pair on a cycle. Save it and run it. In Python there is a small MILP as well; each slide shows the model and exactly what prints:
Step 5 — Understand what happened
The example did three things:
- Built a model — a standard MathOpt
Modelwith variables, an objective, and (in the MILP) constraints. Nothing in it is Quicopt-specific; the same code runs against any MathOpt-compatible solver, and a Pyomo model works the same way. - Called
client.solve(model)—Client()needs no arguments: it reads your key fromQUICOPT_API_KEYand sends the model to the Quicopt service. If the key is missing or wrong, the call fails with a message that says so and where to get a key. - Printed and returned the result —
result.displayis the framed view the server renders. It opens with ashotsblock: the service takes several shots at your model and shows you what each one reached, with◀ beston the one that won. Below it sit the summary lines, and theResultobject carries the same values as fields —status,objective, and thesolutionkeyed by your variable names. Every field is described in the API reference.
What you can solve today
The API currently solves LP, QP, MILP, MIQP, MINLP, QUBO, PUBO/HUBO, and NLP models — there is a runnable example for each. Black-box objectives are coming soon; a model outside today's classes is declined with a readable message, never a half-solved result.
Beyond the free tier
The free account solves models with up to 50 variables and comes with a limited compute allowance. For larger models we can give you 30 days of evaluation access without that limit. For regular use there are token packages, and for production planning an enterprise license; see Pricing. Questions, or real models you want to try Quicopt on? Just ask:
Questions? Talk to us.
Whether something's unclear or you want to try Quicopt on your real models — tell us what you're optimizing.
Where next
- Examples — a runnable model for every supported problem class, including how an infeasible model comes back.
- API reference — the
quicoptPython client in full:Client,solve(), theResultfields, and the async job API. - Modeling front-ends — what you can express in Pyomo and OR-Tools MathOpt.
About this service
The free tier is provided as-is, for evaluation and research only — without availability, functionality or result guarantees, and without any service level. Liability is limited, to the extent permitted by law, to intent and gross negligence.
We keep the data you send over the API for 24 months to improve future versions of our solvers; you can delete a job at any time from the client. Please don't submit personal, confidential or otherwise sensitive data inside an optimization model — the service isn't designed for that. Full details: Terms of Use · Privacy Policy · Legal notice.