providers: get: operationId: listProviders summary: List all providers description: Returns a list of all configured providers with their configurations and status. tags: - Providers responses: '200': description: Successful response content: application/json: schema: $ref: '../../schemas/management/providers.yaml#/ListProvidersResponse' '500': $ref: '../../openapi.yaml#/components/responses/InternalError' post: operationId: addProvider summary: Add a new provider description: Adds a new provider with the specified configuration. tags: - Providers requestBody: required: true content: application/json: schema: $ref: '../../schemas/management/providers.yaml#/AddProviderRequest' responses: '200': description: Provider added successfully content: application/json: schema: $ref: '../../schemas/management/providers.yaml#/ProviderResponse' '400': $ref: '../../openapi.yaml#/components/responses/BadRequest' '409': description: Provider already exists content: application/json: schema: $ref: '../../schemas/inference/common.yaml#/BifrostError' '500': $ref: '../../openapi.yaml#/components/responses/InternalError' providers-by-name: get: operationId: getProvider summary: Get a specific provider description: Returns the configuration for a specific provider. tags: - Providers parameters: - name: provider in: path required: true description: Provider name schema: type: string responses: '200': description: Successful response content: application/json: schema: $ref: '../../schemas/management/providers.yaml#/ProviderResponse' '400': $ref: '../../openapi.yaml#/components/responses/BadRequest' '404': description: Provider not found content: application/json: schema: $ref: '../../schemas/inference/common.yaml#/BifrostError' '500': $ref: '../../openapi.yaml#/components/responses/InternalError' put: operationId: updateProvider summary: Update a provider description: | Updates a provider's configuration. Expects ALL fields to be provided, including both edited and non-edited fields. Partial updates are not supported. tags: - Providers parameters: - name: provider in: path required: true description: Provider name schema: type: string requestBody: required: true content: application/json: schema: $ref: '../../schemas/management/providers.yaml#/UpdateProviderRequest' responses: '200': description: Provider updated successfully content: application/json: schema: $ref: '../../schemas/management/providers.yaml#/ProviderResponse' '400': $ref: '../../openapi.yaml#/components/responses/BadRequest' '500': $ref: '../../openapi.yaml#/components/responses/InternalError' delete: operationId: deleteProvider summary: Delete a provider description: Removes a provider from the configuration. tags: - Providers parameters: - name: provider in: path required: true description: Provider name schema: type: string responses: '200': description: Provider deleted successfully content: application/json: schema: $ref: '../../schemas/management/providers.yaml#/ProviderResponse' '400': $ref: '../../openapi.yaml#/components/responses/BadRequest' '404': description: Provider not found content: application/json: schema: $ref: '../../schemas/inference/common.yaml#/BifrostError' '500': $ref: '../../openapi.yaml#/components/responses/InternalError' provider-keys: get: operationId: listProviderKeys summary: List keys for a provider description: Returns all keys configured for a specific provider. tags: - Providers parameters: - name: provider in: path required: true description: Provider name schema: type: string responses: '200': description: Successful response content: application/json: schema: $ref: '../../schemas/management/providers.yaml#/ListProviderKeysResponse' '400': $ref: '../../openapi.yaml#/components/responses/BadRequest' '404': description: Provider not found content: application/json: schema: $ref: '../../schemas/inference/common.yaml#/BifrostError' '500': $ref: '../../openapi.yaml#/components/responses/InternalError' post: operationId: createProviderKey summary: Create a key for a provider description: | 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. tags: - Providers parameters: - name: provider in: path required: true description: Provider name schema: type: string requestBody: required: true content: application/json: schema: $ref: '../../schemas/management/providers.yaml#/Key' responses: '200': description: Key created successfully content: application/json: schema: $ref: '../../schemas/management/providers.yaml#/Key' '400': $ref: '../../openapi.yaml#/components/responses/BadRequest' '404': description: Provider not found content: application/json: schema: $ref: '../../schemas/inference/common.yaml#/BifrostError' '409': description: Key ID already exists content: application/json: schema: $ref: '../../schemas/inference/common.yaml#/BifrostError' '500': $ref: '../../openapi.yaml#/components/responses/InternalError' provider-key-by-id: get: operationId: getProviderKey summary: Get a specific key for a provider description: Returns a single key for the specified provider. tags: - Providers parameters: - name: provider in: path required: true description: Provider name schema: type: string - name: key_id in: path required: true description: Key ID schema: type: string responses: '200': description: Successful response content: application/json: schema: $ref: '../../schemas/management/providers.yaml#/Key' '400': $ref: '../../openapi.yaml#/components/responses/BadRequest' '404': description: Provider or key not found content: application/json: schema: $ref: '../../schemas/inference/common.yaml#/BifrostError' '500': $ref: '../../openapi.yaml#/components/responses/InternalError' put: operationId: updateProviderKey summary: Update a key for a provider description: | 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). tags: - Providers parameters: - name: provider in: path required: true description: Provider name schema: type: string - name: key_id in: path required: true description: Key ID schema: type: string requestBody: required: true content: application/json: schema: $ref: '../../schemas/management/providers.yaml#/Key' responses: '200': description: Key updated successfully content: application/json: schema: $ref: '../../schemas/management/providers.yaml#/Key' '400': $ref: '../../openapi.yaml#/components/responses/BadRequest' '404': description: Provider or key not found content: application/json: schema: $ref: '../../schemas/inference/common.yaml#/BifrostError' '500': $ref: '../../openapi.yaml#/components/responses/InternalError' delete: operationId: deleteProviderKey summary: Delete a key from a provider description: Deletes a key from the specified provider. Returns the deleted key. tags: - Providers parameters: - name: provider in: path required: true description: Provider name schema: type: string - name: key_id in: path required: true description: Key ID schema: type: string responses: '200': description: Key deleted successfully content: application/json: schema: $ref: '../../schemas/management/providers.yaml#/Key' '400': $ref: '../../openapi.yaml#/components/responses/BadRequest' '404': description: Provider or key not found content: application/json: schema: $ref: '../../schemas/inference/common.yaml#/BifrostError' '500': $ref: '../../openapi.yaml#/components/responses/InternalError' keys: get: operationId: listKeys summary: List all keys description: Returns a list of all configured API keys across all providers. tags: - Providers responses: '200': description: Successful response content: application/json: schema: type: array items: $ref: '../../schemas/management/providers.yaml#/Key' '500': $ref: '../../openapi.yaml#/components/responses/InternalError' models: get: operationId: listModelsManagement summary: List models description: | Lists available models with optional filtering by query, provider, or keys. tags: - Providers parameters: - name: query in: query description: Filter models by name (case-insensitive partial match) schema: type: string - name: provider in: query description: Filter by specific provider name schema: type: string - name: keys in: query description: Comma-separated list of key IDs to filter models accessible by those keys style: form explode: false schema: type: array items: type: string - name: limit in: query description: Maximum number of results to return (default 5) schema: type: integer default: 5 - name: unfiltered in: query description: If true, return all models including those filtered out by provider-level restrictions schema: type: boolean default: false responses: '200': description: Successful response content: application/json: schema: $ref: '../../schemas/management/providers.yaml#/ListModelsResponse' '500': $ref: '../../openapi.yaml#/components/responses/InternalError' models-details: get: operationId: listModelDetailsManagement summary: List model details description: | Lists available models with capability metadata, when available from the model catalog, with optional filtering by query, provider, or keys. tags: - Providers parameters: - name: query in: query description: Filter models by name (case-insensitive partial match) schema: type: string - name: provider in: query description: Filter by specific provider name schema: type: string - name: keys in: query description: Comma-separated list of key IDs to filter models accessible by those keys style: form explode: false schema: type: array items: type: string - name: limit in: query description: Maximum number of results to return (default 20) schema: type: integer default: 20 - name: unfiltered in: query description: If true, return all models including those filtered out by provider-level restrictions schema: type: boolean default: false responses: '200': description: Successful response content: application/json: schema: $ref: '../../schemas/management/providers.yaml#/ListModelDetailsResponse' '500': $ref: '../../openapi.yaml#/components/responses/InternalError' models-parameters: get: operationId: getModelParameters summary: Get model parameters description: Returns the available parameter definitions for models. tags: - Providers responses: '200': description: Successful response content: application/json: schema: type: object additionalProperties: true '500': $ref: '../../openapi.yaml#/components/responses/InternalError' models-base: get: operationId: listBaseModels summary: List base models description: Returns a list of base models from the model catalog. tags: - Providers parameters: - name: query in: query description: Filter models by name schema: type: string - name: provider in: query description: Filter by provider schema: type: string - name: limit in: query description: Maximum number of results to return schema: type: integer responses: '200': description: Successful response content: application/json: schema: type: object additionalProperties: true '500': $ref: '../../openapi.yaml#/components/responses/InternalError'