Sites API
Manage your sites programmatically. All endpoints require authentication.
GET /api/v1/sites List all sites
Returns all sites belonging to the authenticated customer.
Response
{
"sites": [
{
"id": "01HXYZ...",
"domain": "example.com",
"name": "My Website",
"status": "active",
"script_version": 3,
"last_published_at": "2026-02-15T10:30:00Z",
"last_scan_at": "2026-02-14T02:00:00Z",
"scan_frequency": "weekly"
}
]
} POST /api/v1/sites Create a new site
Creates a new site with default consent configuration and English banner text. Returns 403 if you’ve reached your plan’s domain limit. Returns 409 if the domain is already registered.
Request Body
{
"domain": "example.com",
"name": "My Website"
} Response
{
"site": {
"id": "01HXYZ...",
"domain": "example.com",
"name": "My Website",
"status": "active",
"scriptVersion": 0,
"lastPublishedAt": null,
"scan_frequency": "manual"
}
} GET /api/v1/sites/:siteId Get a single site
Returns the full site details. Returns 404 if the site doesn’t exist or doesn’t belong to the authenticated customer.
Response
{
"site": {
"id": "01HXYZ...",
"domain": "example.com",
"name": "My Website",
"status": "active",
"script_version": 3,
"last_published_at": "2026-02-15T10:30:00Z",
"last_scan_at": "2026-02-14T02:00:00Z",
"scan_frequency": "weekly",
"scan_preferred_hour": 2,
"scan_preferred_day": 1
}
} PUT /api/v1/sites/:siteId Update a site
Updates the site’s name. The domain cannot be changed after creation.
Request Body
{
"name": "Updated Name"
} Response
{
"site": {
"id": "01HXYZ...",
"domain": "example.com",
"name": "Updated Name",
"status": "active"
}
} DELETE /api/v1/sites/:siteId Delete a site
Permanently deletes the site, its configuration, scan history, and compiled script. This action cannot be undone.
Response
{
"success": true
} Plan limits
Each plan allows 1 domain with a subpage limit that varies by tier: Free (50 subpages), Basic (500), Pro (3,500), Business (7,000), Enterprise (custom). Attempting to create a domain beyond your limit returns a 403 error.