---
title: "Create ai_secret"
method: POST
path: "/v1/ai_secret"
tags: ["AiSecrets"]
---

# Create ai_secret

`POST /v1/ai_secret`

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

## Request body

- CreateAISecret
  - `name` string, required — Name of the AI secret
  - `type` string, nullable
  - `metadata` object, nullable
  - `secret` string, nullable — Secret value. If omitted in a PUT request, the existing secret value will be left intact, not replaced with null.
  - `org_name` string, nullable — 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.

## Response `200`

Returns the new ai_secret object

- AISecret
  - `id` string, uuid, required — Unique identifier for the AI secret
  - `created` string, date-time, nullable — Date of AI secret creation
  - `org_id` string, uuid, required — Unique identifier for the organization
  - `name` string, required — Name of the AI secret
  - `type` string, nullable
  - `metadata` object, nullable
  - `preview_secret` string, nullable

## Other responses

- `400` — The request was unacceptable, often due to missing a required parameter
- `401` — No valid API key provided
- `403` — The API key doesn’t have permissions to perform the request
- `429` — Too many requests hit the API too quickly. We recommend an exponential backoff of your requests
- `500` — Something went wrong on Braintrust's end. (These are rare.)

---

[API](https://skmtc.net/braintrustdata/apis/braintrust-api.md) · [All operations](https://skmtc.net/braintrustdata/apis/braintrust-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/braintrustdata/braintrust-api/versions/9d216c8243fe/schema)
