curl --request POST \
--url https://api.e2b.app/v3/templates \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"name": "<string>",
"tags": [
"<string>"
],
"alias": "<string>",
"teamID": "<string>",
"cpuCount": 2,
"memoryMB": 129,
"minFreeDiskMb": 1
}
'import requests
url = "https://api.e2b.app/v3/templates"
payload = {
"name": "<string>",
"tags": ["<string>"],
"alias": "<string>",
"teamID": "<string>",
"cpuCount": 2,
"memoryMB": 129,
"minFreeDiskMb": 1
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
tags: ['<string>'],
alias: '<string>',
teamID: '<string>',
cpuCount: 2,
memoryMB: 129,
minFreeDiskMb: 1
})
};
fetch('https://api.e2b.app/v3/templates', 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.e2b.app/v3/templates",
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([
'name' => '<string>',
'tags' => [
'<string>'
],
'alias' => '<string>',
'teamID' => '<string>',
'cpuCount' => 2,
'memoryMB' => 129,
'minFreeDiskMb' => 1
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$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.e2b.app/v3/templates"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"alias\": \"<string>\",\n \"teamID\": \"<string>\",\n \"cpuCount\": 2,\n \"memoryMB\": 129,\n \"minFreeDiskMb\": 1\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
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.e2b.app/v3/templates")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"alias\": \"<string>\",\n \"teamID\": \"<string>\",\n \"cpuCount\": 2,\n \"memoryMB\": 129,\n \"minFreeDiskMb\": 1\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.e2b.app/v3/templates")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"alias\": \"<string>\",\n \"teamID\": \"<string>\",\n \"cpuCount\": 2,\n \"memoryMB\": 129,\n \"minFreeDiskMb\": 1\n}"
response = http.request(request)
puts response.read_bodyCreate template (v3)
Create a new template
curl --request POST \
--url https://api.e2b.app/v3/templates \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"name": "<string>",
"tags": [
"<string>"
],
"alias": "<string>",
"teamID": "<string>",
"cpuCount": 2,
"memoryMB": 129,
"minFreeDiskMb": 1
}
'import requests
url = "https://api.e2b.app/v3/templates"
payload = {
"name": "<string>",
"tags": ["<string>"],
"alias": "<string>",
"teamID": "<string>",
"cpuCount": 2,
"memoryMB": 129,
"minFreeDiskMb": 1
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
tags: ['<string>'],
alias: '<string>',
teamID: '<string>',
cpuCount: 2,
memoryMB: 129,
minFreeDiskMb: 1
})
};
fetch('https://api.e2b.app/v3/templates', 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.e2b.app/v3/templates",
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([
'name' => '<string>',
'tags' => [
'<string>'
],
'alias' => '<string>',
'teamID' => '<string>',
'cpuCount' => 2,
'memoryMB' => 129,
'minFreeDiskMb' => 1
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$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.e2b.app/v3/templates"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"alias\": \"<string>\",\n \"teamID\": \"<string>\",\n \"cpuCount\": 2,\n \"memoryMB\": 129,\n \"minFreeDiskMb\": 1\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
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.e2b.app/v3/templates")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"alias\": \"<string>\",\n \"teamID\": \"<string>\",\n \"cpuCount\": 2,\n \"memoryMB\": 129,\n \"minFreeDiskMb\": 1\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.e2b.app/v3/templates")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"alias\": \"<string>\",\n \"teamID\": \"<string>\",\n \"cpuCount\": 2,\n \"memoryMB\": 129,\n \"minFreeDiskMb\": 1\n}"
response = http.request(request)
puts response.read_bodyAuthorizations
Body
Name of the template. Can include a tag with colon separator (e.g. "my-template" or "my-template:v1"). If tag is included, it will be treated as if the tag was provided in the tags array.
128Tags to assign to the template build
Alias of the template. Deprecated, use name instead.
128Identifier of the team
CPU cores for the sandbox
x >= 1Memory for the sandbox in MiB
x >= 128Requested minimum free space after the template's build steps, in MiB. Omit to use the team's default. Set to 0 to request no minimum free-disk growth. The filesystem is never shrunk, including inherited or already-larger filesystems. Growth is best effort, so filesystem metadata can leave the available space slightly below the requested minimum.
x >= 0Response
The build was requested successfully
Identifier of the template
Identifier of the last successful build for given template
Whether the template is public or only accessible by the team
Names of the template
Tags assigned to the template build
Aliases of the template
Was this page helpful?