Create or recover a durable shared preview link to a site route in the API key owner's agent workspace. Start an agent session in the project before sharing. Page availability is checked when the link is opened, not when it is created.
curl --request POST \
--url https://api.replo.app/v1/shared-previews \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Replo-Api-Version: <replo-api-version>' \
--data '
{
"projectId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"siteId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"route": "<string>",
"locale": "<string>"
}
'import requests
url = "https://api.replo.app/v1/shared-previews"
payload = {
"projectId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"siteId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"route": "<string>",
"locale": "<string>"
}
headers = {
"Replo-Api-Version": "<replo-api-version>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'Replo-Api-Version': '<replo-api-version>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
projectId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
siteId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
route: '<string>',
locale: '<string>'
})
};
fetch('https://api.replo.app/v1/shared-previews', 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.replo.app/v1/shared-previews",
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([
'projectId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'siteId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'route' => '<string>',
'locale' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"Replo-Api-Version: <replo-api-version>"
],
]);
$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.replo.app/v1/shared-previews"
payload := strings.NewReader("{\n \"projectId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"siteId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"route\": \"<string>\",\n \"locale\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Replo-Api-Version", "<replo-api-version>")
req.Header.Add("Authorization", "Bearer <token>")
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.replo.app/v1/shared-previews")
.header("Replo-Api-Version", "<replo-api-version>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"projectId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"siteId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"route\": \"<string>\",\n \"locale\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.replo.app/v1/shared-previews")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Replo-Api-Version"] = '<replo-api-version>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"projectId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"siteId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"route\": \"<string>\",\n \"locale\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"object": "shared_preview",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"url": "<string>"
}{
"error": {
"code": "<string>",
"message": "<string>",
"doc_url": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"doc_url": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"doc_url": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"doc_url": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"doc_url": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"doc_url": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"doc_url": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"doc_url": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"doc_url": "<string>"
}
}Shared-previews
Create or recover a durable shared preview link to a site route in the API key owner's agent workspace. Start an agent session in the project before sharing. Page availability is checked when the link is opened, not when it is created.
POST
/
shared-previews
Create or recover a durable shared preview link to a site route in the API key owner's agent workspace. Start an agent session in the project before sharing. Page availability is checked when the link is opened, not when it is created.
curl --request POST \
--url https://api.replo.app/v1/shared-previews \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Replo-Api-Version: <replo-api-version>' \
--data '
{
"projectId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"siteId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"route": "<string>",
"locale": "<string>"
}
'import requests
url = "https://api.replo.app/v1/shared-previews"
payload = {
"projectId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"siteId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"route": "<string>",
"locale": "<string>"
}
headers = {
"Replo-Api-Version": "<replo-api-version>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'Replo-Api-Version': '<replo-api-version>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
projectId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
siteId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
route: '<string>',
locale: '<string>'
})
};
fetch('https://api.replo.app/v1/shared-previews', 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.replo.app/v1/shared-previews",
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([
'projectId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'siteId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'route' => '<string>',
'locale' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"Replo-Api-Version: <replo-api-version>"
],
]);
$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.replo.app/v1/shared-previews"
payload := strings.NewReader("{\n \"projectId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"siteId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"route\": \"<string>\",\n \"locale\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Replo-Api-Version", "<replo-api-version>")
req.Header.Add("Authorization", "Bearer <token>")
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.replo.app/v1/shared-previews")
.header("Replo-Api-Version", "<replo-api-version>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"projectId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"siteId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"route\": \"<string>\",\n \"locale\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.replo.app/v1/shared-previews")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Replo-Api-Version"] = '<replo-api-version>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"projectId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"siteId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"route\": \"<string>\",\n \"locale\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"object": "shared_preview",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"url": "<string>"
}{
"error": {
"code": "<string>",
"message": "<string>",
"doc_url": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"doc_url": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"doc_url": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"doc_url": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"doc_url": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"doc_url": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"doc_url": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"doc_url": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"doc_url": "<string>"
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
The public API version to use for this request.
Available options:
2026-10-05 Body
application/json
The site route to preview, e.g. "/" or "/about". Must be an absolute path without a query string or fragment.
Required string length:
1 - 2048BCP 47 language tag to render the page in, e.g. "en-US". Omit to use the site's default locale.
Required string length:
1 - 255Response
Create or recover a durable shared preview link to a site route in the API key owner's agent workspace. Start an agent session in the project before sharing. Page availability is checked when the link is opened, not when it is created.