What you receive
The exact shape of every response we deliver — the webhook payload, the data object, request headers, and the API read format.
Before you wire formbuild.io into your backend, here's exactly what reaches
your server — by webhook, and by API. Every field name below is the field's
name attribute, so a form with email and message fields produces
data.email and data.message.
The webhook payload
When someone submits your form, we send an HTTP POST to each configured
webhook URL with this JSON body:
| Field | What it is |
|---|---|
| event | Always form.submission today. Switch on it to stay forward-compatible. |
| formName | The name of the form the response came from. |
| submittedAt | ISO-8601 timestamp of the submission. |
| data | The submitted values, keyed by field name. Values are always strings. |
Request headers
We send Content-Type: application/json and User-Agent: formbuild.io/1.0.
When a signing secret is configured, we also send an
X-Formbuild-Signature header so you can confirm the request is genuinely
from us. See Webhook signing and delivery for the
header table and a copy-paste verification example — no need to duplicate it
here.
A schema for your form
From your form's Installation tab, the What you'll receive panel shows
this same sample payload built from your live fields, plus a downloadable
JSON Schema you can pipe straight into your own validation or type
generation. Required fields, email formats, and select options are all
reflected in the schema.
Reading responses over the API
Prefer to pull responses instead of receiving them? Authenticate with an API
key (Authorization: Bearer formbuild_live_...) and call:
The response is paginated:
Use limit (max 100) and offset query parameters to page through results.
See API and submissions for the full endpoint
reference.