Skip to main content
POST
/
v1
/
experiment
Create experiment
curl --request POST \
  --url https://api.braintrust.dev/v1/experiment \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "project_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "name": "<string>",
  "description": "<string>",
  "repo_info": {
    "commit": "<string>",
    "branch": "<string>",
    "tag": "<string>",
    "dirty": true,
    "author_name": "<string>",
    "author_email": "<string>",
    "commit_message": "<string>",
    "commit_time": "<string>",
    "git_diff": "<string>"
  },
  "base_exp_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "dataset_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "dataset_version": "<string>",
  "public": true,
  "metadata": {},
  "tags": [
    "<string>"
  ],
  "ensure_new": true
}'
{
  "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "project_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "name": "<string>",
  "description": "<string>",
  "created": "2023-11-07T05:31:56Z",
  "repo_info": {
    "commit": "<string>",
    "branch": "<string>",
    "tag": "<string>",
    "dirty": true,
    "author_name": "<string>",
    "author_email": "<string>",
    "commit_message": "<string>",
    "commit_time": "<string>",
    "git_diff": "<string>"
  },
  "commit": "<string>",
  "base_exp_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "deleted_at": "2023-11-07T05:31:56Z",
  "dataset_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "dataset_version": "<string>",
  "public": true,
  "user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "metadata": {},
  "tags": [
    "<string>"
  ]
}

Authorizations

Authorization
string
header
required

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.

Body

application/json

Any desired information about the new experiment object

project_id
string<uuid>
required

Unique identifier for the project that the experiment belongs under

name
string | null

Name of the experiment. Within a project, experiment names are unique

Minimum length: 1
description
string | null

Textual description of the experiment

repo_info
object | null

Metadata about the state of the repo when the experiment was created

base_exp_id
string<uuid> | null

Id of default base experiment to compare against when viewing this experiment

dataset_id
string<uuid> | null

Identifier of the linked dataset, or null if the experiment is not linked to a dataset

dataset_version
string | null

Version number of the linked dataset the experiment was run against. This can be used to reproduce the experiment after the dataset has been modified.

public
boolean | null

Whether or not the experiment is public. Public experiments can be viewed by anybody inside or outside the organization

metadata
object | null

User-controlled metadata about the experiment

tags
string[] | null

A list of tags for the experiment

ensure_new
boolean | null

Normally, creating an experiment with the same name as an existing experiment will return the existing one un-modified. But if ensure_new is true, registration will generate a new experiment with a unique name in case of a conflict.

Response

Returns the new experiment object

id
string<uuid>
required

Unique identifier for the experiment

project_id
string<uuid>
required

Unique identifier for the project that the experiment belongs under

name
string
required

Name of the experiment. Within a project, experiment names are unique

public
boolean
required

Whether or not the experiment is public. Public experiments can be viewed by anybody inside or outside the organization

description
string | null

Textual description of the experiment

created
string<date-time> | null

Date of experiment creation

repo_info
object | null

Metadata about the state of the repo when the experiment was created

commit
string | null

Commit, taken directly from repo_info.commit

base_exp_id
string<uuid> | null

Id of default base experiment to compare against when viewing this experiment

deleted_at
string<date-time> | null

Date of experiment deletion, or null if the experiment is still active

dataset_id
string<uuid> | null

Identifier of the linked dataset, or null if the experiment is not linked to a dataset

dataset_version
string | null

Version number of the linked dataset the experiment was run against. This can be used to reproduce the experiment after the dataset has been modified.

user_id
string<uuid> | null

Identifies the user who created the experiment

metadata
object | null

User-controlled metadata about the experiment

tags
string[] | null

A list of tags for the experiment