Skip to main content

Navigation

GET/api/v1/content/navigation/{location}

Overview

Returns the navigation menu for a given location. Navigation menus are hierarchical -- items can have nested children for dropdown menus and sub-navigation.

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

HeaderTypeRequiredDescription
X-Content-DomainstringYesThe domain used to resolve the client tenant. Automatically set by the CF Worker; set manually for external frontend integrations.

Path Parameters

ParameterTypeRequiredDescription
locationstringYesNavigation location. One of: header, footer, docs_sidebar

Response

idstring (UUID)

Navigation menu identifier

locationstring

Menu location (header, footer, or docs_sidebar)

itemsarray

Array of navigation items (hierarchical)

items[].labelstring

Display label for the navigation item

items[].urlstring

Target URL (relative or absolute)

items[].iconstring | null

Optional icon identifier

items[].is_externalboolean

Whether the link opens in a new tab

items[].badgestring | null

Optional badge text (e.g., New, Beta)

items[].childrenarray

Nested child navigation items (same shape)

updated_atstring

ISO 8601 last update timestamp

Example Request

curl -s "https://spideriq.ai/api/v1/content/navigation/header" \
-H "X-Content-Domain: your-domain.com"

Example Response

{
"id": "nav-001-uuid",
"location": "header",
"items": [
{
"label": "Product",
"url": "/product",
"icon": null,
"is_external": false,
"badge": null,
"children": [
{
"label": "Lead Generation",
"url": "/product/lead-generation",
"icon": "target",
"is_external": false,
"badge": null,
"children": []
},
{
"label": "Web Scraping",
"url": "/product/web-scraping",
"icon": "globe",
"is_external": false,
"badge": null,
"children": []
}
]
},
{
"label": "Pricing",
"url": "/pricing",
"icon": null,
"is_external": false,
"badge": null,
"children": []
},
{
"label": "Docs",
"url": "/docs",
"icon": "book",
"is_external": false,
"badge": "New",
"children": []
},
{
"label": "Blog",
"url": "/blog",
"icon": null,
"is_external": false,
"badge": null,
"children": []
}
],
"updated_at": "2026-04-01T10:00:00Z"
}

Status Codes

Status CodeMeaningDescription
200OKNavigation menu returned successfully
404Not FoundNo navigation menu found for the given location