curl --request POST \
--url https://api.e2b.app/v2/templates/{templateID}/builds/{buildID} \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"fromImage": "<string>",
"fromTemplate": "<string>",
"fromImageRegistry": {
"type": "aws",
"awsAccessKeyId": "<string>",
"awsSecretAccessKey": "<string>",
"awsRegion": "<string>"
},
"force": false,
"steps": [],
"startCmd": "<string>",
"readyCmd": "<string>"
}
'import requests
url = "https://api.e2b.app/v2/templates/{templateID}/builds/{buildID}"
payload = {
"fromImage": "<string>",
"fromTemplate": "<string>",
"fromImageRegistry": {
"type": "aws",
"awsAccessKeyId": "<string>",
"awsSecretAccessKey": "<string>",
"awsRegion": "<string>"
},
"force": False,
"steps": [],
"startCmd": "<string>",
"readyCmd": "<string>"
}
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({
fromImage: '<string>',
fromTemplate: '<string>',
fromImageRegistry: {
type: 'aws',
awsAccessKeyId: '<string>',
awsSecretAccessKey: '<string>',
awsRegion: '<string>'
},
force: false,
steps: [],
startCmd: '<string>',
readyCmd: '<string>'
})
};
fetch('https://api.e2b.app/v2/templates/{templateID}/builds/{buildID}', 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/v2/templates/{templateID}/builds/{buildID}",
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([
'fromImage' => '<string>',
'fromTemplate' => '<string>',
'fromImageRegistry' => [
'type' => 'aws',
'awsAccessKeyId' => '<string>',
'awsSecretAccessKey' => '<string>',
'awsRegion' => '<string>'
],
'force' => false,
'steps' => [
],
'startCmd' => '<string>',
'readyCmd' => '<string>'
]),
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/v2/templates/{templateID}/builds/{buildID}"
payload := strings.NewReader("{\n \"fromImage\": \"<string>\",\n \"fromTemplate\": \"<string>\",\n \"fromImageRegistry\": {\n \"type\": \"aws\",\n \"awsAccessKeyId\": \"<string>\",\n \"awsSecretAccessKey\": \"<string>\",\n \"awsRegion\": \"<string>\"\n },\n \"force\": false,\n \"steps\": [],\n \"startCmd\": \"<string>\",\n \"readyCmd\": \"<string>\"\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/v2/templates/{templateID}/builds/{buildID}")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"fromImage\": \"<string>\",\n \"fromTemplate\": \"<string>\",\n \"fromImageRegistry\": {\n \"type\": \"aws\",\n \"awsAccessKeyId\": \"<string>\",\n \"awsSecretAccessKey\": \"<string>\",\n \"awsRegion\": \"<string>\"\n },\n \"force\": false,\n \"steps\": [],\n \"startCmd\": \"<string>\",\n \"readyCmd\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.e2b.app/v2/templates/{templateID}/builds/{buildID}")
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 \"fromImage\": \"<string>\",\n \"fromTemplate\": \"<string>\",\n \"fromImageRegistry\": {\n \"type\": \"aws\",\n \"awsAccessKeyId\": \"<string>\",\n \"awsSecretAccessKey\": \"<string>\",\n \"awsRegion\": \"<string>\"\n },\n \"force\": false,\n \"steps\": [],\n \"startCmd\": \"<string>\",\n \"readyCmd\": \"<string>\"\n}"
response = http.request(request)
puts response.read_bodyStart build (v2)
Start the build. With an Idempotency-Key, replays continue to work after the build has left the waiting state.
curl --request POST \
--url https://api.e2b.app/v2/templates/{templateID}/builds/{buildID} \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"fromImage": "<string>",
"fromTemplate": "<string>",
"fromImageRegistry": {
"type": "aws",
"awsAccessKeyId": "<string>",
"awsSecretAccessKey": "<string>",
"awsRegion": "<string>"
},
"force": false,
"steps": [],
"startCmd": "<string>",
"readyCmd": "<string>"
}
'import requests
url = "https://api.e2b.app/v2/templates/{templateID}/builds/{buildID}"
payload = {
"fromImage": "<string>",
"fromTemplate": "<string>",
"fromImageRegistry": {
"type": "aws",
"awsAccessKeyId": "<string>",
"awsSecretAccessKey": "<string>",
"awsRegion": "<string>"
},
"force": False,
"steps": [],
"startCmd": "<string>",
"readyCmd": "<string>"
}
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({
fromImage: '<string>',
fromTemplate: '<string>',
fromImageRegistry: {
type: 'aws',
awsAccessKeyId: '<string>',
awsSecretAccessKey: '<string>',
awsRegion: '<string>'
},
force: false,
steps: [],
startCmd: '<string>',
readyCmd: '<string>'
})
};
fetch('https://api.e2b.app/v2/templates/{templateID}/builds/{buildID}', 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/v2/templates/{templateID}/builds/{buildID}",
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([
'fromImage' => '<string>',
'fromTemplate' => '<string>',
'fromImageRegistry' => [
'type' => 'aws',
'awsAccessKeyId' => '<string>',
'awsSecretAccessKey' => '<string>',
'awsRegion' => '<string>'
],
'force' => false,
'steps' => [
],
'startCmd' => '<string>',
'readyCmd' => '<string>'
]),
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/v2/templates/{templateID}/builds/{buildID}"
payload := strings.NewReader("{\n \"fromImage\": \"<string>\",\n \"fromTemplate\": \"<string>\",\n \"fromImageRegistry\": {\n \"type\": \"aws\",\n \"awsAccessKeyId\": \"<string>\",\n \"awsSecretAccessKey\": \"<string>\",\n \"awsRegion\": \"<string>\"\n },\n \"force\": false,\n \"steps\": [],\n \"startCmd\": \"<string>\",\n \"readyCmd\": \"<string>\"\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/v2/templates/{templateID}/builds/{buildID}")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"fromImage\": \"<string>\",\n \"fromTemplate\": \"<string>\",\n \"fromImageRegistry\": {\n \"type\": \"aws\",\n \"awsAccessKeyId\": \"<string>\",\n \"awsSecretAccessKey\": \"<string>\",\n \"awsRegion\": \"<string>\"\n },\n \"force\": false,\n \"steps\": [],\n \"startCmd\": \"<string>\",\n \"readyCmd\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.e2b.app/v2/templates/{templateID}/builds/{buildID}")
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 \"fromImage\": \"<string>\",\n \"fromTemplate\": \"<string>\",\n \"fromImageRegistry\": {\n \"type\": \"aws\",\n \"awsAccessKeyId\": \"<string>\",\n \"awsSecretAccessKey\": \"<string>\",\n \"awsRegion\": \"<string>\"\n },\n \"force\": false,\n \"steps\": [],\n \"startCmd\": \"<string>\",\n \"readyCmd\": \"<string>\"\n}"
response = http.request(request)
puts response.read_bodyAuthorizations
Headers
Optional team-scoped key for retrying the request. Use 1 to 255 lowercase ASCII letters, digits, or hyphens (a-z, 0-9, -), such as a lowercase UUID. The HTTP method, path, query, and request content identify the request. When idempotency is enabled, a matching retry of a completed request replays its status and body, including the IDs of any resources it created, without repeating the operation. A failure explicitly classified as safe to retry (Should-Retry: true) permits a fresh attempt with the same key and request. Only one attempt can run at a time. A different request returns 409 with error_code idempotency_request_mismatch. A matching request whose original has no recorded response yet and is within its expected response window returns 409 with error_code idempotency_in_progress. A matching request whose original has no recorded response and whose expected response deadline has passed or is unknown returns 422 with error_code idempotency_outcome_unknown. These conflicts and unknown outcomes do not execute the request again. If the key's record is unavailable or idempotency is misconfigured, the request returns 503; Should-Retry tells whether to retry with the same key. After the retention period expires, the key can start a new operation.
1 - 255^[a-z0-9-]+$Body
Exactly one of fromImage or fromTemplate must be given and non-empty.
Image to use as a base for the template build
1Template to use as a base for the template build
1- Option 1
- Option 2
- Option 3
Show child attributes
Show child attributes
Whether the whole build should be forced to run regardless of the cache
List of steps to execute in the template build
Show child attributes
Show child attributes
Start command to execute in the template after the build
Ready check command to execute in the template after the build
Response
The build has started
Was this page helpful?