Developers
Build on top of zyntForms
Connect your forms to any tool, trigger automations on every response, embed reviews on your site, and query your data via API. Everything you need is here.
WebhooksPro
Get an HTTP POST to your server the moment a response is submitted. Configure the webhook URL per form under Form Settings → Integrations.
Payload
POST https://your-server.com/webhook
Content-Type: application/json
{
"event": "response.created",
"formId": "clxxx...",
"formTitle": "Event Registration",
"submittedAt": "2026-06-20T10:34:00.000Z",
"response": {
"id": "res_abc123",
"answers": [
{ "fieldId": "field_1", "label": "Full name", "value": "Alice Nakato" },
{ "fieldId": "field_2", "label": "Email address", "value": "[email protected]" },
{ "fieldId": "field_3", "label": "Ticket type", "value": "VIP — $75" }
]
}
}Verifying the signature
Each request includes an X-ZyntForms-Signature header — an HMAC-SHA256 digest of the raw body using your webhook secret. Verify it before processing.
// Node.js / Edge example
import { createHmac } from 'crypto'
const sig = req.headers['x-zyntforms-signature']
const expected = createHmac('sha256', process.env.WEBHOOK_SECRET!)
.update(rawBody)
.digest('hex')
if (sig !== expected) {
return new Response('Forbidden', { status: 403 })
}Slack notificationsPro
Paste a Slack Incoming Webhook URL in Form Settings → Integrations → Slack webhook and your team will receive a message for every new response.
Setting up in Slack
- Go to api.slack.com/apps and create a new app (or use an existing one).
- Enable Incoming Webhooks and click Add New Webhook to Workspace.
- Choose the channel where you want response notifications.
- Copy the webhook URL (starts with
https://hooks.slack.com/) and paste it into your form settings.
Embed reviews widget
Display verified customer reviews collected via your zyntForms forms on any external website — your landing page, marketing site, or app.
Drop-in script
<!-- Add to your <head> or before </body> -->
<script
src="https://zyntforms.com/embed/reviews.js"
data-form-id="YOUR_FORM_ID"
data-theme="light"
async
></script>
<!-- Place where you want reviews to appear -->
<div id="zyntforms-reviews"></div>JSON endpoint
If you want to fetch review data yourself and render it your own way:
GET /api/embed/reviews/data?formId=YOUR_FORM_ID
// Response
{
"count": 42,
"averageRating": 4.8,
"reviews": [
{
"id": "res_abc",
"rating": 5,
"text": "Incredibly smooth experience.",
"submittedAt": "2026-06-15T08:12:00.000Z"
}
]
}The endpoint is public and CORS-enabled. Rate-limited to 60 requests per minute per IP.
REST API
Read your forms and responses programmatically with a personal API key — available on every plan, including Free. Create a key under Settings → API.
Live endpoints
GET /api/v1/forms — list your formsGET /api/v1/forms/:formCode — one form’s full detailsDELETE /api/v1/forms/:formCode — soft-delete a formGET /api/v1/forms/:formCode/responses — a form’s responses (?limit=, max 500)GET /api/v1/user/me — your account info
Authenticate every request with Authorization: Bearer zf_live_....
MCP server
Point Claude Desktop, Claude Code, or any other MCP client at zyntForms and read your forms and responses straight from a conversation — no code required. Uses the same API key as the REST API above.
GET/POST https://zyntforms.com/api/mcp
Authorization: Bearer zf_live_...Full setup instructions (a ready-to-paste client config) are under Settings → MCP once you're logged in.
Ready to start building?
Webhooks, Slack, and the embed widget are available today on the Pro plan.