BluetickedDeveloper docs

Sites

4 endpoints, each with examples that open in the console prefilled.

All resources
GET/api/v1/sitessites:readTry in console

List sites

Every site in the workspace with its slug, live status and public address.

  • public_url is null until the site is published; primary_domain carries the verified custom domain when one exists, otherwise the always-on Blueticked subdomain serves.
  • status is published or draft. Unpublishing keeps the published schema, so re-publishing is instant.
  • Business-restricted API keys see only their businesses' sites.
  • A signed-in dashboard session lists the selected business's sites; ?business=all lists every business's sites the member can reach.
curl -X GET "https://app.blueticked.com/api/v1/sites" \
  -H "Authorization: Bearer $BLUETICKED_API_KEY"
Response
{
  "sites": [
    {
      "id": "1d3dd43a-1f0a-4e83-ae13-4494e0d967b3",
      "business_id": "22222222-2222-4222-9222-222222222222",
      "slug": "aloe-ridge-guest-house",
      "status": "published",
      "published_at": "2026-08-04T12:00:00.000Z",
      "created_at": "2026-07-20T09:00:00.000Z",
      "updated_at": "2026-08-05T08:30:00.000Z",
      "primary_domain": null,
      "public_url": "https://aloe-ridge-guest-house.sites.blueticked.com"
    }
  ]
}
POST/api/v1/sitessites:writeTry in console

Create a site

Create a draft site (from a house template or the blank starter), ready for the studio.

Body parameters
business_namerequiredstring
desired_slugstring
templatestring
  • The new site is a DRAFT. Nothing is public until sites:publish puts it live, so creation sits safely in the agent Prepare profile.
  • desired_slug becomes the DNS label (slug.sites.blueticked.com); lowercase letters, numbers and hyphens, 3 to 63 chars. Omit it to derive one from the business name; a taken slug gets a numbered variant.
  • An unknown template is refused rather than silently falling back to the blank starter.
  • Multi-business workspaces (or business-restricted keys reaching several) must pass business_id.
  • Draft EDITING stays in the dashboard studio. The schema is a visual document; agents fill it through AI generation and the studio, not raw JSON.
curl -X POST "https://app.blueticked.com/api/v1/sites" \
  -H "Authorization: Bearer $BLUETICKED_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "business_name": "Aloe Ridge Guest House",
  "desired_slug": "aloe-ridge-guest-house",
  "template": "guest-house"
}'
Response
{
  "site": {
    "id": "1d3dd43a-1f0a-4e83-ae13-4494e0d967b3",
    "organization_id": "33333333-3333-4333-9333-333333333333",
    "business_id": "22222222-2222-4222-9222-222222222222",
    "slug": "aloe-ridge-guest-house",
    "status": "draft",
    "schema_version": 1,
    "created_at": "2026-08-06T09:00:00.000Z",
    "updated_at": "2026-08-06T09:00:00.000Z"
  }
}
POST/api/v1/sites/{id}/publishsites:publishTry in console

Publish a site

Put the site's current draft live on the public internet: validated, image-audited, cache-busted.

  • Requires sites:publish, which is deliberately OUTSIDE the agent Prepare profile: publishing changes what the public sees, so it is an Operate-level act.
  • The draft is schema-validated and its images audited before going live; an invalid draft returns 400 with the reason.
  • 409 means the draft changed while publishing (optimistic concurrency). Re-fetch and retry deliberately.
  • First-time publishes count against the plan's published-sites entitlement; republishing a live site does not.
curl -X POST "https://app.blueticked.com/api/v1/sites/{id}/publish" \
  -H "Authorization: Bearer $BLUETICKED_API_KEY"
Response
{
  "site": {
    "id": "1d3dd43a-1f0a-4e83-ae13-4494e0d967b3",
    "business_id": "22222222-2222-4222-9222-222222222222",
    "slug": "aloe-ridge-guest-house",
    "status": "published",
    "published_at": "2026-08-04T12:00:00.000Z",
    "created_at": "2026-07-20T09:00:00.000Z",
    "updated_at": "2026-08-05T08:30:00.000Z",
    "primary_domain": null,
    "public_url": "https://aloe-ridge-guest-house.sites.blueticked.com"
  }
}
POST/api/v1/sites/{id}/unpublishsites:writeTry in console

Take a site offline

Flip a published site back to draft. Every hostname stops serving once caches clear.

  • The safe direction, so plain sites:write suffices (and the agent Prepare profile includes it).
  • The published schema is kept, so re-publishing later is instant.
curl -X POST "https://app.blueticked.com/api/v1/sites/{id}/unpublish" \
  -H "Authorization: Bearer $BLUETICKED_API_KEY"
Response
{
  "site": {
    "id": "1d3dd43a-1f0a-4e83-ae13-4494e0d967b3",
    "business_id": "22222222-2222-4222-9222-222222222222",
    "slug": "aloe-ridge-guest-house",
    "status": "draft",
    "published_at": "2026-08-04T12:00:00.000Z",
    "created_at": "2026-07-20T09:00:00.000Z",
    "updated_at": "2026-08-05T08:30:00.000Z",
    "primary_domain": null,
    "public_url": "https://aloe-ridge-guest-house.sites.blueticked.com"
  }
}