Bifrost

Admin API reference

Every admin route, grouped by area. Exact request/response shapes are in the OpenAPI spec.

All /admin/* routes require Authorization: Bearer $MASTER_KEY. Success responses use { "data": ... }; paginated lists use { "data": [...], "pagination": { limit, offset, total, nextOffset } }. This page is a map of what exists; for exact request/response bodies, see apps/gateway/openapi.yaml or the interactive spec (see API guide).

Deployments

RoutePurpose
GET /admin/operationsAvailable operations, required credentials, and transports per adapter.
POST /admin/deployments/resolveDry-run: resolve effective capabilities/operations/transports for a body, without saving.
GET /admin/deploymentsList deployments. Query: enabled, publicModel, q (search name/prefix).
POST /admin/deploymentsCreate a deployment (see Creating deployments).
GET /admin/deployments/:idRead one deployment.
PATCH /admin/deployments/:idUpdate a deployment.
DELETE /admin/deployments/:idDelete a deployment.

Virtual keys

RoutePurpose
GET /admin/keysList keys. Query: limit, offset, enabled, publicModel, q (search name/prefix).
POST /admin/keysCreate a virtual key (see Virtual keys).
PATCH /admin/keys/:idUpdate scope, limits, budget, or enabled state; send null to clear a limit.
DELETE /admin/keys/:idPermanently delete a key.

Router and fallbacks

RoutePurpose
GET /admin/router-settingsEffective router configuration (defaults if never set).
PUT /admin/router-settingsPatch any subset of routing/parameter-policy/retry settings — see Routing and Parameter policy.
GET /admin/fallbacksList fallback chains.
PUT /admin/fallbacksUpsert a chain (primaryModel, fallbackModels, optional reason).
DELETE /admin/fallbacks/:primaryModel/:reasonRemove a chain. See Fallbacks.

Cache

RoutePurpose
DELETE /admin/cacheClear cached entries. Query: callType, namespace (a virtual key id) — omit both to clear everything. See Caching.

Logs and usage

RoutePurpose
GET /admin/logsPaginated operation summaries. Filters include outcome, degraded, active, terminalVerified, failureKind, failurePhase, duration, model, key, request id, cache, and time range.
GET /admin/logs/:operationIdFull operation record and ordered upstream-attempt timeline.
GET /admin/logs/:operationId/payloadDecrypt a retained forensic sample. Master-only and audit logged; returns 404 when no sample exists.
GET /admin/observability/summaryOutcomes, degraded/stalled/active/abandoned counts, retries, and latency percentiles for `window=5m
GET /admin/usageConsumer usage/cost and estimated upstream cost across every attempt; group by public model, virtual key, day, or none. See Cost accounting.

Extensions

RoutePurpose
GET /admin/extensionsLoaded definitions and configured instances, with live status.
GET /admin/extensions/artifactsList uploaded extension modules (by key).
GET /admin/extensions/artifacts/:key/versionsVersion history for one module key.
POST /admin/extensions/artifactsUpload a new version of a module (key, code). Triggers a hot-reload on every replica.
POST /admin/extensions/artifacts/:key/activateRoll back/forward to a specific previously-uploaded version.
DELETE /admin/extensions/artifacts/:keyDelete a module and all its versions.
GET /admin/extensions/instancesList configured instances (definition bindings).
POST /admin/extensions/instancesCreate an instance (id, definition, plus enabled/critical/priority/match/config).
PATCH /admin/extensions/instances/:idUpdate an instance.
DELETE /admin/extensions/instances/:idRemove an instance.
POST /admin/extensions/:id/resetClear a tripped circuit breaker and re-activate the instance for the current process.

Full walkthrough, hook semantics, and failure behavior: Runtime extensions.

On this page