Set Claude Credentials
curl --request POST \
--url https://api.example.com/api/e2b-sandboxes/{id}/claude-credentials \
--header 'Content-Type: application/json' \
--data '
{
"accessToken": "<string>",
"refreshToken": "<string>",
"expiresAt": "<string>",
"account": {},
"selectedModel": "<string>",
"subscriptionInfo": {}
}
'import requests
url = "https://api.example.com/api/e2b-sandboxes/{id}/claude-credentials"
payload = {
"accessToken": "<string>",
"refreshToken": "<string>",
"expiresAt": "<string>",
"account": {},
"selectedModel": "<string>",
"subscriptionInfo": {}
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
accessToken: '<string>',
refreshToken: '<string>',
expiresAt: '<string>',
account: {},
selectedModel: '<string>',
subscriptionInfo: {}
})
};
fetch('https://api.example.com/api/e2b-sandboxes/{id}/claude-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.example.com/api/e2b-sandboxes/{id}/claude-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([
'accessToken' => '<string>',
'refreshToken' => '<string>',
'expiresAt' => '<string>',
'account' => [
],
'selectedModel' => '<string>',
'subscriptionInfo' => [
]
]),
CURLOPT_HTTPHEADER => [
"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.example.com/api/e2b-sandboxes/{id}/claude-credentials"
payload := strings.NewReader("{\n \"accessToken\": \"<string>\",\n \"refreshToken\": \"<string>\",\n \"expiresAt\": \"<string>\",\n \"account\": {},\n \"selectedModel\": \"<string>\",\n \"subscriptionInfo\": {}\n}")
req, _ := http.NewRequest("POST", url, payload)
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.example.com/api/e2b-sandboxes/{id}/claude-credentials")
.header("Content-Type", "application/json")
.body("{\n \"accessToken\": \"<string>\",\n \"refreshToken\": \"<string>\",\n \"expiresAt\": \"<string>\",\n \"account\": {},\n \"selectedModel\": \"<string>\",\n \"subscriptionInfo\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/e2b-sandboxes/{id}/claude-credentials")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"accessToken\": \"<string>\",\n \"refreshToken\": \"<string>\",\n \"expiresAt\": \"<string>\",\n \"account\": {},\n \"selectedModel\": \"<string>\",\n \"subscriptionInfo\": {}\n}"
response = http.request(request)
puts response.read_bodyE2B Sandboxes
Set Claude Credentials
Configure Claude OAuth credentials in the sandbox
POST
/
api
/
e2b-sandboxes
/
{id}
/
claude-credentials
Set Claude Credentials
curl --request POST \
--url https://api.example.com/api/e2b-sandboxes/{id}/claude-credentials \
--header 'Content-Type: application/json' \
--data '
{
"accessToken": "<string>",
"refreshToken": "<string>",
"expiresAt": "<string>",
"account": {},
"selectedModel": "<string>",
"subscriptionInfo": {}
}
'import requests
url = "https://api.example.com/api/e2b-sandboxes/{id}/claude-credentials"
payload = {
"accessToken": "<string>",
"refreshToken": "<string>",
"expiresAt": "<string>",
"account": {},
"selectedModel": "<string>",
"subscriptionInfo": {}
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
accessToken: '<string>',
refreshToken: '<string>',
expiresAt: '<string>',
account: {},
selectedModel: '<string>',
subscriptionInfo: {}
})
};
fetch('https://api.example.com/api/e2b-sandboxes/{id}/claude-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.example.com/api/e2b-sandboxes/{id}/claude-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([
'accessToken' => '<string>',
'refreshToken' => '<string>',
'expiresAt' => '<string>',
'account' => [
],
'selectedModel' => '<string>',
'subscriptionInfo' => [
]
]),
CURLOPT_HTTPHEADER => [
"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.example.com/api/e2b-sandboxes/{id}/claude-credentials"
payload := strings.NewReader("{\n \"accessToken\": \"<string>\",\n \"refreshToken\": \"<string>\",\n \"expiresAt\": \"<string>\",\n \"account\": {},\n \"selectedModel\": \"<string>\",\n \"subscriptionInfo\": {}\n}")
req, _ := http.NewRequest("POST", url, payload)
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.example.com/api/e2b-sandboxes/{id}/claude-credentials")
.header("Content-Type", "application/json")
.body("{\n \"accessToken\": \"<string>\",\n \"refreshToken\": \"<string>\",\n \"expiresAt\": \"<string>\",\n \"account\": {},\n \"selectedModel\": \"<string>\",\n \"subscriptionInfo\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/e2b-sandboxes/{id}/claude-credentials")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"accessToken\": \"<string>\",\n \"refreshToken\": \"<string>\",\n \"expiresAt\": \"<string>\",\n \"account\": {},\n \"selectedModel\": \"<string>\",\n \"subscriptionInfo\": {}\n}"
response = http.request(request)
puts response.read_bodyWrites Claude credentials to
.claude/.credentials.json inside the sandbox and restarts the Claude WebSocket server.
string
required
Sandbox ID.
string
required
Claude access token.
string
required
Claude refresh token.
string
required
Token expiry (ISO 8601).
object
Account info with
id and name.string
Preferred Claude model.
object
Subscription details.
Response
Returns confirmation that credentials were set.Was this page helpful?