Design & Deploy
Endpoints for components, Liquid templates, themes, the marketplace, deploying, and custom domains. Writes require a bearer token and support the dry-run / confirm flow where noted.
Components
Public reads
GET /content/components— published components. Query:category,tag,is_featured,limit,offset,format.GET /content/components/{slug}— a component by slug (?version=to pin).
Dashboard (bearer)
GET|POST /dashboard/content/components— list / create.GET /dashboard/content/components/{component_id}— by id.GET /dashboard/content/components/by-slug/{slug}— by slug (?version=).PATCH|DELETE /dashboard/content/components/{component_id}— update / delete. Gated.POST /dashboard/content/components/{component_id}/publish·/archive. Gated.POST /dashboard/content/components/{component_id}/preview— render in isolation.POST /dashboard/content/components/{component_id}/upload-preview— preview image (≤5 MB).GET /dashboard/content/components/{slug}/versions— list versions.POST /dashboard/content/components/{slug}/update-and-propagate— bump a component and repoint the pages that use it.POST /dashboard/content/components/{slug}/rollback— restore an earlier version and repoint pages.
POST /dashboard/content/components body (key fields): slug (required), name (required), html_template (required), css, js, dependencies[], props_schema, default_props, category, version, is_global, kind (static|interactive|dynamic|extension).
Templates & Themes
GET /content/themes— public list of built-in themes.GET /content/themes/{name}— theme detail + its template files.GET /dashboard/content/templates(template service) — your custom template overrides.Template files are managed through the template service (
template_*operations exposed via the CLI and MCP): list, get, upsert, delete, plusapply-theme,get-config,update-config, andpreview.
Applying a theme installs its templates for your site; deleting a custom template override reverts that file to the theme default. Applying a theme is gated.
Marketplace
Public reads
GET /content/marketplace/components— the section library. Query:category,is_featured,tag, plus discovery axesmood[],palette[],brand_fit[],scene_type,limit,offset.GET /content/marketplace/components/{slug}— a section.GET /content/marketplace/site-templates— full starter sites. Query:industry,use_case,tag,is_featured.GET /content/marketplace/site-templates/{slug}— a site template (with its pages/settings).GET /content/marketplace/bg-videos— background videos. Query:category(nature|city|abstract|food|tech|people),tag,is_featured.GET /content/marketplace/search— one search across components, bg-videos, and site-templates.
Apply a site template (clones its pages into your project as drafts):
POST /dashboard/content/templates:apply(CLI) /content_apply_site_template(MCP) — gated, preview then confirm.
Deploy
Deploying pushes your current content + templates to the edge. It completes in a few seconds and is a safe, two-step action.
POST /dashboard/content/deploy— deploy. Gated bydry_run/confirm_token(one-shot back-compat).POST /dashboard/content/deploy/preview— returns a preview URL + aconfirm_token.POST /dashboard/content/deploy/production?confirm_token=cft_…— apply.GET /dashboard/content/deploy/status— last deploy status.
Example — the two-step deploy:
# Preview
curl -X POST "https://spideriq.ai/api/v1/dashboard/content/deploy/preview" \
-H "Authorization: Bearer $TOKEN"
# → { "preview_url": "https://preview-….sites.spideriq.ai/", "confirm_token": "cft_…",
# "expires_at": "…", "snapshot_hash": "…" }
# Production
curl -X POST "https://spideriq.ai/api/v1/dashboard/content/deploy/production?confirm_token=cft_…" \
-H "Authorization: Bearer $TOKEN"
# → { "status": "live", "version_id": 48, "deployed_at": "…" }Domains
GET /dashboard/content/domains— list domains.POST /dashboard/content/domains— connect a custom domain. Body:{ "domain": "example.com" }. Returns averification_tokenandssl_status.POST /dashboard/content/domains/subdomain— claim a free*.sites.spideriq.aisubdomain.GET /dashboard/content/domains/subdomain/availability?subdomain_name=...— check availability.POST /dashboard/content/domains/{domain}/verify— verify ownership via the DNSTXTrecord.POST /dashboard/content/domains/{domain}/recheck— re-check the SSL certificate status.POST /dashboard/content/domains/{domain}/primary— set the primary domain.PATCH|DELETE /dashboard/content/domains/{domain}— update / remove.
A domain's ssl_status (pending → provisioning → active) reflects Cloudflare's certificate state and is reconciled in the background; the recheck endpoint forces an immediate poll. See Custom Domains.
Next steps
API Overview — base URL, auth, and the dry-run / confirm flow.
Content — pages, posts, docs, navigation, media, settings.
Deploy — how deploying to the edge works.
Custom Domains — connect and verify a domain.