POST
/
v1
/
base-builds
Start a server-side base build
curl --request POST \
  --url https://api.example.com/v1/base-builds \
  --header 'Content-Type: application/json' \
  --data '
{
  "base": "<string>",
  "force": true,
  "pack": "<string>",
  "parent": "<string>",
  "script": "<string>"
}
'
import requests

url = "https://api.example.com/v1/base-builds"

payload = {
"base": "<string>",
"force": True,
"pack": "<string>",
"parent": "<string>",
"script": "<string>"
}
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({
base: '<string>',
force: true,
pack: '<string>',
parent: '<string>',
script: '<string>'
})
};

fetch('https://api.example.com/v1/base-builds', 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/v1/base-builds",
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([
'base' => '<string>',
'force' => true,
'pack' => '<string>',
'parent' => '<string>',
'script' => '<string>'
]),
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/v1/base-builds"

payload := strings.NewReader("{\n \"base\": \"<string>\",\n \"force\": true,\n \"pack\": \"<string>\",\n \"parent\": \"<string>\",\n \"script\": \"<string>\"\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/v1/base-builds")
.header("Content-Type", "application/json")
.body("{\n \"base\": \"<string>\",\n \"force\": true,\n \"pack\": \"<string>\",\n \"parent\": \"<string>\",\n \"script\": \"<string>\"\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.example.com/v1/base-builds")

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 \"base\": \"<string>\",\n \"force\": true,\n \"pack\": \"<string>\",\n \"parent\": \"<string>\",\n \"script\": \"<string>\"\n}"

response = http.request(request)
puts response.read_body
{
  "id": "<string>",
  "status": "<string>",
  "version": "<string>"
}

Body

application/json

Build server-side base builds are triggered for.

Exactly one of pack XOR (base + parent + script) must be set. The pack form resolves base/parent/script from the pack's default rev — this is what zomg pack rebuild calls (with force: true).

base
string | null
force
boolean
pack
string | null
parent
string | null
script
string | null

Response

Build accepted (may already be cached)

Compact start acknowledgement (also embedded in PackInstallResponse).

id
string
required
status
string
required

"running" or "cached" (a cache hit finishes synchronously).

version
string | null