curl --request POST \
--url http://localhost:3000/api/v1/sites/{id}/deployments \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/zip' \
--data '<string>'import requests
url = "http://localhost:3000/api/v1/sites/{id}/deployments"
payload = "<string>"
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/zip"
}
response = requests.post(url, data=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/zip'},
body: '<string>'
};
fetch('http://localhost:3000/api/v1/sites/{id}/deployments', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "3000",
CURLOPT_URL => "http://localhost:3000/api/v1/sites/{id}/deployments",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "<string>",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/zip"
],
]);
$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 := "http://localhost:3000/api/v1/sites/{id}/deployments"
payload := strings.NewReader("<string>")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/zip")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("http://localhost:3000/api/v1/sites/{id}/deployments")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/zip")
.body("<string>")
.asString();require 'uri'
require 'net/http'
url = URI("http://localhost:3000/api/v1/sites/{id}/deployments")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/zip'
request.body = "<string>"
response = http.request(request)
puts response.read_body{
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"path": "<string>",
"kind": "guidelines",
"state": "checking",
"files": 0,
"bytes": 0,
"commit": "<string>",
"ref": "<string>",
"error": "<string>",
"manifest": {},
"createdBy": "<string>",
"createdAt": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"detail": "<unknown>"
}
}Deploy to a site
The body is a zip of static files (Content-Type: application/zip): a built site with index.html at its root, or in the one folder it wraps. It is unpacked, checked and stored, then live at path, the deployment there before kept as replaced. A brand portal’s root is drawn by Artbucket: mount a build beside it, at a path such as /docs. When the zip holds artbucket.site.json, every asset it names must be approved, current and unexpired, or the deployment fails with the reasons. Served on the site’s own address only.
Scope: write.
curl --request POST \
--url http://localhost:3000/api/v1/sites/{id}/deployments \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/zip' \
--data '<string>'import requests
url = "http://localhost:3000/api/v1/sites/{id}/deployments"
payload = "<string>"
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/zip"
}
response = requests.post(url, data=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/zip'},
body: '<string>'
};
fetch('http://localhost:3000/api/v1/sites/{id}/deployments', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "3000",
CURLOPT_URL => "http://localhost:3000/api/v1/sites/{id}/deployments",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "<string>",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/zip"
],
]);
$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 := "http://localhost:3000/api/v1/sites/{id}/deployments"
payload := strings.NewReader("<string>")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/zip")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("http://localhost:3000/api/v1/sites/{id}/deployments")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/zip")
.body("<string>")
.asString();require 'uri'
require 'net/http'
url = URI("http://localhost:3000/api/v1/sites/{id}/deployments")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/zip'
request.body = "<string>"
response = http.request(request)
puts response.read_body{
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"path": "<string>",
"kind": "guidelines",
"state": "checking",
"files": 0,
"bytes": 0,
"commit": "<string>",
"ref": "<string>",
"error": "<string>",
"manifest": {},
"createdBy": "<string>",
"createdAt": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"detail": "<unknown>"
}
}Authorizations
An API key: ab_...
Path Parameters
Site id
Query Parameters
Where it is mounted: / (the default) or a path such as /docs
What it is; the site's own kind when left out
guidelines, landing, docs, storybook The commit it was built from, when a build says
The branch or tag of that commit
Body
The body is of type file.
Response
The deployment
Show child attributes
Show child attributes