Landing Pages
Get Landing Page Stats
Get visits, unique visits, clicks, subscribes, conversion rate, referrers, and a daily histogram
GET
/
api
/
v1
/
landing-pages
/
{landingPageId}
/
stats
Get Landing Page Stats
curl --request GET \
--url https://api.sequenzy.com/api/v1/landing-pages/{landingPageId}/stats \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.sequenzy.com/api/v1/landing-pages/{landingPageId}/stats"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.sequenzy.com/api/v1/landing-pages/{landingPageId}/stats', 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}/stats",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.sequenzy.com/api/v1/landing-pages/{landingPageId}/stats"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.sequenzy.com/api/v1/landing-pages/{landingPageId}/stats")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sequenzy.com/api/v1/landing-pages/{landingPageId}/stats")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"success": true,
"stats": {
"landingPageId": "lp_abc123",
"period": "30d",
"start": "2026-07-31T00:00:00.000Z",
"end": "2026-08-29T12:00:00.000Z",
"dataAvailableFrom": "2026-08-29T00:00:00.000Z",
"visits": 48,
"uniqueVisits": 31,
"clicks": 12,
"subscribes": 6,
"conversionRate": 19.35,
"botVisits": 4,
"lifetimeViewCount": 52,
"lifetimeConversionCount": 6,
"histogram": [
{
"date": "2026-08-28",
"visits": 9,
"uniqueVisits": 7,
"clicks": 3,
"subscribes": 1
}
],
"referrers": [
{ "name": "twitter.com", "visits": 20, "uniqueVisits": 14 },
{ "name": "direct", "visits": 11, "uniqueVisits": 9 }
],
"sources": [
{ "name": "twitter", "visits": 18, "uniqueVisits": 12 },
{ "name": "direct", "visits": 13, "uniqueVisits": 10 }
],
"countsInclude": "Published public page loads retained from dataAvailableFrom. Known crawlers are excluded from visits, unique visits, and clicks. Preview URLs and the editor do not count. Opening the public URL while building the page does count. Lifetime page counters may include earlier traffic."
}
}
{
"success": false,
"error": "Landing page stats period must be 7d, 30d, 90d, or all."
}
{
"success": false,
"error": "Unauthorized"
}
{
"success": false,
"error": "Landing page not found"
}
Mailchimp-style landing page analytics for one page. Default totals exclude
known crawlers. Preview URLs and the editor never count. Opening the public
URL while building the page does count.
conversionRate is subscribes divided by unique visits, as a percentage.
The histogram is daily; period=all returns all retained analytics and a
90-day chart. dataAvailableFrom identifies the beginning of that retained
coverage. Events from before analytics collection began are not backfilled,
and raw events expire after two years. Lifetime viewCount / conversionCount
on the page remain PostgreSQL compatibility counters for lists and
get_landing_page, so they may include earlier traffic.
Request
string
required
Landing page ID.
string
Time window:
7d, 30d, 90d, or all. Defaults to all.string
Custom range start as an ISO 8601 timestamp. Provide
end too. Maximum range
is 365 days.string
Custom range end as an ISO 8601 timestamp. Provide
start too.boolean
Include known crawlers in visits, unique visits, clicks, referrers, and the
histogram. Crawler hits are always returned separately as
botVisits.curl "https://api.sequenzy.com/api/v1/landing-pages/lp_abc123/stats?period=30d" \
-H "Authorization: Bearer YOUR_API_KEY"
Responses
{
"success": true,
"stats": {
"landingPageId": "lp_abc123",
"period": "30d",
"start": "2026-07-31T00:00:00.000Z",
"end": "2026-08-29T12:00:00.000Z",
"dataAvailableFrom": "2026-08-29T00:00:00.000Z",
"visits": 48,
"uniqueVisits": 31,
"clicks": 12,
"subscribes": 6,
"conversionRate": 19.35,
"botVisits": 4,
"lifetimeViewCount": 52,
"lifetimeConversionCount": 6,
"histogram": [
{
"date": "2026-08-28",
"visits": 9,
"uniqueVisits": 7,
"clicks": 3,
"subscribes": 1
}
],
"referrers": [
{ "name": "twitter.com", "visits": 20, "uniqueVisits": 14 },
{ "name": "direct", "visits": 11, "uniqueVisits": 9 }
],
"sources": [
{ "name": "twitter", "visits": 18, "uniqueVisits": 12 },
{ "name": "direct", "visits": 13, "uniqueVisits": 10 }
],
"countsInclude": "Published public page loads retained from dataAvailableFrom. Known crawlers are excluded from visits, unique visits, and clicks. Preview URLs and the editor do not count. Opening the public URL while building the page does count. Lifetime page counters may include earlier traffic."
}
}
{
"success": false,
"error": "Landing page stats period must be 7d, 30d, 90d, or all."
}
{
"success": false,
"error": "Unauthorized"
}
{
"success": false,
"error": "Landing page not found"
}
⌘I
Get Landing Page Stats
curl --request GET \
--url https://api.sequenzy.com/api/v1/landing-pages/{landingPageId}/stats \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.sequenzy.com/api/v1/landing-pages/{landingPageId}/stats"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.sequenzy.com/api/v1/landing-pages/{landingPageId}/stats', 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}/stats",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.sequenzy.com/api/v1/landing-pages/{landingPageId}/stats"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.sequenzy.com/api/v1/landing-pages/{landingPageId}/stats")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sequenzy.com/api/v1/landing-pages/{landingPageId}/stats")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"success": true,
"stats": {
"landingPageId": "lp_abc123",
"period": "30d",
"start": "2026-07-31T00:00:00.000Z",
"end": "2026-08-29T12:00:00.000Z",
"dataAvailableFrom": "2026-08-29T00:00:00.000Z",
"visits": 48,
"uniqueVisits": 31,
"clicks": 12,
"subscribes": 6,
"conversionRate": 19.35,
"botVisits": 4,
"lifetimeViewCount": 52,
"lifetimeConversionCount": 6,
"histogram": [
{
"date": "2026-08-28",
"visits": 9,
"uniqueVisits": 7,
"clicks": 3,
"subscribes": 1
}
],
"referrers": [
{ "name": "twitter.com", "visits": 20, "uniqueVisits": 14 },
{ "name": "direct", "visits": 11, "uniqueVisits": 9 }
],
"sources": [
{ "name": "twitter", "visits": 18, "uniqueVisits": 12 },
{ "name": "direct", "visits": 13, "uniqueVisits": 10 }
],
"countsInclude": "Published public page loads retained from dataAvailableFrom. Known crawlers are excluded from visits, unique visits, and clicks. Preview URLs and the editor do not count. Opening the public URL while building the page does count. Lifetime page counters may include earlier traffic."
}
}
{
"success": false,
"error": "Landing page stats period must be 7d, 30d, 90d, or all."
}
{
"success": false,
"error": "Unauthorized"
}
{
"success": false,
"error": "Landing page not found"
}