Developer API

API Documentation

Programmatic access to ZonedWeb. Build on top of our AI template finder, customizer, and deployment pipeline.

Base URL

https://ai.zonedweb.com/api

Authentication

Public endpoints (templates, AI recommender) require no auth. Authenticated endpoints use a Bearer JWT in the Authorization header:

Authorization: Bearer <your-jwt-token>

Get a token by POSTing to /api/auth/login with email + password.

Templates (public)

GET/api/templates

List templates with pagination, search, category, builder, features filters.

Params: page, limit, search, category, builder, features, sort

GET/api/templates/:slug

Full details for one template including screenshots gallery, features, tagline, description.

Params: — (slug or id in URL)

GET/api/templates/:slug/similar

Weighted similarity ranker — returns top N templates matching on theme base, industry, features, popularity.

Params: limit (1-24)

GET/api/templates/slugs

Lightweight endpoint for SEO/sitemap generators — returns every active template slug + updated_at.

Params:

AI Recommender (public)

POST/api/ai/recommend

Two-stage recommend: intent extraction → DB prefilter → Claude rank. Returns top 5 templates with reasons.

Params: message, session_id, anonymous_id

POST/api/ai/recommend/stream

SSE streaming version — emits intent, assistant, card × 5, chips, done events.

Params: message, session_id, anonymous_id

POST/api/ai/recommend/explain

Drill-down explanation for a single template — returns a 2-paragraph personalized answer + 3 follow-up chips.

Params: template_id, session_id, anonymous_id

GET/api/ai/recommend/:id

Resume a previous recommend session — returns conversation history and last recommendations.

Params: anonymous_id

AI Customizer (public)

POST/api/ai/sessions

Create a customizer session for a specific template. Anonymous-friendly.

Params: template_id, anonymous_id

GET/api/ai/sessions/:id

Get full session state — conversation, customizations, business info.

Params: anonymous_id

POST/api/ai/sessions/:id/message

Send a chat message. Claude applies colors, fonts, text, image keywords live to the iframe preview.

Params: message, anonymous_id

POST/api/ai/sessions/:id/signup-deploy

Anonymous users: signup + claim session + deploy the site with customizations in one call.

Params: email, password, name, site_name, anonymous_id

Sites (authenticated)

GET/api/sites

List sites belonging to the authenticated user.

Params:

POST/api/sites

Create and deploy a new site. Enqueues a deployment job.

Params: name, template_id

GET/api/sites/:id

Get full site details including deploy status.

Params:

GET/api/sites/:id/deploy-status

Poll endpoint for deploy progress (0-100). Used as WebSocket fallback.

Params:

Bookmarks (authenticated)

GET/api/bookmarks

List the user's saved templates.

Params:

POST/api/bookmarks

Save a template. Idempotent.

Params: template_id

DELETE/api/bookmarks/:templateID

Remove a saved template.

Params:

POST/api/bookmarks/sync

Merge client-side localStorage bookmarks into the user's account (used on login).

Params: template_ids[]

Health

GET/api/health

Fast liveness probe. Returns 200 if the process is running.

Params:

GET/api/health/deep

Deep health: Postgres, Redis, Claude key, template count. Returns 503 if any dependency is down.

Params:

Questions about the API?

Email us with your use case and we'll help you get integrated.

[email protected]