openapi: 3.1.1 info: version: 1.0.0 title: Braintrust Acls Proxy API description: 'API specification for the backend data server. The API is hosted globally at https://api.braintrust.dev or in your own environment. You can access the OpenAPI spec for this API at https://github.com/braintrustdata/braintrust-openapi.' license: name: Apache 2.0 servers: - url: https://api.braintrust.dev security: - bearerAuth: [] - {} tags: - name: Proxy paths: /v1/proxy/chat/completions: post: operationId: proxychatCompletions tags: - Proxy description: Proxy a chat/completions request to the specified model, converting its format as needed. Will cache if temperature=0 or seed is set. summary: Proxy chat/completions security: - bearerAuth: [] - {} requestBody: description: See the [OpenAI docs](https://platform.openai.com/docs/api-reference/chat/create) for details. required: true content: application/json: schema: nullable: true responses: '200': description: Proxy response (supports both streaming and non-streaming formats) content: application/json: schema: nullable: true /v1/proxy/completions: post: operationId: proxycompletions tags: - Proxy description: Proxy a completions request to the specified model, converting its format as needed. Will cache if temperature=0 or seed is set. summary: Proxy completions security: - bearerAuth: [] - {} requestBody: description: See the [OpenAI docs](https://platform.openai.com/docs/api-reference/completions/create) for details. required: true content: application/json: schema: nullable: true responses: '200': description: Proxy response (supports both streaming and non-streaming formats) content: application/json: schema: nullable: true /v1/proxy/auto: post: operationId: proxyauto tags: - Proxy description: Proxy a request to either chat/completions or completions automatically based on the model. Will cache if temperature=0 or seed is set. summary: Proxy a model to chat/completions or completions automatically security: - bearerAuth: [] - {} requestBody: description: The chat/completions or completions payload (depending on the model) required: true content: application/json: schema: nullable: true responses: '200': description: Proxy response (supports both streaming and non-streaming formats) content: application/json: schema: nullable: true /v1/proxy/embeddings: post: operationId: proxyembeddings tags: - Proxy description: Proxy an embeddings request to the specified model, converting its format as needed. Will cache automatically. summary: Proxy embeddings security: - bearerAuth: [] - {} requestBody: description: See the [OpenAI docs](https://platform.openai.com/docs/api-reference/embeddings/create) for details. required: true content: application/json: schema: nullable: true responses: '200': description: Proxy response (supports both streaming and non-streaming formats) content: application/json: schema: nullable: true /v1/proxy/credentials: post: operationId: proxycredentials tags: - Proxy description: Create a temporary credential which can access the proxy for a limited time. The temporary credential will be allowed to make requests on behalf of the Braintrust API key (or model provider API key) provided in the `Authorization` header. See [docs](/docs/deploy/ai-proxy#create-temporary-credentials) for code examples. summary: Create temporary credential security: - bearerAuth: [] - {} requestBody: description: The temporary credential will be restricted according to the request body. required: true content: application/json: schema: type: object properties: model: type: string nullable: true description: Granted model name. Null/undefined to grant usage of all models. ttl_seconds: type: number maximum: 86400 default: 600 description: TTL of the temporary credential. 10 minutes by default. logging: type: object nullable: true properties: project_name: type: string compress_audio: type: boolean default: true required: - project_name description: If present, proxy will log requests to the given Braintrust project name. description: Payload for requesting temporary credentials. responses: '200': description: Successfully created temporary credential content: application/json: schema: type: object properties: key: type: string required: - key '400': description: The request was unacceptable, often due to missing a required parameter content: text/plain: schema: type: string /v1/proxy/{path+}: post: operationId: proxy{path+} tags: - Proxy description: Any requests which do not match the above paths will be proxied directly to the OpenAI API. summary: Proxy any OpenAI request (fallback) parameters: - name: path+ in: path required: true schema: type: array items: type: string description: The path to proxy security: - bearerAuth: [] - {} requestBody: description: The request body required: true content: application/json: schema: nullable: true responses: '200': description: Proxy response (supports both streaming and non-streaming formats) content: application/json: schema: nullable: true components: securitySchemes: bearerAuth: type: http scheme: bearer bearerFormat: API key or JWT description: 'Most Braintrust endpoints are authenticated by providing your API key as a header `Authorization: Bearer [api_key]` to your HTTP request. You can create an API key in the Braintrust [organization settings page](https://www.braintrustdata.com/app/settings?subroute=api-keys).'