Zoca Website API

The Website API from Zoca — 128 operation(s) for website.

Operations 177

POST /website/{websiteId}/gallery/migrate Migrate website gallery media from chrone_mapping to website.media #
POST /website/forms Create a new form #
GET /website/forms Get all forms (paginated) #
GET /website/forms/{id} Get form by ID #
PATCH /website/forms/{id} Update a form #
DELETE /website/forms/{id} Delete a form (soft delete) #
GET /website/{websiteId}/generate-metadata Generate metadata for a website #
POST /website/generate-fonts Generate AI font pair suggestions #
GET /website/{websiteId}/website-forms Get all formIds mapped to a websiteId #
POST /website/{websiteId}/website-forms Create website-form mapping #
PATCH /website/{websiteId}/website-forms/{id} Update website-form mapping by ID #
DELETE /website/{websiteId}/website-forms/{id} Delete a website-form mapping #
GET /website/global-pages Get paginated list of global pages #
GET /website/sections/{sectionId}/colors Get all colors for a section #
PATCH /website/sections/{sectionId}/colors Update color for a section #
POST /website/{websiteId}/products Create a new product for a website #
GET /website/{websiteId}/products Get all products for a website #
GET /website/{websiteId}/products/{productId} Get a product by ID for a website #
PATCH /website/{websiteId}/products/{productId} Update a product for a website #
DELETE /website/{websiteId}/products/{productId} Delete a product for a website #
PATCH /website/{websiteId}/products/reorder Reorder products for a website #
POST /website/navigation-links Create a navigation link #
GET /website/navigation-links Get navigation links by parent ID #
PATCH /website/navigation-links/{id} Update a navigation link #
DELETE /website/navigation-links/{id} Delete a navigation link #
PATCH /website/navigation-links/reorder/{parentId} Reorder navigation links #
POST /website/navigation-links/reset/{parentId} Reset a page's navigation links to the generated list #
POST /website/website-font Create website font configuration #
GET /website/website-font/{websiteId} Get website font configuration #
PATCH /website/website-font/{websiteId}/{fontType} Update website font configuration #
DELETE /website/website-font/{websiteId}/{fontId}/{fontType} Delete website font configuration #
POST /website/{websiteId}/add/font Add a font to a website by name and URL #
POST /website/font Create a new font #
GET /website/font Get paginated list of fonts with optional filtering #
PATCH /website/font/{id} Update a font by ID #
DELETE /website/font/{id} Delete a font by ID #
GET /website/font/{id}/websites Get all websites associated with a specific font #
POST /website/create-website-v2 Create website V2 from location payload #
POST /website/create-website-v3 Create website V3 with booking link #
POST /website/scrape-theme Queue a website-theme scrape (colors + fonts) from reference_website_url #
POST /website/scrape-theme-preview Queue a URL-only theme scrape (colors + fonts); no DB writes — poll for the… #
GET /website/scrape-theme-preview/{jobId} Poll a URL-only theme-preview job for its scraped colors + fonts #
POST /website/scrape-data Scrape business data from booking link #
POST /website/collect-website-data Mode B Phase 1: Collect raw website data for frontend review (no DB writes) #
POST /website/create-from-confirmed-data Mode B Phase 2: Create website from user-confirmed data #
POST /website/sync-services-from-booking Sync services from a booking platform into the database #
GET /website/booking-link-data Get business details from booking link #
POST /website/get-new-website-id Get or create new website ID for location #
POST /website/add-booking-link Add booking link and trigger website creation #
GET /website/onboarding-creation-status Get onboarding website-creation status #
GET /website/generate-website Generate website for a location #
GET /website/generate-subdomains Generate subdomain suggestions #
GET /website/platforms Get available booking platforms #
GET /website/get-website-id/{locationEntityId} Get website ID by location entity ID #
GET /website/{websiteId} Get website data by ID #
GET /website/{websiteId}/v2 Get website data V2 with sections #
GET /website/{websiteId}/v2/pages/{pageId}/sections Hydrate a single page's sections (metadata-mode companion) #
POST /website/{websiteId}/check-website-live-on-gbp Check if website is live on GBP #
POST /website/{websiteId}/editor/publish Batch publish editor changes for website sections #
POST /website/{websiteId}/ctas Create a call-to-action for website #
GET /website/{websiteId}/ctas Get CTAs filtered by parent entity #
GET /website/{websiteId}/ctas/{ctaId} Get a CTA by ID #
PUT /website/{websiteId}/ctas/{ctaId} Update a CTA by ID #
DELETE /website/{websiteId}/ctas/{ctaId} Delete a CTA by ID #
GET /website/{websiteId}/working-hours Get website working hours #
POST /website/{websiteId}/working-hours Update website working hours #
GET /website/{websiteId}/reviews Get website reviews #
GET /website/{parentId}/{parentType}/attributes Get website attributes #
PATCH /website/{parentId}/{parentType}/attributes/{attributeId} Update website attribute #
DELETE /website/{parentId}/{parentType}/attributes/{attributeId} Delete website attribute #
GET /website/{websiteId}/themes Get all themes for a website #
POST /website/{websiteId}/themes Create a theme for website #
GET /website/{websiteId}/themes/v2 Get website themes V2 #
GET /website/{websiteId}/themes/{themeId} Delete a theme for a website #
PATCH /website/{websiteId}/themes/{themeId} Update a website theme #
DELETE /website/{websiteId}/themes/{themeId} Delete a website theme #
DELETE /website/themes/{themeId} Delete a global theme by ID #
GET /website/themes/{themeId} Get theme by ID #
GET /website/{websiteId}/pages Get website pages mapping #
POST /website/{websiteId}/pages Create a website page #
GET /website/{websiteId}/website-pages List website_pages rows for a website (per-row name/path/metadata) #
GET /website/{websiteId}/pages/{pageId} Get website page by page ID #
PATCH /website/{websiteId}/pages/{pageId} Update a website page #
DELETE /website/{websiteId}/pages/{id} Delete a website page #
GET /website/{websiteId}/pages/{pageId}/attributes Get page attributes #
POST /website/{websiteId}/pages/{pageId}/attributes Create a page attribute #
PATCH /website/{websiteId}/pages/{pageId}/attributes/{attributeId} Update a page attribute #
DELETE /website/{websiteId}/pages/{pageId}/attributes/{attributeId} Delete a page attribute #
GET /website/{templateId}/template-sections Get template sections #
GET /website/{websiteId}/pages/{pageId}/sections Get page sections #
POST /website/{websiteId}/pages/{pageId}/sections Create a page section #
PATCH /website/{websiteId}/pages/{pageId}/sections/reorder Reorder page sections #
PATCH /website/{websiteId}/pages/{pageId}/sections/{sectionId} Update a page section #
DELETE /website/{websiteId}/pages/{pageId}/sections/{sectionId} Delete a page section #
GET /website/{websiteId}/pages/{pageId}/sections/{sectionId}/attributes Get section attributes #
POST /website/{websiteId}/pages/{pageId}/sections/{sectionId}/attributes Create a section attribute #
DELETE /website/{websiteId}/pages/{pageId}/sections/{sectionId}/attributes/{attributeId} Delete a section attribute #
GET /website/{websiteId}/pages/{pageId}/sections/{sectionId}/contents Get section contents #
POST /website/{websiteId}/pages/{pageId}/sections/{sectionId}/contents Create section content #
GET /website/{websiteId}/pages/{pageId}/sections/{sectionId}/contents/{contentId} Get section content by ID #
PATCH /website/{websiteId}/pages/{pageId}/sections/{sectionId}/contents/{contentId} Update section content #
DELETE /website/{websiteId}/pages/{pageId}/sections/{sectionId}/contents/{contentId} Delete section content #
GET /website/{websiteId}/pages/{pageId}/sections/{sectionId}/contents/{contentId}/attributes Get content attributes #
POST /website/{websiteId}/pages/{pageId}/sections/{sectionId}/contents/{contentId}/attributes Create content attribute #
PATCH /website/{websiteId}/pages/{pageId}/sections/{sectionId}/contents/{contentId}/attributes/{attributeId} Update content attribute #
DELETE /website/{websiteId}/pages/{pageId}/sections/{sectionId}/contents/{contentId}/attributes/{attributeId} Delete content attribute #
GET /website/{websiteId}/pages/{pageId}/sections/{sectionId}/contents/{contentId}/media Get content media #
POST /website/{websiteId}/pages/{pageId}/sections/{sectionId}/contents/{contentId}/media Create content media #
PATCH /website/{websiteId}/pages/{pageId}/sections/{sectionId}/contents/{contentId}/media/{mediaId} Update content media #
DELETE /website/{websiteId}/pages/{pageId}/sections/{sectionId}/contents/{contentId}/media/{mediaId} Delete content media #
POST /website/themes Upload themes #
POST /website/themes/v2 Upload themes V2 without template-theme link #
GET /website/themes/list Get paginated list of themes with optional filtering #
GET /website/templates Get templates, optionally filtered by website ID #
GET /website/section-media Get section media data #
GET /website/category-media Get category media data #
GET /website/single-section-media Get single section media #
POST /website/replace-media-in-section Replace media in section #
POST /website/save-theme-template Save selected theme and template #
POST /website/{websiteId}/themes/generate-palette Generate AI color palettes from a prompt #
GET /website/{websiteId}/ai-colors List a website's AI-generated color palettes #
DELETE /website/{websiteId}/ai-colors/{id} Delete an AI-generated color palette #
POST /website/{websiteId}/ai-colors/{id}/persist Persist a stored AI palette as a theme (returns themeId) #
POST /website/{websiteId}/ai-colors/{id}/apply Apply a stored AI palette to the website and publish #
GET /website/{websiteId}/theme-template Get theme and template for website #
POST /website/reorder-media-in-section Reorder media in section #
POST /website/update-website-status Update website status #
GET /website/get-website-status Get website status and preferences #
GET /website/subdomain Get website subdomain #
PUT /website/subdomain Update website subdomain (preserves current domain) #
GET /website/subdomain-validate Validate subdomain availability #
PUT /website/domain Update website domain (preserves current subdomain) #
PATCH /website/{websiteId}/pipeline Update website pipeline version #
GET /website/get-system-category Get system category by name #
GET /website/default-category-images Get default images for a category #
POST /website/add-user-preferences Add user preferences #
GET /website/get-ip-details Get IP details from request #
POST /website/create-website-from-location Create website from location data #
GET /website/{websiteId}/location Get location for website #
PUT /website/{websiteId}/location Update website location details #
GET /website/{websiteId}/location/canonical Get canonical website location NAP and contact data #
GET /website/list Get paginated list of websites with optional filtering #
GET /website/get-websites/{websiteId} Get website by ID #
PATCH /website/{websiteId}/{sectionId}/section Update section #
GET /website/chrone-services Get chrone services for a location #
GET /website/gallery-media Get website gallery media for a location #
POST /website/set-external-domain/{externalDomain}/{subDomain} Set external domain for website #
DELETE /website/kill/{websiteName} Delete website by name #
GET /website/respawn/{websiteName} Respawn website by name #
POST /website/{websiteId}/build Build website #
POST /website/build/all Build all published websites #
PATCH /website/{websiteId}/build-status/{buildStatus} Update website build status #
GET /website/{websiteId}/page/{pageId}/metadata Get page metadata #
DELETE /website/{websiteId}/page/{pageId}/metadata Delete page metadata #
PATCH /website/{websiteId}/page/{pageId}/metadata Update page metadata #
PATCH /website/{websiteId}/schema-markup Update schema markup #
DELETE /website/{websiteId}/schema-markup Delete schema markup #
GET /website/{websiteId}/schema-markup Get schema markup #
POST /website/{websiteId}/analytics Create website analytics tracking codes in bulk #
PATCH /website/{websiteId}/analytics Update website analytics tracking codes in bulk #
DELETE /website/{websiteId}/analytics Delete website analytics tracking code #
GET /website/{websiteId}/analytics Get website analytics tracking codes #
GET /website/book-now-clicks Get book now clicks breakdown by page type #
GET /website/website-funnel Get website funnel data with conversion rates #
GET /website/website-mixpanel-funnel Get Mixpanel-only website funnel data (visitors + book-now clicks) #
GET /website/page-views-trend Get website page views trend over time #
GET /website/location-details Get lightweight location and website details #
GET /website/top-pages Get top pages by page views for a website #
GET /website/traffic-sources Get traffic sources breakdown for a website #
POST /website/{websiteId}/description/generate Generate AI copy (title or description) for a website section #
POST /website/template-theme Create a template-theme mapping #
GET /website/template-theme List template-theme mappings with optional filters + pagination #
GET /website/template-theme/{id} Get a single template-theme mapping by id #
PATCH /website/template-theme/{id} Update a template-theme mapping #
DELETE /website/template-theme/{id} Delete a template-theme mapping #
GET /website/generation-status/{generationId} Get the status of a website generation run #
POST /website/generation-status/{generationId} Update website generation status (called by prism lambda) #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/zoca-website-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

zoca-website-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Zoca Platform Website API
  description: 'The Zoca platform API behind the Zoca web app and mobile apps: scheduling, website generation, Google Business Profile, discovery/local SEO, social media, booking enquiries, offers, clients, staff, billing and the Zoca "brain" agent layer.'
  version: 3.20.10
  contact: {}
  x-apievangelist-note: Harvested verbatim from https://api.zoca.ai/swagger.json. The provider ships the default NestJS Swagger metadata (title "API Documentation", empty servers[]); title/description/servers were set by API Evangelist for identification and the unmodified original is preserved at openapi/_original/zoca-platform-swagger.json. Every path, operation, summary, parameter and response is exactly as published.
servers:
- url: https://api.zoca.ai
  description: Production
tags:


# --- truncated at 32 KB (63 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/zoca/refs/heads/main/openapi/zoca-website-api-openapi.yml