List Pages
GET
/api/v1/content/pagesOverview
Returns a paginated list of published content pages for the resolved client site. Pages are static content (e.g., About, Pricing, Contact) as opposed to blog posts.
Authentication
info
No authentication required - Client is resolved from the X-Content-Domain header, which the Cloudflare Worker sets automatically based on the request domain.
Headers
| Header | Type | Required | Description |
|---|---|---|---|
X-Content-Domain | string | Yes | The domain used to resolve the client tenant. Automatically set by the CF Worker; set manually for external frontend integrations. |
Query Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
page | integer | 1 | Page number for pagination |
page_size | integer | 20 | Number of pages per response |
Response
pagesarrayArray of published page objects
pages[].idstring (UUID)Unique page identifier
pages[].slugstringURL-friendly slug
pages[].titlestringPage title
pages[].statusstringAlways published for this endpoint
pages[].templatestringTemplate used to render the page (e.g., default, landing, blank)
pages[].published_atstringISO 8601 publication timestamp
pages[].updated_atstringISO 8601 last update timestamp
totalintegerTotal number of published pages
pageintegerCurrent page number
page_sizeintegerNumber of pages per response
Example Request
- cURL
- Python
- JavaScript
curl -s "https://spideriq.ai/api/v1/content/pages?page=1&page_size=20" \
-H "X-Content-Domain: your-domain.com"
import requests
resp = requests.get(
"https://spideriq.ai/api/v1/content/pages",
params={"page": 1, "page_size": 20},
headers={"X-Content-Domain": "your-domain.com"}
)
data = resp.json()
for page in data["pages"]:
print(f"/{page['slug']} — {page['title']} ({page['template']})")
const resp = await fetch(
"https://spideriq.ai/api/v1/content/pages?page=1&page_size=20",
{ headers: { "X-Content-Domain": "your-domain.com" } }
);
const data = await resp.json();
data.pages.forEach(page => {
console.log(`/${page.slug} — ${page.title} (${page.template})`);
});
Example Response
{
"pages": [
{
"id": "c3d4e5f6-a7b8-9012-cdef-123456789012",
"slug": "about",
"title": "About Us",
"status": "published",
"template": "default",
"published_at": "2026-01-10T12:00:00Z",
"updated_at": "2026-03-20T08:30:00Z"
},
{
"id": "d4e5f6a7-b8c9-0123-defg-234567890123",
"slug": "pricing",
"title": "Pricing",
"status": "published",
"template": "landing",
"published_at": "2026-01-15T12:00:00Z",
"updated_at": "2026-04-01T10:00:00Z"
}
],
"total": 2,
"page": 1,
"page_size": 20
}
Status Codes
| Status Code | Meaning | Description |
|---|---|---|
| 200 | OK | Pages returned successfully |
| 422 | Unprocessable Entity | Invalid query parameters |