Solving

Send the encoded model to the Quicopt service and read back the result.

QuicoptClient.solveFunction
solve(model::JuMP.Model; kwargs...) -> JSON3.Object

Read model, encode it, and solve it on the Quicopt service. Tags the call with source_language = "jump" (the modeling library it was written in) unless overridden. See the byte method below for the keyword arguments (incl. project).

source
solve(bytes; base_url, key, source_language, project, key_path, async, poll, timeout, silent, transport) -> JSON3.Object

POST an already-encoded model and return the parsed JSON result (status, objective, feasible, solution, display, …). async=true submits to /v1/jobs and polls to completion (use it for the first call against a cold server — the worker warmup can 504 a sync call); otherwise it is one /v1/solve. Pass key to authenticate with a specific key you already hold (e.g. a distributed internal/test key) — it is used as-is and never written to disk. Otherwise, on the first keyless call the server mints a free key, cached at key_path (0o600, see KEY_PATH_ENV) and replayed as a Bearer token thereafter — including by later runs, so one caller keeps one key. A cached key the server rejects is discarded and re-minted once. source_language and project tag the call (which modeling library wrote it; a project label for per-project invoicing) — sent as query params, not baked into the model. A non-2xx response throws QuicoptError. silent=true suppresses printing the result banner.

source
QuicoptClient.QuicoptErrorType
QuicoptError(status, reason, message, display)

A non-2xx response from the service. reason is the stable machine code (e.g. "unsupported_model", "quota_exhausted"); display is the server's ready-to-print framed message, shown by showerror when present.

source

Where it sends, and where the key lives

QuicoptClient.KEY_PATH_ENVConstant
KEY_PATH_ENV

Environment variable overriding where the free key is cached. Point it at durable storage in an environment whose home directory does not survive the run (CI, containers), where the default location is wiped between sessions and every run would otherwise mint a fresh key.

source