curl --request POST \
--url https://api.braintrust.dev/v1/proxy/credentials \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "<string>",
"ttl_seconds": 600,
"logging": {
"project_name": "<string>",
"compress_audio": true
}
}
'import requests
url = "https://api.braintrust.dev/v1/proxy/credentials"
payload = {
"model": "<string>",
"ttl_seconds": 600,
"logging": {
"project_name": "<string>",
"compress_audio": True
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
model: '<string>',
ttl_seconds: 600,
logging: {project_name: '<string>', compress_audio: true}
})
};
fetch('https://api.braintrust.dev/v1/proxy/credentials', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.braintrust.dev/v1/proxy/credentials",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'model' => '<string>',
'ttl_seconds' => 600,
'logging' => [
'project_name' => '<string>',
'compress_audio' => true
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.braintrust.dev/v1/proxy/credentials"
payload := strings.NewReader("{\n \"model\": \"<string>\",\n \"ttl_seconds\": 600,\n \"logging\": {\n \"project_name\": \"<string>\",\n \"compress_audio\": true\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.braintrust.dev/v1/proxy/credentials")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"<string>\",\n \"ttl_seconds\": 600,\n \"logging\": {\n \"project_name\": \"<string>\",\n \"compress_audio\": true\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.braintrust.dev/v1/proxy/credentials")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"model\": \"<string>\",\n \"ttl_seconds\": 600,\n \"logging\": {\n \"project_name\": \"<string>\",\n \"compress_audio\": true\n }\n}"
response = http.request(request)
puts response.read_body{
"key": "<string>"
}"<string>"Create temporary credential
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 for code examples.
curl --request POST \
--url https://api.braintrust.dev/v1/proxy/credentials \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "<string>",
"ttl_seconds": 600,
"logging": {
"project_name": "<string>",
"compress_audio": true
}
}
'import requests
url = "https://api.braintrust.dev/v1/proxy/credentials"
payload = {
"model": "<string>",
"ttl_seconds": 600,
"logging": {
"project_name": "<string>",
"compress_audio": True
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
model: '<string>',
ttl_seconds: 600,
logging: {project_name: '<string>', compress_audio: true}
})
};
fetch('https://api.braintrust.dev/v1/proxy/credentials', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.braintrust.dev/v1/proxy/credentials",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'model' => '<string>',
'ttl_seconds' => 600,
'logging' => [
'project_name' => '<string>',
'compress_audio' => true
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.braintrust.dev/v1/proxy/credentials"
payload := strings.NewReader("{\n \"model\": \"<string>\",\n \"ttl_seconds\": 600,\n \"logging\": {\n \"project_name\": \"<string>\",\n \"compress_audio\": true\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.braintrust.dev/v1/proxy/credentials")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"<string>\",\n \"ttl_seconds\": 600,\n \"logging\": {\n \"project_name\": \"<string>\",\n \"compress_audio\": true\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.braintrust.dev/v1/proxy/credentials")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"model\": \"<string>\",\n \"ttl_seconds\": 600,\n \"logging\": {\n \"project_name\": \"<string>\",\n \"compress_audio\": true\n }\n}"
response = http.request(request)
puts response.read_body{
"key": "<string>"
}"<string>"Authorizations
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
The temporary credential will be restricted according to the request body.
Payload for requesting temporary credentials.
Granted model name. Null/undefined to grant usage of all models.
TTL of the temporary credential. 10 minutes by default.
x <= 86400If present, proxy will log requests to the given Braintrust project name.
Show child attributes
Show child attributes
Response
Successfully created temporary credential
Was this page helpful?