Braintrust Proxy API
The Proxy API from Braintrust — 6 operation(s) for proxy.
The Proxy API from Braintrust — 6 operation(s) for proxy.
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).'