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.