Panel API
Use the API workbench at /rust/api to
locate registered operations, select a route, generate copyable
command-line, Python and JavaScript examples, inspect its schema and
send an authorized test request. The separate OpenAPI browser is
/rust/api/openapi and the machine-readable description is
GET /api/openapi.json (OpenAPI 3.1).
Connect safely
- Open API workbench and read Base
URLs. Read gateway URL and availability
queries
GET /api/gateway/connect. The response'sbase_urlis the compatible client base, ending in/v1. - Open Authentication and follow Access and
API keys. In multi-user mode create a key; use it only over a
protected connection. The key is shown at creation, not on the inventory
page. Automation tokens can be scoped; check
x-lexipanel-scopeandx-lexipanel-roleon the operation in OpenAPI. A scoped token cannot mint or rotate credentials even if its scope is broad. - Open Endpoint catalog and expand Browse
every endpoint (generated from route registration). Choose an
endpoint to view its examples. Administrators can also choose
Method and endpoint and press Generate
examples. Copy a command-line, Python or JavaScript sample. Set
PANEL_URLto the Panel origin (without/v1) andPANEL_TOKENto the Access-issued secret. Do not paste the secret into the workbench. - An authorized administrator may use In-page tester, supply JSON body for POST, and press Send test request. The tester calls the registered route handler with the original authenticated caller. Only allowlisted operations are enabled; credential changes, file operations and engine-only routes are examples-only. A test checks the exact selected route against both the allowlist and the caller’s role and token scope before calling its registered owner.
- Use View OpenAPI document to inspect operations, required roles and scopes. Machine-readable document exposes the full schema. The preview bounds content and hides credential-like values. Some operation request schemas are intentionally generic: fill required fields from the matching operation contract before sending.
Supported surfaces and their limits
| Route | Ownership | Meaning |
|---|---|---|
GET /api/openapi.json |
Panel | Registered machine-readable operations, roles and scopes |
GET /api/gateway/connect |
Panel | Effective gateway connection instructions and URL |
GET /v1/models |
Panel | Published model inventory; an empty list cannot serve inference |
POST /v1/chat/completions |
HTTP dispatcher | Gateway chat completions, requiring a bound model |
POST /v1/embeddings |
Panel | Forwards to a selected embedding executor; mere registration is insufficient |
POST /v1/decisions |
Panel | Uses an existing active, qualified decision profile |
POST /v1/decide |
Separate engine | Engine-only typed scorer, not a Panel proxy |
POST /v1/messages |
Separate engine | Messages compatibility, subject to live engine capability |
GET /api/health |
HTTP dispatcher | Panel liveness; not engine or model readiness |
OpenAPI browser uses the same owner as
GET /api/openapi.json, not a copied static route file.
Viewer sessions can inspect permitted read-only information but never
receive the administrator workbench test forms. Native guides check each
prerequisite and each action against the same route-level authorization
used for direct requests. Every selectable Panel native operation comes
from route registration. The catalogue also distinguishes explicitly
documented HTTP-dispatch and engine-only operations. The tester refuses
unsupported or privileged replays instead of guessing a response.
Guided tasks
Connect existing client
(api.existing-client) checks
GET /api/gateway/connect,
GET /api/openapi.json, GET /v1/models, then
links back to the workbench for manual client setup. It does not claim
that an empty inventory means inference works.
Typed decision from script
(api.typed-decision) obtains the profile list from
GET /api/decisions, requests a Profile ID
and Decision state, then sends the typed payload to
POST /v1/decisions. It reports the real refusal if no
validated active profile exists. These guides are administrator-only.
They do not mutate configuration; the manual setup step is not
automatically marked complete, so no undo is needed.
Other API guides
See Compatible clients, Messages, Typed decisions, and Embeddings.
Control reference
| Control | Help text |
|---|---|
API overview (api.overview) |
Find registered routes and distinguish registration from a running inference service. |
Authentication key (api.key) |
Use a key created in Access; the Panel does not re-display secret key material. |
Endpoint catalog (api.catalog) |
Choose a route from the registered API inventory; separate engine-only routes are identified. |
Generate examples (api.examples) |
Produce copyable command-line, Python and JavaScript examples for the selected endpoint. |
Send test request (api.test) |
Send an allowlisted, non-destructive request through its real Panel handler, preserving authorization. |
OpenAPI browser (api.openapi) |
Inspect the live schema and each operation's required role and token scope. |
Panel liveness (api.health) |
Check Panel health separately from inference readiness; liveness does not prove a model is loaded. |
Guided API setup (api.guides) |
Verify actual gateway or decision prerequisites; manual setup is not reported as completed. |