# info.description
Admin JSON API for the site2app.live gateway: Bearer `ADMIN_SECRET` (all sites), or Bearer per-site console token plus `X-Wix-Gateway-Public-Url` (origin). MCP per site is at /s/{siteId}/mcp (not OpenAPI).

# paths./api/widget-templates.get.summary
Worker-level MCP widget catalog (HTML in Worker; sites bind backendUrl in D1)

# paths./api/demo-categories.get.summary
List business category demo packs (public)

# paths./api/wix/install.post.summary
Register Wix install (installed_unprovisioned); service HMAC auth

# paths./api/wix/provision.post.summary
Provision gateway site after category pick; service HMAC auth

# paths./api/wix/billing/webhook.post.summary
Wix App Market billing webhooks (Paid Plan Purchased / Changed / Auto Renewal Cancelled)

# paths./api/wp/install.post.summary
Register WordPress plugin install (activation handshake); returns one-time installSecret

# paths./api/wp/provision.post.summary
Provision gateway site after category pick; per-install HMAC + installSecret

# paths./api/wp/provision.post.responses.401.description
Invalid install credentials or signature

# paths./api/wp/handshake.post.summary
Mint console session for wp-admin iframe embed

# paths./api/billing/stripe/checkout.post.summary
Create Stripe Checkout session (WordPress / external billing)

# paths./api/billing/stripe/webhook.post.summary
Stripe billing webhook for WordPress plans

# paths./api/sites/{siteId}/demo-pack.post.summary
Apply or clear category demo pack on a site

# paths./api/sites.post.requestBody.content.application/json.schema.properties.mcpUrl.description
Optional override; default is {origin}/_api/mcp from publicUrl

# paths./api/sites/{siteId}/chatgpt-packaging.get.summary
Draft ChatGPT / OpenAI Apps packaging (MCP URL, CSP, per-site widget URI)

# paths./api/sites/{siteId}/chatgpt-packaging.get.responses.200.description
Draft bundle: app/mcp from DB + gateway MCP URLs, CSP, widgets, skillWorkflow, liveGatewayMcpInventory (tools/list via gateway MCP)

# paths./api/sites/{siteId}/probe-backend-url.post.summary
GET probe a tenant HTTPS JSON backend (same hostname as site public URL)

# paths./api/sites/{siteId}/probe-backend-url.post.requestBody.content.application/json.schema.properties.url.description
HTTPS GET target; hostname must match site public_url

# paths./api/sites/{siteId}/probe-backend-url.post.responses.200.description
Probe result (status, JSON body or raw preview)

# paths./api/sites/{siteId}/scan-public-url.post.summary
Fetch HTTPS page on site's hostname and extract og/title metadata for ChatGPT listing fields

# paths./api/sites/{siteId}/scan-public-url.post.requestBody.content.application/json.schema.properties.url.description
Optional https URL; must match site public_url hostname (default: public origin)

# paths./api/sites/{siteId}/scan-public-url.post.responses.200.description
Raw scan + suggestedMetadata merged with existing chatgpt_app_metadata shape

# paths./api/sites/{siteId}/chatgpt-define-app.post.summary
LLM maps Define-app prose + site context to MCP tool usage (requires OPENAI_API_KEY)

# paths./api/sites/{siteId}/chatgpt-define-app.post.requestBody.content.application/json.schema.properties.prompt.description
Operator prose; if omitted uses define_app_prompt from the site row

# paths./api/sites/{siteId}/regenerate-mcp.post.summary
Replace site gateway MCP URL with a new siteId and rebind related records

# paths./api/sites/{siteId}/regenerate-mcp.post.responses.200.description
Returns old/new ids and the replacement gateway MCP URL

# paths./api/admin/tenants.get.summary
Global admin: tenant sharing oversight (tokens, sync health, repo metadata)

# paths./api/admin/tenants/{siteId}.patch.summary
Global admin: update tenant_sharing metadata for a site

# paths./api/sites/{siteId}/console-token.post.summary
Global admin: mint or rotate site-scoped console token (plaintext returned once)

# paths./api/sites/{siteId}/console-token.delete.summary
Global admin: revoke site-scoped console token

# paths./api/sites/{siteId}/tenant-sync-status.post.summary
Site-scoped: report tenant CI sync result (success | failed | drift)

# paths./api/sites/{siteId}/tenant-rollback.post.summary
Global admin: restore latest tenant_sync_snapshots row for this site

# paths./.well-known/tenant-artefact-schemas/v1/{name}.json.get.summary
Published JSON Schema for tenant artefact files (offline validation in tenant repos)

# paths./api/sites/{siteId}/widget-templates.get.summary
Effective widget template picker for one site (default catalog when not customized; per-site allowlist + overrides otherwise)

# paths./api/sites/{siteId}/widget-templates.put.summary
Replace per-site widget template customization. Pass `templates: []` (or DELETE) to clear all overrides and revert to the default catalog.

# paths./api/sites/{siteId}/widget-templates.delete.summary
Clear all per-site widget template customization (revert to default catalog)

# paths./api/sites/{siteId}/widget-templates.delete.responses.200.description
Cleared; returns default resolved picker

# paths./api/sites/{siteId}/gateway-http-tools/{toolRowId}/preview-widge.get.summary
Preview current widget HTML for one gateway HTTP tool

# paths./api/sites/{siteId}/gateway-http-tools/{toolRowId}/apply-widget-.post.summary
Apply LLM edits to provided widget HTML (does not auto-save tools row)

# components.securitySchemes.adminBearer.description
ADMIN_SECRET on the Worker, or a site’s console token (SHA-256 stored in D1); with a site token, send header X-Wix-Gateway-Public-Url with the site origin.

# components.schemas.Site.properties.chatgpt_minimal_tools.description
1 = ChatGPT minimal upstream tools profile

# components.schemas.Site.properties.quiz_extension_enabled.description
1 = synthesized diagram quiz tool + interactive widget on for this site (per-site via quiz_tool_config_json; no host gate).

# components.schemas.Site.properties.quiz_widget_redirect_domains.description
HTTPS origins for ChatGPT widget redirects; empty list stored as null → gateway defaults

# components.schemas.Site.properties.chatgpt_app_metadata.description
Draft ChatGPT listing fields (title, displayName, subtitle, shortDescription, logoUrl, scan audit)

# components.schemas.Site.properties.define_app_prompt.description
Operator prose for LLM tool-intent mapping (POST /chatgpt-define-app)

# components.schemas.Site.properties.openai_model.description
Optional OpenAI Chat Completions model id for this site (widget generate + define-app); overrides Worker OPENAI_MODEL

# components.schemas.Site.properties.openai_apps_challenge_token.description
OpenAI Apps domain verification token(s) for this site; merged into GET /.well-known/openai-apps-challenge (one line per distinct token across sites).

# components.schemas.Site.properties.package.description
basic | starter | growth | scale (effective)