Create a new landing page.
curl --request POST \
--url https://api.parallellabs.app/api/v0/landing-pages \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"companyId": "<string>",
"name": "<string>",
"artifactsId": "<string>",
"description": "<string>",
"initialPrompt": "<string>",
"listId": "<string>"
}
'import requests
url = "https://api.parallellabs.app/api/v0/landing-pages"
payload = {
"companyId": "<string>",
"name": "<string>",
"artifactsId": "<string>",
"description": "<string>",
"initialPrompt": "<string>",
"listId": "<string>"
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
companyId: '<string>',
name: '<string>',
artifactsId: '<string>',
description: '<string>',
initialPrompt: '<string>',
listId: '<string>'
})
};
fetch('https://api.parallellabs.app/api/v0/landing-pages', 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.parallellabs.app/api/v0/landing-pages",
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([
'companyId' => '<string>',
'name' => '<string>',
'artifactsId' => '<string>',
'description' => '<string>',
'initialPrompt' => '<string>',
'listId' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$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.parallellabs.app/api/v0/landing-pages"
payload := strings.NewReader("{\n \"companyId\": \"<string>\",\n \"name\": \"<string>\",\n \"artifactsId\": \"<string>\",\n \"description\": \"<string>\",\n \"initialPrompt\": \"<string>\",\n \"listId\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
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.parallellabs.app/api/v0/landing-pages")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"companyId\": \"<string>\",\n \"name\": \"<string>\",\n \"artifactsId\": \"<string>\",\n \"description\": \"<string>\",\n \"initialPrompt\": \"<string>\",\n \"listId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.parallellabs.app/api/v0/landing-pages")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"companyId\": \"<string>\",\n \"name\": \"<string>\",\n \"artifactsId\": \"<string>\",\n \"description\": \"<string>\",\n \"initialPrompt\": \"<string>\",\n \"listId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"created": 123,
"description": "<string>",
"domainId": "<string>",
"htmlContent": "<string>",
"id": "<string>",
"isPublished": true,
"listId": "<string>",
"name": "<string>",
"projectId": "<string>",
"publicSlug": "<string>",
"publicUrl": "<string>",
"seoMetadata": {},
"status": "<string>",
"updated": 123
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Landing Pages
Create a new landing page.
POST
/
api
/
v0
/
landing-pages
Create a new landing page.
curl --request POST \
--url https://api.parallellabs.app/api/v0/landing-pages \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"companyId": "<string>",
"name": "<string>",
"artifactsId": "<string>",
"description": "<string>",
"initialPrompt": "<string>",
"listId": "<string>"
}
'import requests
url = "https://api.parallellabs.app/api/v0/landing-pages"
payload = {
"companyId": "<string>",
"name": "<string>",
"artifactsId": "<string>",
"description": "<string>",
"initialPrompt": "<string>",
"listId": "<string>"
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
companyId: '<string>',
name: '<string>',
artifactsId: '<string>',
description: '<string>',
initialPrompt: '<string>',
listId: '<string>'
})
};
fetch('https://api.parallellabs.app/api/v0/landing-pages', 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.parallellabs.app/api/v0/landing-pages",
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([
'companyId' => '<string>',
'name' => '<string>',
'artifactsId' => '<string>',
'description' => '<string>',
'initialPrompt' => '<string>',
'listId' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$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.parallellabs.app/api/v0/landing-pages"
payload := strings.NewReader("{\n \"companyId\": \"<string>\",\n \"name\": \"<string>\",\n \"artifactsId\": \"<string>\",\n \"description\": \"<string>\",\n \"initialPrompt\": \"<string>\",\n \"listId\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
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.parallellabs.app/api/v0/landing-pages")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"companyId\": \"<string>\",\n \"name\": \"<string>\",\n \"artifactsId\": \"<string>\",\n \"description\": \"<string>\",\n \"initialPrompt\": \"<string>\",\n \"listId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.parallellabs.app/api/v0/landing-pages")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"companyId\": \"<string>\",\n \"name\": \"<string>\",\n \"artifactsId\": \"<string>\",\n \"description\": \"<string>\",\n \"initialPrompt\": \"<string>\",\n \"listId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"created": 123,
"description": "<string>",
"domainId": "<string>",
"htmlContent": "<string>",
"id": "<string>",
"isPublished": true,
"listId": "<string>",
"name": "<string>",
"projectId": "<string>",
"publicSlug": "<string>",
"publicUrl": "<string>",
"seoMetadata": {},
"status": "<string>",
"updated": 123
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Authorizations
CompanyApiKeyBearerAuth & CompanyId
Company API key - scoped to a specific company. Generate from the Integrations page in your dashboard.
Body
application/json
Landing page details
Response
Created landing page
Landing page object
Creation timestamp
Description
Custom domain ID
HTML content
Landing page ID
Whether page is published
Attached smart list ID
Landing page name
Associated project ID
Public URL slug
Full public URL
SEO metadata
Status: draft, published, archived
Last update timestamp
Get paginated list of landing pages.Generate a landing page from a prompt. Creates the page, generates HTML with AI, and auto-publishes - all in the background.
⌘I

