Sessions
Create a session
Create a session for a task. Provide the initial prompt in description and optionally configure its repositories and agent.
POST
/
v1
/
sessions
TypeScript SDK
import Tembo from '@tembo-io/sdk';
const client = new Tembo();
const session = await client.sessions.create({
description: 'Fix the authentication bug in the login component',
projectId: 'your-project-id',
agent: 'claudeCode:claude-fable-5-1',
codeRepositoryIds: ['123e4567-e89b-12d3-a456-426614174000'],
baseBranch: 'main',
targetBranch: 'main',
visibility: 'private',
mcpServers: [],
});curl --request POST \
--url https://api.tembo.io/v1/sessions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"description": "Fix the authentication bug in the login component",
"projectId": "your-project-id",
"agent": "claudeCode:claude-fable-5-1",
"codeRepositoryIds": [
"123e4567-e89b-12d3-a456-426614174000"
],
"baseBranch": "main",
"targetBranch": "main",
"visibility": "private",
"mcpServers": []
}
'import requests
url = "https://api.tembo.io/v1/sessions"
payload = {
"description": "Fix the authentication bug in the login component",
"projectId": "your-project-id",
"agent": "claudeCode:claude-fable-5-1",
"codeRepositoryIds": ["123e4567-e89b-12d3-a456-426614174000"],
"baseBranch": "main",
"targetBranch": "main",
"visibility": "private",
"mcpServers": []
}
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({
description: 'Fix the authentication bug in the login component',
projectId: 'your-project-id',
agent: 'claudeCode:claude-fable-5-1',
codeRepositoryIds: ['123e4567-e89b-12d3-a456-426614174000'],
baseBranch: 'main',
targetBranch: 'main',
visibility: 'private',
mcpServers: []
})
};
fetch('https://api.tembo.io/v1/sessions', 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.tembo.io/v1/sessions",
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([
'description' => 'Fix the authentication bug in the login component',
'projectId' => 'your-project-id',
'agent' => 'claudeCode:claude-fable-5-1',
'codeRepositoryIds' => [
'123e4567-e89b-12d3-a456-426614174000'
],
'baseBranch' => 'main',
'targetBranch' => 'main',
'visibility' => 'private',
'mcpServers' => [
]
]),
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.tembo.io/v1/sessions"
payload := strings.NewReader("{\n \"description\": \"Fix the authentication bug in the login component\",\n \"projectId\": \"your-project-id\",\n \"agent\": \"claudeCode:claude-fable-5-1\",\n \"codeRepositoryIds\": [\n \"123e4567-e89b-12d3-a456-426614174000\"\n ],\n \"baseBranch\": \"main\",\n \"targetBranch\": \"main\",\n \"visibility\": \"private\",\n \"mcpServers\": []\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.tembo.io/v1/sessions")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"description\": \"Fix the authentication bug in the login component\",\n \"projectId\": \"your-project-id\",\n \"agent\": \"claudeCode:claude-fable-5-1\",\n \"codeRepositoryIds\": [\n \"123e4567-e89b-12d3-a456-426614174000\"\n ],\n \"baseBranch\": \"main\",\n \"targetBranch\": \"main\",\n \"visibility\": \"private\",\n \"mcpServers\": []\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.tembo.io/v1/sessions")
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 \"description\": \"Fix the authentication bug in the login component\",\n \"projectId\": \"your-project-id\",\n \"agent\": \"claudeCode:claude-fable-5-1\",\n \"codeRepositoryIds\": [\n \"123e4567-e89b-12d3-a456-426614174000\"\n ],\n \"baseBranch\": \"main\",\n \"targetBranch\": \"main\",\n \"visibility\": \"private\",\n \"mcpServers\": []\n}"
response = http.request(request)
puts response.read_body{
"agent": "<string>",
"agentId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"artifactType": "PullRequest",
"baseBranch": "<string>",
"branchName": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"externalId": "<string>",
"externalUrl": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"kind": "<string>",
"lastQueuedAt": "2023-11-07T05:31:56Z",
"lastSeenAt": "2023-11-07T05:31:56Z",
"level": 123,
"mode": "normal",
"projectId": "<string>",
"sandboxSize": "nano",
"sessionType": "Chat",
"targetBranch": "<string>",
"title": "<string>",
"updatedAt": "2023-11-07T05:31:56Z",
"visibility": "public",
"artifacts": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "PullRequest",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"pullRequests": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"url": "<string>",
"title": "<string>",
"status": "open",
"isDraft": true,
"sourceBranch": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"agent": "<string>",
"diff": {
"additions": 1,
"deletions": 1,
"data": "<string>"
},
"updatedAt": "2023-11-07T05:31:56Z",
"baseBranch": "<string>",
"headSha": "<string>",
"author": {
"avatarUrl": "<string>",
"login": "<string>"
},
"codeRepository": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"owner": "<string>",
"baseBranch": "<string>",
"provider": "<string>"
}
}
]
}
],
"description": "<string>",
"diffSummary": {
"additions": 123,
"deletions": 123
},
"htmlUrl": "<string>",
"isPinned": true,
"project": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"icon": "folder",
"color": "neutral"
},
"sessionSource": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"type": "<string>",
"repositories": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"provider": "<string>"
}
]
},
"sourcePullRequest": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"url": "<string>",
"title": "<string>",
"status": "open",
"isDraft": true
},
"state": {
"isQueued": true,
"isCancelled": true,
"isCompleted": true,
"isFailed": true,
"inProgress": true,
"current": "inProgress"
}
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
application/json
Initial task or prompt for the session.
Required string length:
1 - 1000000Required string length:
1 - 500Required string length:
1 - 500Maximum array length:
100Required string length:
1 - 500Available options:
nano, micro, small, medium, large, xl, xxl, ultra Required string length:
1 - 500Available options:
private, public Show child attributes
Show child attributes
Required string length:
1 - 500Maximum array length:
100Optional rich-text representation of the initial task. Provide description separately.
- Option 1
- Option 2
- Option 3
- Option 4
- Option 5
- Option 6
- Option 7
- Option 8
Show child attributes
Show child attributes
Example:
{
"type": "doc",
"content": [
{
"type": "paragraph",
"content": [{ "type": "text", "text": "Hello" }]
}
]
}
Available options:
chat, terminal Available options:
claudeCode, codex, opencode, pi, amp, cursor Response
Create a session
Available options:
PullRequest, ToolCall, Plan, Response, File, Service, Source, null Available options:
normal, planning Available options:
nano, micro, small, medium, large, xl, xxl, ultra, null Available options:
Chat, Terminal Available options:
public, private Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Was this page helpful?
⌘I
TypeScript SDK
import Tembo from '@tembo-io/sdk';
const client = new Tembo();
const session = await client.sessions.create({
description: 'Fix the authentication bug in the login component',
projectId: 'your-project-id',
agent: 'claudeCode:claude-fable-5-1',
codeRepositoryIds: ['123e4567-e89b-12d3-a456-426614174000'],
baseBranch: 'main',
targetBranch: 'main',
visibility: 'private',
mcpServers: [],
});curl --request POST \
--url https://api.tembo.io/v1/sessions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"description": "Fix the authentication bug in the login component",
"projectId": "your-project-id",
"agent": "claudeCode:claude-fable-5-1",
"codeRepositoryIds": [
"123e4567-e89b-12d3-a456-426614174000"
],
"baseBranch": "main",
"targetBranch": "main",
"visibility": "private",
"mcpServers": []
}
'import requests
url = "https://api.tembo.io/v1/sessions"
payload = {
"description": "Fix the authentication bug in the login component",
"projectId": "your-project-id",
"agent": "claudeCode:claude-fable-5-1",
"codeRepositoryIds": ["123e4567-e89b-12d3-a456-426614174000"],
"baseBranch": "main",
"targetBranch": "main",
"visibility": "private",
"mcpServers": []
}
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({
description: 'Fix the authentication bug in the login component',
projectId: 'your-project-id',
agent: 'claudeCode:claude-fable-5-1',
codeRepositoryIds: ['123e4567-e89b-12d3-a456-426614174000'],
baseBranch: 'main',
targetBranch: 'main',
visibility: 'private',
mcpServers: []
})
};
fetch('https://api.tembo.io/v1/sessions', 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.tembo.io/v1/sessions",
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([
'description' => 'Fix the authentication bug in the login component',
'projectId' => 'your-project-id',
'agent' => 'claudeCode:claude-fable-5-1',
'codeRepositoryIds' => [
'123e4567-e89b-12d3-a456-426614174000'
],
'baseBranch' => 'main',
'targetBranch' => 'main',
'visibility' => 'private',
'mcpServers' => [
]
]),
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.tembo.io/v1/sessions"
payload := strings.NewReader("{\n \"description\": \"Fix the authentication bug in the login component\",\n \"projectId\": \"your-project-id\",\n \"agent\": \"claudeCode:claude-fable-5-1\",\n \"codeRepositoryIds\": [\n \"123e4567-e89b-12d3-a456-426614174000\"\n ],\n \"baseBranch\": \"main\",\n \"targetBranch\": \"main\",\n \"visibility\": \"private\",\n \"mcpServers\": []\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.tembo.io/v1/sessions")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"description\": \"Fix the authentication bug in the login component\",\n \"projectId\": \"your-project-id\",\n \"agent\": \"claudeCode:claude-fable-5-1\",\n \"codeRepositoryIds\": [\n \"123e4567-e89b-12d3-a456-426614174000\"\n ],\n \"baseBranch\": \"main\",\n \"targetBranch\": \"main\",\n \"visibility\": \"private\",\n \"mcpServers\": []\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.tembo.io/v1/sessions")
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 \"description\": \"Fix the authentication bug in the login component\",\n \"projectId\": \"your-project-id\",\n \"agent\": \"claudeCode:claude-fable-5-1\",\n \"codeRepositoryIds\": [\n \"123e4567-e89b-12d3-a456-426614174000\"\n ],\n \"baseBranch\": \"main\",\n \"targetBranch\": \"main\",\n \"visibility\": \"private\",\n \"mcpServers\": []\n}"
response = http.request(request)
puts response.read_body{
"agent": "<string>",
"agentId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"artifactType": "PullRequest",
"baseBranch": "<string>",
"branchName": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"externalId": "<string>",
"externalUrl": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"kind": "<string>",
"lastQueuedAt": "2023-11-07T05:31:56Z",
"lastSeenAt": "2023-11-07T05:31:56Z",
"level": 123,
"mode": "normal",
"projectId": "<string>",
"sandboxSize": "nano",
"sessionType": "Chat",
"targetBranch": "<string>",
"title": "<string>",
"updatedAt": "2023-11-07T05:31:56Z",
"visibility": "public",
"artifacts": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "PullRequest",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"pullRequests": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"url": "<string>",
"title": "<string>",
"status": "open",
"isDraft": true,
"sourceBranch": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"agent": "<string>",
"diff": {
"additions": 1,
"deletions": 1,
"data": "<string>"
},
"updatedAt": "2023-11-07T05:31:56Z",
"baseBranch": "<string>",
"headSha": "<string>",
"author": {
"avatarUrl": "<string>",
"login": "<string>"
},
"codeRepository": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"owner": "<string>",
"baseBranch": "<string>",
"provider": "<string>"
}
}
]
}
],
"description": "<string>",
"diffSummary": {
"additions": 123,
"deletions": 123
},
"htmlUrl": "<string>",
"isPinned": true,
"project": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"icon": "folder",
"color": "neutral"
},
"sessionSource": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"type": "<string>",
"repositories": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"provider": "<string>"
}
]
},
"sourcePullRequest": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"url": "<string>",
"title": "<string>",
"status": "open",
"isDraft": true
},
"state": {
"isQueued": true,
"isCancelled": true,
"isCompleted": true,
"isFailed": true,
"inProgress": true,
"current": "inProgress"
}
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}