# Bifrost: API Platform

## Platform

### Health

- [Health check](https://docs.getbifrost.ai/api-reference/health/health-check.md): Returns the health status of the Bifrost server. Checks connectivity to config store, log store, and vector store if configured. Unauthenticated by design - `/health` is in the auth middleware's system whitelist.

### Configuration

- [Get configuration](https://docs.getbifrost.ai/api-reference/configuration/get-configuration.md): Retrieves the current Bifrost configuration including client config, framework config, auth config, and connection status for various stores.
- [Update configuration](https://docs.getbifrost.ai/api-reference/configuration/update-configuration.md): Updates the Bifrost configuration. Supports hot-reloading of certain settings like drop_excess_requests. Some settings may require a restart to take effect.
- [Get version](https://docs.getbifrost.ai/api-reference/configuration/get-version.md): Returns the current Bifrost version information. Unauthenticated by design - `/api/version` is in the auth middleware's system whitelist.
- [Get proxy configuration](https://docs.getbifrost.ai/api-reference/configuration/get-proxy-configuration.md): Retrieves the current global proxy configuration.
- [Update proxy configuration](https://docs.getbifrost.ai/api-reference/configuration/update-proxy-configuration.md): Updates the global proxy configuration. Setting a new proxy url or turning on skip_tls_verify requires a genuinely authenticated admin session - it is refused with 403 if dashboard authentication is disabled or unconfigured, even though other management endpoints remain reachable in that state. Savi…
- [Force pricing sync](https://docs.getbifrost.ai/api-reference/configuration/force-pricing-sync.md): Triggers an immediate pricing sync and resets the pricing sync timer.

### Session

- [Login](https://docs.getbifrost.ai/api-reference/session/login.md): Authenticates a user and returns a session token. Sets a cookie with the session token for subsequent requests.
- [Logout](https://docs.getbifrost.ai/api-reference/session/logout.md): Logs out the current user and invalidates the session token.
- [Check if authentication is enabled](https://docs.getbifrost.ai/api-reference/session/check-if-authentication-is-enabled.md): Returns whether authentication is enabled and if the current token is valid.
- [Issue WebSocket ticket](https://docs.getbifrost.ai/api-reference/session/issue-websocket-ticket.md): Issues a short-lived ticket for authenticating WebSocket connections. The ticket can be used as a query parameter when upgrading to WebSocket.

### Providers

- [List all providers](https://docs.getbifrost.ai/api-reference/providers/list-all-providers.md): Returns a list of all configured providers with their configurations and status.
- [Add a new provider](https://docs.getbifrost.ai/api-reference/providers/add-a-new-provider.md): Adds a new provider with the specified configuration. Setting network_config.base_url or network_config.allow_private_network requires a genuinely authenticated admin session - it is refused with 403 if dashboard authentication is disabled or unconfigured, even though other management endpoints rema…
- [Get a specific provider](https://docs.getbifrost.ai/api-reference/providers/get-a-specific-provider.md): Returns the configuration for a specific provider.
- [Update a provider](https://docs.getbifrost.ai/api-reference/providers/update-a-provider.md): Updates a provider's configuration. Expects ALL fields to be provided, including both edited and non-edited fields. Partial updates are not supported. Changing network_config.base_url, or turning on network_config.allow_private_network (with or without a base URL), requires a genuinely authenticated…
- [Delete a provider](https://docs.getbifrost.ai/api-reference/providers/delete-a-provider.md): Removes a provider from the configuration.
- [List keys for a provider](https://docs.getbifrost.ai/api-reference/providers/list-keys-for-a-provider.md): Returns all keys configured for a specific provider.
- [Create a key for a provider](https://docs.getbifrost.ai/api-reference/providers/create-a-key-for-a-provider.md): Creates a new API key for the specified provider. The key `id` is auto-generated if omitted. `enabled` defaults to `true` if omitted. `value` is required and must not be empty. Keys cannot be created on keyless providers. Setting any field that chooses the host Bifrost sends this key's credentials t…
- [Get a specific key for a provider](https://docs.getbifrost.ai/api-reference/providers/get-a-specific-key-for-a-provider.md): Returns a single key for the specified provider.
- [Update a key for a provider](https://docs.getbifrost.ai/api-reference/providers/update-a-key-for-a-provider.md): Updates an existing key. Send the full key object. Redacted values sent back unchanged are automatically preserved (the server merges them with the stored raw values). Setting, changing, or removing any field that chooses the host Bifrost sends this key's credentials to requires a genuinely authenti…
- [Delete a key from a provider](https://docs.getbifrost.ai/api-reference/providers/delete-a-key-from-a-provider.md): Deletes a key from the specified provider. Returns the deleted key.
- [List all keys](https://docs.getbifrost.ai/api-reference/providers/list-all-keys.md): Returns a list of all configured API keys across all providers.
- [List models](https://docs.getbifrost.ai/api-reference/providers/list-models.md): Lists available models with optional filtering by query, provider, or keys.
- [List model details](https://docs.getbifrost.ai/api-reference/providers/list-model-details.md): Lists available models with capability metadata, when available from the model catalog, with optional filtering by query, provider, or keys.
- [Get model parameters](https://docs.getbifrost.ai/api-reference/providers/get-model-parameters.md): Returns the available parameter definitions for a model. The model ID is resolved against the model-parameters catalog with fallbacks, so provider-qualified IDs returned by /v1/models (e.g. "openai/gpt-4o", "openrouter/openai/gpt-4o") and bare aliases of provider-qualified catalog entries resolve to…
- [List base models](https://docs.getbifrost.ai/api-reference/providers/list-base-models.md): Returns a list of base models from the model catalog.

### Plugins

- [List all plugins](https://docs.getbifrost.ai/api-reference/plugins/list-all-plugins.md): Returns a list of all plugins with their configurations and status. The `actualName` field contains the plugin name from `GetName()` (used as the map key), while `name` contains the display name from the configuration. The `types` array in the status shows which interfaces the plugin implements (llm…
- [Create a new plugin](https://docs.getbifrost.ai/api-reference/plugins/create-a-new-plugin.md): Creates a new plugin with the specified configuration. Setting `path` on a non-builtin plugin loads native code (a .so, via dlopen) into the gateway process and requires genuine admin authentication - it is refused with 403 if dashboard authentication is disabled or unconfigured, even though other m…
- [List built-in plugin names](https://docs.getbifrost.ai/api-reference/plugins/list-built-in-plugin-names.md): Returns the canonical list of built-in plugin names available in this Bifrost build. Use this to discover which plugins can be enabled without supplying a custom binary.
- [Get a specific plugin](https://docs.getbifrost.ai/api-reference/plugins/get-a-specific-plugin.md): Returns the configuration for a specific plugin. The response includes the plugin status with types array showing which interfaces the plugin implements (llm, mcp, http). The `actualName` field shows the plugin name from GetName() (used as the map key), which may differ from the display name (`name`…
- [Update a plugin](https://docs.getbifrost.ai/api-reference/plugins/update-a-plugin.md): Updates a plugin's configuration. Will reload or stop the plugin based on enabled status. The response `actualName` field shows the plugin name from GetName() (used as the map key), which may differ from the display name (`name`). Setting `path` on a non-builtin plugin loads native code (a .so, via…
- [Delete a plugin](https://docs.getbifrost.ai/api-reference/plugins/delete-a-plugin.md): Removes a plugin from the configuration and stops it if running.

### MCP

- [Execute MCP tool](https://docs.getbifrost.ai/api-reference/mcp/execute-mcp-tool.md): Executes an MCP tool and returns the result.
- [List MCP clients](https://docs.getbifrost.ai/api-reference/mcp/list-mcp-clients.md): Returns a paginated list of configured MCP clients with their tools and connection state. Supports case-insensitive name search and exact-match filtering by connection type, auth type, code-mode, and enabled/disabled status. Multi-value filters accept a comma-separated list and use OR semantics with…
- [Add MCP client](https://docs.getbifrost.ai/api-reference/mcp/add-mcp-client.md): Adds a new MCP client with the specified configuration. Note: tool_pricing is not available when creating a new client; tool pricing can only be set once the tool list is known. For shared-connection clients tools are fetched after client creation; for per-user auth types they are discovered during…
- [Edit MCP client](https://docs.getbifrost.ai/api-reference/mcp/edit-mcp-client.md): Updates an existing MCP client's configuration. All fields are optional (PATCH semantics); connection_type, auth_type, connection_string, stdio_config, and oauth_config_id are immutable after creation. Unlike client creation, tool_pricing can be included to set per-tool execution costs since tools a…
- [Remove MCP client](https://docs.getbifrost.ai/api-reference/mcp/remove-mcp-client.md): Removes an MCP client from the configuration.
- [Reconnect MCP client](https://docs.getbifrost.ai/api-reference/mcp/reconnect-mcp-client.md): Reconnects an MCP client that is in an error or unstable state. Not applicable (400) to any per-call client — a shared client running per-call (needs_session_stickiness false/omitted) as well as any per-user auth type — since none of them hold a shared upstream connection to re-establish. Also not a…
- [Complete MCP client OAuth flow](https://docs.getbifrost.ai/api-reference/mcp/complete-mcp-client-oauth-flow.md): Completes an OAuth flow for an MCP client after the admin has authorized the request upstream. Call it once the flow's status_url reports "authorized". It serves every admin-side OAuth completion with one endpoint:
- [Initiate verification for a pending MCP client](https://docs.getbifrost.ai/api-reference/mcp/initiate-verification-for-a-pending-mcp-client.md): Starts the one-time admin OAuth authorization for an MCP client sitting in pending_verification state (declared via config.json with auth_type "oauth" or "per_user_oauth"). Runs OAuth metadata discovery (RFC 8414) and dynamic client registration (RFC 7591) against the client's connection_string when…
- [Reauthorize an MCP client](https://docs.getbifrost.ai/api-reference/mcp/reauthorize-an-mcp-client.md): Redoes the OAuth consent flow for an already-authorized OAuth-based MCP client, without delete-and-recreate. The flow always runs against the credentials currently stored on the client's OAuth config.
- [Verify a pending per-user-headers MCP client](https://docs.getbifrost.ai/api-reference/mcp/verify-a-pending-per-user-headers-mcp-client.md): Completes the admin verification for an MCP client with auth_type "per_user_headers". The admin supplies sample values for every declared per_user_header_keys entry; Bifrost opens an upstream connection with them, discovers the tool list, persists it, and transitions the client to connected. The sam…
- [Verify a pending or repair a needs_reauth token_exchange MCP client](https://docs.getbifrost.ai/api-reference/mcp/verify-a-pending-or-repair-a-needs_reauth-token_exchange-mcp-client.md): Completes admin verification for an MCP client with auth_type "token_exchange". No request body: the subject of the exchange is always the signed-in admin's own identity-provider token (from an SSO session or an identity-authenticated bearer request) — there is no manual token input. Bifrost exchang…
- [List MCP sessions](https://docs.getbifrost.ai/api-reference/mcp/list-mcp-sessions.md): Returns every per-user MCP authentication artifact visible to the caller: OAuth tokens, header credentials, and pending submission / consent flows.
- [Revoke an MCP session](https://docs.getbifrost.ai/api-reference/mcp/revoke-an-mcp-session.md): Revokes a session by primary key. Accepts these row kinds: - OAuth token rows → hard-deletes the token plus any pending OAuth flow   for the same binding (so an in-flight callback can't undo the revoke) - Header credential rows → hard-deletes the credential plus any pending   header submission flow…
- [Re-authenticate or edit an MCP session](https://docs.getbifrost.ai/api-reference/mcp/re-authenticate-or-edit-an-mcp-session.md): Mints a fresh authentication flow against the same MCP client and identity as the existing row. Two branches based on row type:
- [Get per-user-headers submission flow](https://docs.getbifrost.ai/api-reference/mcp/get-per-user-headers-submission-flow.md): Returns the pending submission flow row plus the live MCP client's schema (required header names + optional admin header names). Used by the `/workspace/mcp-sessions/auth?flow=<id>&kind=headers` landing page to render the values form.
- [Submit per-user-headers values](https://docs.getbifrost.ai/api-reference/mcp/submit-per-user-headers-values.md): Consumes a pending submission flow row: verifies the caller's values against the upstream MCP server, upserts the credential keyed by the flow row's (mode, identity), then deletes the flow row and the bound temp token. Mirrors the OAuth callback's "complete the flow" semantics.
- [Revoke a per-user-headers credential](https://docs.getbifrost.ai/api-reference/mcp/revoke-a-per-user-headers-credential.md): Hard-deletes a per-user-headers credential row by primary key. Authorization scoping is enforced server-side — callers may only delete credentials visible to their identity.

### MCP Tool Groups

- [List MCP Tool Groups](https://docs.getbifrost.ai/api-reference/mcp-tool-groups/list-mcp-tool-groups.md): Returns tool groups visible to the caller. When all of `limit`, `offset`, and `search` are omitted, every group is returned in one response.
- [Create MCP Tool Group](https://docs.getbifrost.ai/api-reference/mcp-tool-groups/create-mcp-tool-group.md): Creates a new tool group along with its attachments in a single transaction. Validates that every `mcp_client_id` points to a deployed MCP client and that every named tool exists on its server.
- [Get MCP Tool Group by ID](https://docs.getbifrost.ai/api-reference/mcp-tool-groups/get-mcp-tool-group-by-id.md)
- [Update MCP Tool Group](https://docs.getbifrost.ai/api-reference/mcp-tool-groups/update-mcp-tool-group.md): Partial update. Scalar fields preserve the current value when omitted. Array fields are replace-on-send: an empty array clears all attachments in that dimension.
- [Delete MCP Tool Group](https://docs.getbifrost.ai/api-reference/mcp-tool-groups/delete-mcp-tool-group.md): Deletes the group; attachments are removed automatically.

### OAuth

- [Get per-user OAuth flow detail](https://docs.getbifrost.ai/api-reference/oauth/get-per-user-oauth-flow-detail.md): Returns the pending OAuth flow row metadata: which MCP client is being authorized, which identity (user / VK / session) the resulting token will be bound to, and whether an active token already exists for that binding (`has_active_token`).
- [Start the upstream OAuth authorization for a pending flow](https://docs.getbifrost.ai/api-reference/oauth/start-the-upstream-oauth-authorization-for-a-pending-flow.md): Reconstructs the upstream provider's authorize URL for a pending OAuth flow. The auth-landing page redirects the browser to that URL; the user completes upstream auth; the upstream provider redirects back to `/api/oauth/callback`, which exchanges the code for tokens server-side and stores them again…
- [OAuth callback endpoint](https://docs.getbifrost.ai/api-reference/oauth/oauth-callback-endpoint.md): Handles the OAuth provider callback after user authorization. This endpoint processes the authorization code and exchanges it for an access token. On success, displays an HTML page that closes the authorization window.
- [Get OAuth config status](https://docs.getbifrost.ai/api-reference/oauth/get-oauth-config-status.md): Retrieves the current status of an OAuth configuration. Shows whether the OAuth flow is pending, authorized, or failed, and includes token expiration and scopes if authorized.
- [Revoke OAuth config](https://docs.getbifrost.ai/api-reference/oauth/revoke-oauth-config.md): Revokes a server-level OAuth configuration and its associated access token. After revocation, the MCP client will no longer be able to use this OAuth token. Revocation is not terminal for the client: an admin can restore access by redoing consent via POST /api/mcp/client/{id}/reauthorize, which runs…

### Circuit Breaker

- [List circuit breaker policies](https://docs.getbifrost.ai/api-reference/circuit-breaker/list-circuit-breaker-policies.md): Returns all circuit breaker policies defined in this workspace.
- [Create circuit breaker policy](https://docs.getbifrost.ai/api-reference/circuit-breaker/create-circuit-breaker-policy.md): Creates a new circuit breaker policy and immediately activates it in the running gateway. Returns 409 if a policy with the same name already exists.
- [Update circuit breaker policy](https://docs.getbifrost.ai/api-reference/circuit-breaker/update-circuit-breaker-policy.md): Replaces a circuit breaker policy by name. The `name` field in the request body must match the URL parameter or be omitted. Changes take effect immediately in the running gateway.
- [Delete circuit breaker policy](https://docs.getbifrost.ai/api-reference/circuit-breaker/delete-circuit-breaker-policy.md): Deletes a circuit breaker policy by name and removes it from the running gateway. Any open circuits for this policy are discarded immediately.
- [Get circuit breaker state](https://docs.getbifrost.ai/api-reference/circuit-breaker/get-circuit-breaker-state.md): Returns a snapshot of all currently-open circuits. Main circuits are keyed by policy name. Per-key sub-circuits are keyed by `"<policy_name>\x00<key_id>"`. Circuits not present in the map are closed.

### Logging

- [Get logs](https://docs.getbifrost.ai/api-reference/logging/get-logs.md): Retrieves logs with filtering, search, and pagination via query parameters.
- [Delete logs](https://docs.getbifrost.ai/api-reference/logging/delete-logs.md): Deletes logs by their IDs.
- [Get a single log entry](https://docs.getbifrost.ai/api-reference/logging/get-a-single-log-entry.md): Retrieves a single log entry by its ID.
- [Get logs for a session](https://docs.getbifrost.ai/api-reference/logging/get-logs-for-a-session.md): Returns the paginated logs belonging to a single parent-request session (grouped by `parent_request_id`). Sorted ascending by timestamp by default.
- [Get aggregate totals for a session](https://docs.getbifrost.ai/api-reference/logging/get-aggregate-totals-for-a-session.md): Returns aggregate request count, token usage, cost, and duration for a single session.
- [Get log statistics](https://docs.getbifrost.ai/api-reference/logging/get-log-statistics.md): Returns statistics for logs matching the specified filters.
- [Get request count histogram](https://docs.getbifrost.ai/api-reference/logging/get-request-count-histogram.md): Returns time-bucketed request counts. Bucket size is auto-calculated from the time range.
- [Get token usage histogram](https://docs.getbifrost.ai/api-reference/logging/get-token-usage-histogram.md): Returns time-bucketed token usage (prompt, completion, total).
- [Get cost histogram](https://docs.getbifrost.ai/api-reference/logging/get-cost-histogram.md): Returns time-bucketed cost data with model breakdown.
- [Get model usage histogram](https://docs.getbifrost.ai/api-reference/logging/get-model-usage-histogram.md): Returns time-bucketed model usage with success/error breakdown.
- [Get latency histogram](https://docs.getbifrost.ai/api-reference/logging/get-latency-histogram.md): Returns time-bucketed latency percentiles (avg, p90, p95, p99).
- [Get cost histogram by provider](https://docs.getbifrost.ai/api-reference/logging/get-cost-histogram-by-provider.md): Returns time-bucketed cost data with provider breakdown.
- [Get token histogram by provider](https://docs.getbifrost.ai/api-reference/logging/get-token-histogram-by-provider.md): Returns time-bucketed token usage with provider breakdown.
- [Get latency histogram by provider](https://docs.getbifrost.ai/api-reference/logging/get-latency-histogram-by-provider.md): Returns time-bucketed latency percentiles with provider breakdown.
- [Get throughput histogram](https://docs.getbifrost.ai/api-reference/logging/get-throughput-histogram.md): Returns time-bucketed token-generation throughput in tokens per second. The bucket size is derived from the requested window.
- [Get throughput histogram by provider](https://docs.getbifrost.ai/api-reference/logging/get-throughput-histogram-by-provider.md): Returns time-bucketed tokens per second with a per-provider breakdown.
- [Get cost histogram by dimension](https://docs.getbifrost.ai/api-reference/logging/get-cost-histogram-by-dimension.md): Returns time-bucketed cost data grouped by an arbitrary dimension (`provider`, `team_id`, `customer_id`, `user_id`, `business_unit_id`, `project_id`, `app`, `user_agent`). The dimension is supplied via the required `dimension` query parameter.
- [Get token histogram by dimension](https://docs.getbifrost.ai/api-reference/logging/get-token-histogram-by-dimension.md): Returns time-bucketed token usage grouped by an arbitrary dimension. See `getLogsDimensionCostHistogram` for the list of supported dimensions.
- [Get latency histogram by dimension](https://docs.getbifrost.ai/api-reference/logging/get-latency-histogram-by-dimension.md): Returns time-bucketed latency percentiles (avg, p90, p95, p99) grouped by an arbitrary dimension.
- [Get dropped requests count](https://docs.getbifrost.ai/api-reference/logging/get-dropped-requests-count.md): Returns the number of dropped requests.
- [Get available filter data](https://docs.getbifrost.ai/api-reference/logging/get-available-filter-data.md): Returns the distinct values each filter dimension offers, drawn from the logs of roughly the last month.
- [Get model usage rankings](https://docs.getbifrost.ai/api-reference/logging/get-model-usage-rankings.md): Returns models ranked by usage with trend percentages versus the previous comparable period. Accepts the same filter parameters as the histogram endpoints.
- [Get rankings by governance dimension](https://docs.getbifrost.ai/api-reference/logging/get-rankings-by-governance-dimension.md): Returns the entities of one governance dimension ranked by spend, tokens and request volume, with trend percentages versus the previous comparable period. Requests carrying no value for the dimension are reported under an `Unassigned` entry rather than dropped, so the rows reconcile with real traffi…
- [Get user usage rankings](https://docs.getbifrost.ai/api-reference/logging/get-user-usage-rankings.md): Returns users ranked by spend, tokens and request volume, with trend percentages versus the previous comparable period. Only requests that resolved to a user are counted.
- [Get consolidated dashboard data](https://docs.getbifrost.ai/api-reference/logging/get-consolidated-dashboard-data.md): Returns every metric shown on the workspace dashboard in a single response: overview totals and histograms, provider usage, model rankings, dimension rankings (team, user, virtual key, customer, business unit), and MCP usage. Intended for external integrations that want the full dashboard in one cal…
- [Recalculate log costs](https://docs.getbifrost.ai/api-reference/logging/recalculate-log-costs.md): Starts an asynchronous background job that recalculates log costs in batches. The returned payload is a job status object that can be polled via the status endpoint.
- [Get log cost recalculation status](https://docs.getbifrost.ai/api-reference/logging/get-log-cost-recalculation-status.md): Returns the current status of a log cost recalculation job. When `id` is omitted, the current in-flight job is returned, or `idle` when no job is running.
- [Cancel log cost recalculation](https://docs.getbifrost.ai/api-reference/logging/cancel-log-cost-recalculation.md): Cancels the recalculation job selected by `id`, or the current in-flight recalculation when `id` is omitted. Cancellation stops further batches; cost updates already committed to log records are retained and are not rolled back. Logs that the job has not processed remain unchanged.
- [Get MCP tool logs](https://docs.getbifrost.ai/api-reference/logging/get-mcp-tool-logs.md): Retrieves MCP tool execution logs with filtering, search, and pagination via query parameters.
- [Delete MCP tool logs](https://docs.getbifrost.ai/api-reference/logging/delete-mcp-tool-logs.md): Deletes MCP tool logs by their IDs.
- [Get MCP tool log by ID](https://docs.getbifrost.ai/api-reference/logging/get-mcp-tool-log-by-id.md): Retrieves a single MCP tool execution log by ID, including hydrated object-storage payloads when configured.
- [Get MCP tool log statistics](https://docs.getbifrost.ai/api-reference/logging/get-mcp-tool-log-statistics.md): Returns statistics for MCP tool logs matching the specified filters.
- [Get available MCP log filter data](https://docs.getbifrost.ai/api-reference/logging/get-available-mcp-log-filter-data.md): Returns all unique filter data from MCP tool logs (tool names, server labels).
- [Get MCP tool call volume histogram](https://docs.getbifrost.ai/api-reference/logging/get-mcp-tool-call-volume-histogram.md): Returns time-bucketed MCP tool call volume with success/error breakdown.
- [Get MCP cost histogram](https://docs.getbifrost.ai/api-reference/logging/get-mcp-cost-histogram.md): Returns time-bucketed MCP tool call cost data.
- [Get top MCP tools by call count](https://docs.getbifrost.ai/api-reference/logging/get-top-mcp-tools-by-call-count.md): Returns the top 10 MCP tools by call count, with cost totals.

### Prompt Repository

- [List folders](https://docs.getbifrost.ai/api-reference/prompt-repository/list-folders.md): Returns all prompt folders.
- [Create folder](https://docs.getbifrost.ai/api-reference/prompt-repository/create-folder.md): Creates a new prompt folder.
- [Get folder](https://docs.getbifrost.ai/api-reference/prompt-repository/get-folder.md): Returns a folder by ID.
- [Update folder](https://docs.getbifrost.ai/api-reference/prompt-repository/update-folder.md): Updates a folder's name or description.
- [Delete folder](https://docs.getbifrost.ai/api-reference/prompt-repository/delete-folder.md): Deletes a folder and cascades to contained prompts.
- [List prompts](https://docs.getbifrost.ai/api-reference/prompt-repository/list-prompts.md): Returns all prompts, optionally filtered by folder.
- [Create prompt](https://docs.getbifrost.ai/api-reference/prompt-repository/create-prompt.md): Creates a new prompt.
- [Get prompt](https://docs.getbifrost.ai/api-reference/prompt-repository/get-prompt.md): Returns a prompt by ID with its latest version.
- [Update prompt](https://docs.getbifrost.ai/api-reference/prompt-repository/update-prompt.md): Updates a prompt's name or folder.
- [Delete prompt](https://docs.getbifrost.ai/api-reference/prompt-repository/delete-prompt.md): Deletes a prompt and all its versions and sessions.
- [List prompt versions](https://docs.getbifrost.ai/api-reference/prompt-repository/list-prompt-versions.md): Returns all versions for a prompt.
- [Create prompt version](https://docs.getbifrost.ai/api-reference/prompt-repository/create-prompt-version.md): Creates a new version for a prompt.
- [Get prompt version](https://docs.getbifrost.ai/api-reference/prompt-repository/get-prompt-version.md): Returns a specific version by ID.
- [Delete prompt version](https://docs.getbifrost.ai/api-reference/prompt-repository/delete-prompt-version.md): Deletes a specific version.
- [List prompt sessions](https://docs.getbifrost.ai/api-reference/prompt-repository/list-prompt-sessions.md): Returns all sessions for a prompt.
- [Create prompt session](https://docs.getbifrost.ai/api-reference/prompt-repository/create-prompt-session.md): Creates a new playground session for a prompt.
- [Get prompt session](https://docs.getbifrost.ai/api-reference/prompt-repository/get-prompt-session.md): Returns a specific session by ID.
- [Update prompt session](https://docs.getbifrost.ai/api-reference/prompt-repository/update-prompt-session.md): Updates a session's messages, model params, etc.
- [Delete prompt session](https://docs.getbifrost.ai/api-reference/prompt-repository/delete-prompt-session.md): Deletes a specific session.
- [Rename prompt session](https://docs.getbifrost.ai/api-reference/prompt-repository/rename-prompt-session.md): Renames a session.
- [Commit session as version](https://docs.getbifrost.ai/api-reference/prompt-repository/commit-session-as-version.md): Commits the current session state as a new prompt version.

### Skills

- [Upload skill file](https://docs.getbifrost.ai/api-reference/skills/upload-skill-file.md): Uploads one file for later attachment to a skill version. The response contains either an object-storage key or a database blob ID.
- [Clean up orphan skill files](https://docs.getbifrost.ai/api-reference/skills/clean-up-orphan-skill-files.md): Deletes uploaded files that are not attached to any skill version. This is mostly a maintenance escape hatch: Bifrost also runs orphan cleanup on server startup. Non-forced cleanup preserves uploads newer than 24 hours so files are not deleted while a skill is still being edited.
- [Get all-skills version](https://docs.getbifrost.ai/api-reference/skills/get-all-skills-version.md): Returns the current version of the synthetic `bifrost-all-skills` marketplace plugin.
- [Bump all-skills version](https://docs.getbifrost.ai/api-reference/skills/bump-all-skills-version.md): Manually bumps the synthetic `bifrost-all-skills` plugin version as an escape hatch for marketplace refreshes.
- [List skills](https://docs.getbifrost.ai/api-reference/skills/list-skills.md): Returns a paginated list of skills from the Skills Repository.
- [Create skill](https://docs.getbifrost.ai/api-reference/skills/create-skill.md): Creates a new skill and immediately serves its first immutable version.
- [Get skill](https://docs.getbifrost.ai/api-reference/skills/get-skill.md): Returns a skill by ID. Pass `version` to inspect a historical version snapshot.
- [Update skill](https://docs.getbifrost.ai/api-reference/skills/update-skill.md): Creates a new immutable skill version. Set `serve` to false to save the version without switching the served version.
- [Delete skill](https://docs.getbifrost.ai/api-reference/skills/delete-skill.md): Deletes a skill and all of its versions.
- [List skill versions](https://docs.getbifrost.ai/api-reference/skills/list-skill-versions.md): Returns immutable version snapshots for a skill.
- [Shift served skill version](https://docs.getbifrost.ai/api-reference/skills/shift-served-skill-version.md): Changes the served version for a skill without deleting newer versions.
- [Get Claude Code skills marketplace](https://docs.getbifrost.ai/api-reference/skills/get-claude-code-skills-marketplace.md): Public marketplace JSON consumed by Claude Code. Available only when the Bifrost server can access the `git` binary.
- [Get Codex skills marketplace JSON](https://docs.getbifrost.ai/api-reference/skills/get-codex-skills-marketplace-json.md): Public Codex marketplace JSON for inspecting the skills and plugin sources exposed by Bifrost.
- [Download all skills as ZIP](https://docs.getbifrost.ai/api-reference/skills/download-all-skills-as-zip.md): Public ZIP download containing every currently served skill.
- [Download skill as ZIP](https://docs.getbifrost.ai/api-reference/skills/download-skill-as-zip.md): Public ZIP download containing a single currently served skill.
- [Download skill file](https://docs.getbifrost.ai/api-reference/skills/download-skill-file.md): Public raw file download from the currently served version of a skill.

### Cache

- [Clear cache entry by cache ID](https://docs.getbifrost.ai/api-reference/cache/clear-cache-entry-by-cache-id.md): Deletes a single cache entry by its storage ID. Read the cache ID from `extra_fields.cache_debug.cache_id` on a prior response — it is populated on both cache hits and cache misses.
- [Clear cache by cache key](https://docs.getbifrost.ai/api-reference/cache/clear-cache-by-cache-key.md): Clears a cache entry by its direct cache key.

### Vault

- [Flush vault secret cache](https://docs.getbifrost.ai/api-reference/vault/flush-vault-secret-cache.md): Clears the in-memory vault secret cache so the next resolution of every `vault.<path>` reference re-fetches from the configured backend (AWS Secrets Manager, GCP Secret Manager, or HashiCorp Vault).

### Infrastructure

- [WebSocket connection](https://docs.getbifrost.ai/api-reference/infrastructure/websocket-connection.md): Upgrades to a WebSocket connection for real-time updates. Server pushes log events, MCP log events, and store update notifications. Heartbeat pings are sent every 30 seconds.
- [MCP protocol SSE stream](https://docs.getbifrost.ai/api-reference/infrastructure/mcp-protocol-sse-stream.md): Opens a Server-Sent Events stream for the MCP protocol server. Returns `Content-Type: text/event-stream`.
- [MCP protocol message](https://docs.getbifrost.ai/api-reference/infrastructure/mcp-protocol-message.md): Receives a JSON-RPC 2.0 message for the MCP protocol server. Returns a JSON-RPC 2.0 response, or null for notifications.
- [Prometheus metrics](https://docs.getbifrost.ai/api-reference/infrastructure/prometheus-metrics.md): Returns Prometheus-formatted metrics for monitoring. Registered behind the management auth middleware chain, so a scraper must present management credentials (or the route must be added to `client_config.whitelisted_routes`).
- [Inspect a request without forwarding it](https://docs.getbifrost.ai/api-reference/infrastructure/inspect-a-request-without-forwarding-it.md): Runs the pre-model plugin checks against a request and answers whether forwarding it upstream is allowed, without calling any provider. Intended for an intercepting proxy that holds the original request and needs a verdict before releasing it.

### API Keys

- [List API keys](https://docs.getbifrost.ai/api-reference/api-keys/list-api-keys.md): Returns the management API keys, including their scopes and expiry. Key values are never returned — only the truncated `key_prefix`.
- [Create an API key](https://docs.getbifrost.ai/api-reference/api-keys/create-an-api-key.md): Creates a management API key and returns its value. The value is shown only in this response and cannot be retrieved afterwards, so store it immediately.
- [Get an API key](https://docs.getbifrost.ai/api-reference/api-keys/get-an-api-key.md): Returns one API key by id. The key value is not included — only the truncated `key_prefix`.
- [Update an API key](https://docs.getbifrost.ai/api-reference/api-keys/update-an-api-key.md): Updates a key's name, description, scopes, or expiry. The key value itself is never changed — rotating a credential means deleting the key and creating a new one.
- [Delete an API key](https://docs.getbifrost.ai/api-reference/api-keys/delete-an-api-key.md): Permanently deletes an API key. The key stops authenticating requests across the cluster once the change propagates. This cannot be undone.

### Webhooks

- [List webhook endpoints](https://docs.getbifrost.ai/api-reference/webhooks/list-webhook-endpoints.md): Returns webhook endpoints, optionally filtered by search text, subscribed event, and disabled status. Signing secrets are never included and custom header values are redacted.
- [Create a webhook endpoint](https://docs.getbifrost.ai/api-reference/webhooks/create-a-webhook-endpoint.md): Creates a webhook endpoint. The signing secret is generated by the server and returned once in the response — it cannot be supplied and cannot be retrieved again afterwards.
- [Get a webhook endpoint](https://docs.getbifrost.ai/api-reference/webhooks/get-a-webhook-endpoint.md)
- [Update a webhook endpoint](https://docs.getbifrost.ai/api-reference/webhooks/update-a-webhook-endpoint.md): Updates a webhook endpoint. The signing secret is immutable here — use the rotate-secret endpoint to change it.
- [Delete a webhook endpoint](https://docs.getbifrost.ai/api-reference/webhooks/delete-a-webhook-endpoint.md)
- [Rotate a webhook signing secret](https://docs.getbifrost.ai/api-reference/webhooks/rotate-a-webhook-signing-secret.md): Generates a new signing secret for the endpoint and returns it once. The previous secret stops verifying immediately — there is no grace window, so update your receiver in the same change.
- [Send a test delivery](https://docs.getbifrost.ai/api-reference/webhooks/send-a-test-delivery.md): Sends a sample signed delivery for the chosen event through the production signing path.
- [List delivery history](https://docs.getbifrost.ai/api-reference/webhooks/list-delivery-history.md): Returns one page of delivery-attempt history for an endpoint, newest first.
- [Search delivery history](https://docs.getbifrost.ai/api-reference/webhooks/search-delivery-history.md): Returns one page of delivery-attempt history across every endpoint the filters select, newest first. Unlike the per-endpoint `/api/webhooks/{id}/deliveries` route, every filter is optional, so an unfiltered call returns history for all endpoints.
- [Re-queue a delivery](https://docs.getbifrost.ai/api-reference/webhooks/re-queue-a-delivery.md): Re-queues the delivery a history record belongs to, under its original webhook-id so receivers can deduplicate the replay.

### Notifications

- [List dashboard notifications](https://docs.getbifrost.ai/api-reference/notifications/list-dashboard-notifications.md): Returns notifications the caller is entitled to see, newest first. Notifications addressed to `all` are visible to everyone; those addressed to `roles` are only returned when the caller holds one of the listed roles. A local admin sees every notification.
- [Publish a dashboard notification](https://docs.getbifrost.ai/api-reference/notifications/publish-a-dashboard-notification.md): Persists a notification and pushes it over the dashboard WebSocket to every connected client the audience covers.

## OpenAPI Specs

- [openapi](/openapi/openapi.json)
