plugin-support
POST /v1/plugin-support/showcase
Ask for a site to be shown on a product website's showcase page.
Authentication
This endpoint is public. It takes no credential and no organisation — it is what our own marketing site and AI answer engines read.
This endpoint takes no organisation id. Your key already identifies the organisation it belongs to, and the response is scoped to it.
Try it
Replace anything in angle brackets with your own values, and the key placeholder with a key from your dashboard.
curl -X POST https://api.zinndigital.com/v1/plugin-support/showcase \
-H "Content-Type: application/json" \
-d '{ "product": <PluginSupportProduct>, "site_url": <string>, "site_name": <string>, "description": <string>, "email": <string>, "consent": <boolean> }'Signed in? The API console in your dashboard fills in your real organisation id and your own key, and runs the request against the live API so you can see the actual response. Open this endpoint in the API console
Details
The "Get featured" form on pagebuildersandwich.com/showcase/ (owner, 2026-10-05: "Yes, opt-in and reviewed"). Anonymous, from the visitor's browser. consent must be literally true: the visitor ticked the box agreeing that the site, its name, the description and a screenshot may be shown publicly. Files a showcase ticket in the plugin-support inbox (the sender gets the standard confirmation e-mail in their language) and a pending entry. The filing (the ticket's language detection and translation take seconds) runs on the platform worker (ShowcaseIntakeWorkflow), so the 201 answers at once with the ticket handle the worker files under; when Temporal cannot take it the request files it itself. ⛔ Nothing is public until a member of staff approves it (adminApproveShowcaseEntry) and its screenshot has been taken. Spam controls, the same as the product websites' support form: a fail-closed per-IP budget (5/hour) charged before the body is parsed, the website honeypot (202, nothing stored), then the per-e-mail ticket budget (5/hour). CORS: the product-website origins listed on createPluginSupportTicket.
Request body
| Name | Type | Required | What it is |
|---|---|---|---|
product | PluginSupportProduct | Yes | A product plugin support is offered for. Adding one is a registry entry in engine/pluginsupport/products.py, not a new endpoint. |
site_url | string | Yes | The site's address (https:// is assumed when missing). Stored without query or fragment. |
site_name | string | Yes | — |
description | string | Yes | A sentence or two about the site. |
email | string | Yes | — |
name | string | No | The sender's own name. |
locale | string | No | The page language (ar, pt-BR). |
consent | boolean | Yes | Must be literally true — the visitor agreed to the site being shown publicly. |
website | string | No | The honeypot. Leave empty; a filled one answers 202 and stores nothing. |
Response
| Name | Type | Required | What it is |
|---|---|---|---|
reference | string | Yes | The ticket handle (ZT-XXXXXX). |
status | ShowcaseStatus | Yes | pending waits for staff; approved is public once its screenshot is ready; removed was declined or taken down. |
Errors this endpoint can return
422 · 429