Landing Pages
Duplicate Landing Page
Copy an existing landing page into a new draft
POST
/
api
/
v1
/
landing-pages
/
{landingPageId}
/
duplicate
Duplicate Landing Page
curl --request POST \
--url https://api.sequenzy.com/api/v1/landing-pages/{landingPageId}/duplicate \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"slug": "<string>"
}
'import requests
url = "https://api.sequenzy.com/api/v1/landing-pages/{landingPageId}/duplicate"
payload = {
"name": "<string>",
"slug": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({name: '<string>', slug: '<string>'})
};
fetch('https://api.sequenzy.com/api/v1/landing-pages/{landingPageId}/duplicate', 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.sequenzy.com/api/v1/landing-pages/{landingPageId}/duplicate",
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([
'name' => '<string>',
'slug' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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.sequenzy.com/api/v1/landing-pages/{landingPageId}/duplicate"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"slug\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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.sequenzy.com/api/v1/landing-pages/{landingPageId}/duplicate")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"slug\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sequenzy.com/api/v1/landing-pages/{landingPageId}/duplicate")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"slug\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"landingPage": {
"id": "lp_def456",
"name": "Spring Sale v2",
"slug": "spring-sale-v2",
"status": "draft",
"viewCount": 0,
"conversionCount": 0,
"appPublicUrl": null,
"publicUrl": null
},
"message": "Landing page duplicated as a draft. Use publish_landing_page when the copy is ready to go live."
}
{
"success": false,
"error": "Landing page name cannot be empty."
}
{
"success": false,
"error": "Unauthorized"
}
{
"success": false,
"error": "Landing page not found"
}
Duplicate a landing page instead of rebuilding it from scratch. The copy is
always created as a draft with its own slug, views, and conversions, so the
original keeps its published URL and stats.
Request
string
required
ID of the landing page to copy.
string
Name for the copy. Defaults to the original name with a
(copy) suffix.string
URL slug for the copy. It is normalized and made unique within the company.
Defaults to a slug generated from the copy’s name.
curl -X POST "https://api.sequenzy.com/api/v1/landing-pages/lp_abc123/duplicate" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "Spring Sale v2", "slug": "spring-sale-v2"}'
Responses
{
"success": true,
"landingPage": {
"id": "lp_def456",
"name": "Spring Sale v2",
"slug": "spring-sale-v2",
"status": "draft",
"viewCount": 0,
"conversionCount": 0,
"appPublicUrl": null,
"publicUrl": null
},
"message": "Landing page duplicated as a draft. Use publish_landing_page when the copy is ready to go live."
}
{
"success": false,
"error": "Landing page name cannot be empty."
}
{
"success": false,
"error": "Unauthorized"
}
{
"success": false,
"error": "Landing page not found"
}
⌘I
Duplicate Landing Page
curl --request POST \
--url https://api.sequenzy.com/api/v1/landing-pages/{landingPageId}/duplicate \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"slug": "<string>"
}
'import requests
url = "https://api.sequenzy.com/api/v1/landing-pages/{landingPageId}/duplicate"
payload = {
"name": "<string>",
"slug": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({name: '<string>', slug: '<string>'})
};
fetch('https://api.sequenzy.com/api/v1/landing-pages/{landingPageId}/duplicate', 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.sequenzy.com/api/v1/landing-pages/{landingPageId}/duplicate",
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([
'name' => '<string>',
'slug' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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.sequenzy.com/api/v1/landing-pages/{landingPageId}/duplicate"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"slug\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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.sequenzy.com/api/v1/landing-pages/{landingPageId}/duplicate")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"slug\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sequenzy.com/api/v1/landing-pages/{landingPageId}/duplicate")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"slug\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"landingPage": {
"id": "lp_def456",
"name": "Spring Sale v2",
"slug": "spring-sale-v2",
"status": "draft",
"viewCount": 0,
"conversionCount": 0,
"appPublicUrl": null,
"publicUrl": null
},
"message": "Landing page duplicated as a draft. Use publish_landing_page when the copy is ready to go live."
}
{
"success": false,
"error": "Landing page name cannot be empty."
}
{
"success": false,
"error": "Unauthorized"
}
{
"success": false,
"error": "Landing page not found"
}