Capture a full-page screenshot of a page
curl --request POST \
--url http://localhost:4200/preview/screenshot \
--header 'Content-Type: application/json' \
--data '
{
"session": "<string>",
"siteId": "<string>",
"slug": "<string>",
"previewUrl": "<string>",
"draftPath": "<string>",
"published": true
}
'import requests
url = "http://localhost:4200/preview/screenshot"
payload = {
"session": "<string>",
"siteId": "<string>",
"slug": "<string>",
"previewUrl": "<string>",
"draftPath": "<string>",
"published": True
}
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({
session: '<string>',
siteId: '<string>',
slug: '<string>',
previewUrl: '<string>',
draftPath: '<string>',
published: true
})
};
fetch('http://localhost:4200/preview/screenshot', 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 => "4200",
CURLOPT_URL => "http://localhost:4200/preview/screenshot",
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([
'session' => '<string>',
'siteId' => '<string>',
'slug' => '<string>',
'previewUrl' => '<string>',
'draftPath' => '<string>',
'published' => true
]),
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 := "http://localhost:4200/preview/screenshot"
payload := strings.NewReader("{\n \"session\": \"<string>\",\n \"siteId\": \"<string>\",\n \"slug\": \"<string>\",\n \"previewUrl\": \"<string>\",\n \"draftPath\": \"<string>\",\n \"published\": true\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("http://localhost:4200/preview/screenshot")
.header("Content-Type", "application/json")
.body("{\n \"session\": \"<string>\",\n \"siteId\": \"<string>\",\n \"slug\": \"<string>\",\n \"previewUrl\": \"<string>\",\n \"draftPath\": \"<string>\",\n \"published\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("http://localhost:4200/preview/screenshot")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"session\": \"<string>\",\n \"siteId\": \"<string>\",\n \"slug\": \"<string>\",\n \"previewUrl\": \"<string>\",\n \"draftPath\": \"<string>\",\n \"published\": true\n}"
response = http.request(request)
puts response.read_bodyPreview
Capture a full-page screenshot of a page
Draft mode targets the site’s draft-preview route; published: true uses meta.path rather than the slug.
POST
/
preview
/
screenshot
Capture a full-page screenshot of a page
curl --request POST \
--url http://localhost:4200/preview/screenshot \
--header 'Content-Type: application/json' \
--data '
{
"session": "<string>",
"siteId": "<string>",
"slug": "<string>",
"previewUrl": "<string>",
"draftPath": "<string>",
"published": true
}
'import requests
url = "http://localhost:4200/preview/screenshot"
payload = {
"session": "<string>",
"siteId": "<string>",
"slug": "<string>",
"previewUrl": "<string>",
"draftPath": "<string>",
"published": True
}
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({
session: '<string>',
siteId: '<string>',
slug: '<string>',
previewUrl: '<string>',
draftPath: '<string>',
published: true
})
};
fetch('http://localhost:4200/preview/screenshot', 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 => "4200",
CURLOPT_URL => "http://localhost:4200/preview/screenshot",
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([
'session' => '<string>',
'siteId' => '<string>',
'slug' => '<string>',
'previewUrl' => '<string>',
'draftPath' => '<string>',
'published' => true
]),
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 := "http://localhost:4200/preview/screenshot"
payload := strings.NewReader("{\n \"session\": \"<string>\",\n \"siteId\": \"<string>\",\n \"slug\": \"<string>\",\n \"previewUrl\": \"<string>\",\n \"draftPath\": \"<string>\",\n \"published\": true\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("http://localhost:4200/preview/screenshot")
.header("Content-Type", "application/json")
.body("{\n \"session\": \"<string>\",\n \"siteId\": \"<string>\",\n \"slug\": \"<string>\",\n \"previewUrl\": \"<string>\",\n \"draftPath\": \"<string>\",\n \"published\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("http://localhost:4200/preview/screenshot")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"session\": \"<string>\",\n \"siteId\": \"<string>\",\n \"slug\": \"<string>\",\n \"previewUrl\": \"<string>\",\n \"draftPath\": \"<string>\",\n \"published\": true\n}"
response = http.request(request)
puts response.read_bodyBody
application/json
Editor session key. Scoped with siteId into the key the state store uses.
Site this session belongs to, when the orchestrator hosts more than one.
Defaults to the home page, /.
Override the preview URL from the registered site config.
Override the draft-preview route — a prefix the slug is appended to (/avocado) or a template naming where the slug goes (/preview/{slug}/draft). Defaults to the registered site's draftPath, then /preview-draft.
Screenshot the published route instead of the draft preview. Defaults to false.
Response
200
The captured screenshot.