Braintrust AiSecrets API
The AiSecrets API from Braintrust — 2 operation(s) for aisecrets.
The AiSecrets API from Braintrust — 2 operation(s) for aisecrets.
openapi: 3.1.1
info:
version: 1.0.0
title: Braintrust Acls AiSecrets 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: AiSecrets
paths:
/v1/ai_secret:
post:
tags:
- AiSecrets
security:
- bearerAuth: []
- {}
operationId: postAiSecret
description: Create a new ai_secret. If there is an existing ai_secret with the same name as the one specified in the request, will return the existing ai_secret unmodified
summary: Create ai_secret
requestBody:
description: Any desired information about the new ai_secret object
required: false
content:
application/json:
schema:
$ref: '#/components/schemas/CreateAISecret'
responses:
'200':
description: Returns the new ai_secret object
content:
application/json:
schema:
$ref: '#/components/schemas/AISecret'
'400':
description: The request was unacceptable, often due to missing a required parameter
content:
text/plain:
schema:
type: string
application/json:
schema:
nullable: true
'401':
description: No valid API key provided
content:
text/plain:
schema:
type: string
application/json:
schema:
nullable: true
'403':
description: The API key doesn’t have permissions to perform the request
content:
text/plain:
schema:
type: string
application/json:
schema:
nullable: true
'429':
description: Too many requests hit the API too quickly. We recommend an exponential backoff of your requests
headers:
Retry-After:
schema:
type: string
content:
text/plain:
schema:
type: string
application/json:
schema:
nullable: true
'500':
description: Something went wrong on Braintrust's end. (These are rare.)
content:
text/plain:
schema:
type: string
application/json:
schema:
nullable: true
put:
tags:
- AiSecrets
security:
- bearerAuth: []
- {}
operationId: putAiSecret
description: Create or replace ai_secret. If there is an existing ai_secret with the same name as the one specified in the request, will replace the existing ai_secret with the provided fields
summary: Create or replace ai_secret
requestBody:
description: Any desired information about the new ai_secret object
required: false
content:
application/json:
schema:
$ref: '#/components/schemas/CreateAISecret'
responses:
'200':
description: Returns the new ai_secret object
content:
application/json:
schema:
$ref: '#/components/schemas/AISecret'
'400':
description: The request was unacceptable, often due to missing a required parameter
content:
text/plain:
schema:
type: string
application/json:
schema:
nullable: true
'401':
description: No valid API key provided
content:
text/plain:
schema:
type: string
application/json:
schema:
nullable: true
'403':
description: The API key doesn’t have permissions to perform the request
content:
text/plain:
schema:
type: string
application/json:
schema:
nullable: true
'429':
description: Too many requests hit the API too quickly. We recommend an exponential backoff of your requests
headers:
Retry-After:
schema:
type: string
content:
text/plain:
schema:
type: string
application/json:
schema:
nullable: true
'500':
description: Something went wrong on Braintrust's end. (These are rare.)
content:
text/plain:
schema:
type: string
application/json:
schema:
nullable: true
delete:
operationId: deleteAiSecret
tags:
- AiSecrets
description: Delete a single ai_secret
summary: Delete single ai_secret
security:
- bearerAuth: []
- {}
requestBody:
description: Parameters which uniquely specify the ai_secret to delete
required: false
content:
application/json:
schema:
$ref: '#/components/schemas/DeleteAISecret'
responses:
'200':
description: Returns the deleted ai_secret object
content:
application/json:
schema:
$ref: '#/components/schemas/AISecret'
'400':
description: The request was unacceptable, often due to missing a required parameter
content:
text/plain:
schema:
type: string
application/json:
schema:
nullable: true
'401':
description: No valid API key provided
content:
text/plain:
schema:
type: string
application/json:
schema:
nullable: true
'403':
description: The API key doesn’t have permissions to perform the request
content:
text/plain:
schema:
type: string
application/json:
schema:
nullable: true
'429':
description: Too many requests hit the API too quickly. We recommend an exponential backoff of your requests
headers:
Retry-After:
schema:
type: string
content:
text/plain:
schema:
type: string
application/json:
schema:
nullable: true
'500':
description: Something went wrong on Braintrust's end. (These are rare.)
content:
text/plain:
schema:
type: string
application/json:
schema:
nullable: true
get:
operationId: getAiSecret
tags:
- AiSecrets
description: List out all ai_secrets. The ai_secrets are sorted by creation date, with the most recently-created ai_secrets coming first
summary: List ai_secrets
security:
- bearerAuth: []
- {}
parameters:
- $ref: '#/components/parameters/AppLimitParam'
- $ref: '#/components/parameters/StartingAfter'
- $ref: '#/components/parameters/EndingBefore'
- $ref: '#/components/parameters/Ids'
- $ref: '#/components/parameters/AiSecretName'
- $ref: '#/components/parameters/OrgName'
- $ref: '#/components/parameters/AISecretType'
responses:
'200':
description: Returns a list of ai_secret objects
content:
application/json:
schema:
type: object
properties:
objects:
type: array
items:
$ref: '#/components/schemas/AISecret'
description: A list of ai_secret objects
required:
- objects
additionalProperties: false
'400':
description: The request was unacceptable, often due to missing a required parameter
content:
text/plain:
schema:
type: string
application/json:
schema:
nullable: true
'401':
description: No valid API key provided
content:
text/plain:
schema:
type: string
application/json:
schema:
nullable: true
'403':
description: The API key doesn’t have permissions to perform the request
content:
text/plain:
schema:
type: string
application/json:
schema:
nullable: true
'429':
description: Too many requests hit the API too quickly. We recommend an exponential backoff of your requests
headers:
Retry-After:
schema:
type: string
content:
text/plain:
schema:
type: string
application/json:
schema:
nullable: true
'500':
description: Something went wrong on Braintrust's end. (These are rare.)
content:
text/plain:
schema:
type: string
application/json:
schema:
nullable: true
/v1/ai_secret/{ai_secret_id}:
get:
operationId: getAiSecretId
tags:
- AiSecrets
description: Get an ai_secret object by its id
summary: Get ai_secret
security:
- bearerAuth: []
- {}
parameters:
- $ref: '#/components/parameters/AiSecretIdParam'
responses:
'200':
description: Returns the ai_secret object
content:
application/json:
schema:
$ref: '#/components/schemas/AISecret'
'400':
description: The request was unacceptable, often due to missing a required parameter
content:
text/plain:
schema:
type: string
application/json:
schema:
nullable: true
'401':
description: No valid API key provided
content:
text/plain:
schema:
type: string
application/json:
schema:
nullable: true
'403':
description: The API key doesn’t have permissions to perform the request
content:
text/plain:
schema:
type: string
application/json:
schema:
nullable: true
'429':
description: Too many requests hit the API too quickly. We recommend an exponential backoff of your requests
headers:
Retry-After:
schema:
type: string
content:
text/plain:
schema:
type: string
application/json:
schema:
nullable: true
'500':
description: Something went wrong on Braintrust's end. (These are rare.)
content:
text/plain:
schema:
type: string
application/json:
schema:
nullable: true
patch:
operationId: patchAiSecretId
tags:
- AiSecrets
description: Partially update an ai_secret object. Specify the fields to update in the payload. Any object-type fields will be deep-merged with existing content. Currently we do not support removing fields or setting them to null.
summary: Partially update ai_secret
security:
- bearerAuth: []
- {}
parameters:
- $ref: '#/components/parameters/AiSecretIdParam'
requestBody:
description: Fields to update
required: false
content:
application/json:
schema:
$ref: '#/components/schemas/PatchAISecret'
responses:
'200':
description: Returns the ai_secret object
content:
application/json:
schema:
$ref: '#/components/schemas/AISecret'
'400':
description: The request was unacceptable, often due to missing a required parameter
content:
text/plain:
schema:
type: string
application/json:
schema:
nullable: true
'401':
description: No valid API key provided
content:
text/plain:
schema:
type: string
application/json:
schema:
nullable: true
'403':
description: The API key doesn’t have permissions to perform the request
content:
text/plain:
schema:
type: string
application/json:
schema:
nullable: true
'429':
description: Too many requests hit the API too quickly. We recommend an exponential backoff of your requests
headers:
Retry-After:
schema:
type: string
content:
text/plain:
schema:
type: string
application/json:
schema:
nullable: true
'500':
description: Something went wrong on Braintrust's end. (These are rare.)
content:
text/plain:
schema:
type: string
application/json:
schema:
nullable: true
delete:
operationId: deleteAiSecretId
tags:
- AiSecrets
description: Delete an ai_secret object by its id
summary: Delete ai_secret
security:
- bearerAuth: []
- {}
parameters:
- $ref: '#/components/parameters/AiSecretIdParam'
responses:
'200':
description: Returns the deleted ai_secret object
content:
application/json:
schema:
$ref: '#/components/schemas/AISecret'
'400':
description: The request was unacceptable, often due to missing a required parameter
content:
text/plain:
schema:
type: string
application/json:
schema:
nullable: true
'401':
description: No valid API key provided
content:
text/plain:
schema:
type: string
application/json:
schema:
nullable: true
'403':
description: The API key doesn’t have permissions to perform the request
content:
text/plain:
schema:
type: string
application/json:
schema:
nullable: true
'429':
description: Too many requests hit the API too quickly. We recommend an exponential backoff of your requests
headers:
Retry-After:
schema:
type: string
content:
text/plain:
schema:
type: string
application/json:
schema:
nullable: true
'500':
description: Something went wrong on Braintrust's end. (These are rare.)
content:
text/plain:
schema:
type: string
application/json:
schema:
nullable: true
components:
parameters:
EndingBefore:
schema:
$ref: '#/components/schemas/EndingBefore'
required: false
description: 'Pagination cursor id.
For example, if the initial item in the last page you fetched had an id of `foo`, pass `ending_before=foo` to fetch the previous page. Note: you may only pass one of `starting_after` and `ending_before`'
name: ending_before
in: query
StartingAfter:
schema:
$ref: '#/components/schemas/StartingAfter'
required: false
description: 'Pagination cursor id.
For example, if the final item in the last page you fetched had an id of `foo`, pass `starting_after=foo` to fetch the next page. Note: you may only pass one of `starting_after` and `ending_before`'
name: starting_after
in: query
AppLimitParam:
schema:
$ref: '#/components/schemas/AppLimitParam'
required: false
description: Limit the number of objects to return
name: limit
in: query
AiSecretIdParam:
schema:
$ref: '#/components/schemas/AiSecretIdParam'
required: true
description: AiSecret id
name: ai_secret_id
in: path
Ids:
schema:
$ref: '#/components/schemas/Ids'
required: false
description: Filter search results to a particular set of object IDs. To specify a list of IDs, include the query param multiple times
name: ids
in: query
AiSecretName:
schema:
$ref: '#/components/schemas/AiSecretName'
required: false
description: Name of the ai_secret to search for
name: ai_secret_name
in: query
allowReserved: true
OrgName:
schema:
$ref: '#/components/schemas/OrgName'
required: false
description: Filter search results to within a particular organization
name: org_name
in: query
allowReserved: true
AISecretType:
schema:
$ref: '#/components/schemas/AISecretType'
required: false
name: ai_secret_type
in: query
schemas:
AiSecretIdParam:
type: string
format: uuid
description: AiSecret id
OrgName:
type: string
description: Filter search results to within a particular organization
AppLimitParam:
type: integer
nullable: true
minimum: 0
description: Limit the number of objects to return
Ids:
anyOf:
- type: string
format: uuid
- type: array
items:
type: string
format: uuid
description: Filter search results to a particular set of object IDs. To specify a list of IDs, include the query param multiple times
AISecretType:
anyOf:
- type: string
- type: array
items:
type: string
AISecret:
type: object
properties:
id:
type: string
format: uuid
description: Unique identifier for the AI secret
created:
type: string
nullable: true
format: date-time
description: Date of AI secret creation
updated_at:
type: string
nullable: true
format: date-time
description: Date of last AI secret update
secret_updated_at:
type: string
nullable: true
format: date-time
description: Date of last update to the encrypted secret value itself
org_id:
type: string
format: uuid
description: Unique identifier for the organization
name:
type: string
description: Name of the AI secret
type:
type: string
nullable: true
metadata:
type: object
nullable: true
additionalProperties:
nullable: true
secret_updated_by_user_id:
type: string
nullable: true
format: uuid
description: User id of the last update to the encrypted secret value
preview_secret:
type: string
nullable: true
required:
- id
- org_id
- name
PatchAISecret:
type: object
properties:
name:
type: string
nullable: true
description: Name of the AI secret
type:
type: string
nullable: true
metadata:
type: object
nullable: true
additionalProperties:
nullable: true
secret:
type: string
nullable: true
DeleteAISecret:
type: object
properties:
name:
type: string
description: Name of the AI secret
org_name:
type: string
nullable: true
description: For nearly all users, this parameter should be unnecessary. But in the rare case that your API key belongs to multiple organizations, you may specify the name of the organization the AI Secret belongs in.
required:
- name
StartingAfter:
type: string
format: uuid
description: 'Pagination cursor id.
For example, if the final item in the last page you fetched had an id of `foo`, pass `starting_after=foo` to fetch the next page. Note: you may only pass one of `starting_after` and `ending_before`'
CreateAISecret:
type: object
properties:
name:
type: string
description: Name of the AI secret
type:
type: string
nullable: true
metadata:
type: object
nullable: true
additionalProperties:
nullable: true
secret:
type: string
nullable: true
description: Secret value. If omitted in a PUT request, the existing secret value will be left intact, not replaced with null.
org_name:
type: string
nullable: true
description: For nearly all users, this parameter should be unnecessary. But in the rare case that your API key belongs to multiple organizations, you may specify the name of the organization the AI Secret belongs in.
required:
- name
EndingBefore:
type: string
format: uuid
description: 'Pagination cursor id.
For example, if the initial item in the last page you fetched had an id of `foo`, pass `ending_before=foo` to fetch the previous page. Note: you may only pass one of `starting_after` and `ending_before`'
AiSecretName:
type: string
description: Name of the ai_secret to search for
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).'