curl --request POST \
--url 'https://management.scanova.io/forms/' \
--header 'Authorization: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"name": "Booth Signup",
"data": {
"fields": [
{ "type": "text", "label": "Full name", "required": true },
{ "type": "email", "label": "Email", "required": true }
]
}
}'
{
"id": 376,
"form_id": "F8a9b0c1d2e3f4g5h",
"name": "Booth Signup",
"created_by": "Docs",
"created": "2026-08-16T20:46:12.554000+05:30",
"form_url": "https://new.scnv.io/form/F8a9b0c1d2e3f4g5h",
"is_active": true,
"usage_count": 0,
"linked_qrs": [],
"entries_count": 0,
"conversion": null,
"modified": "2026-08-16T20:46:12.554000+05:30",
"data": {
"fields": [
{ "type": "text", "label": "Full name", "required": true },
{ "type": "email", "label": "Email", "required": true }
]
},
"theme_id": null,
"theme_config": {},
"theme_overrides": null
}
Management API — Leads & Forms
Create a form
POST /forms/
POST
/
forms
/
curl --request POST \
--url 'https://management.scanova.io/forms/' \
--header 'Authorization: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"name": "Booth Signup",
"data": {
"fields": [
{ "type": "text", "label": "Full name", "required": true },
{ "type": "email", "label": "Email", "required": true }
]
}
}'
{
"id": 376,
"form_id": "F8a9b0c1d2e3f4g5h",
"name": "Booth Signup",
"created_by": "Docs",
"created": "2026-08-16T20:46:12.554000+05:30",
"form_url": "https://new.scnv.io/form/F8a9b0c1d2e3f4g5h",
"is_active": true,
"usage_count": 0,
"linked_qrs": [],
"entries_count": 0,
"conversion": null,
"modified": "2026-08-16T20:46:12.554000+05:30",
"data": {
"fields": [
{ "type": "text", "label": "Full name", "required": true },
{ "type": "email", "label": "Email", "required": true }
]
},
"theme_id": null,
"theme_config": {},
"theme_overrides": null
}
Forms are Scanova’s current lead-capture and data-collection builder — richer than the legacy Lead Lists feature, and the recommended way to collect visitor data from a QR scan. List or create them here.
Requires a Management API key with
MANAGEMENT_API (or MANAGEMENT_API_SANDBOX) quota, sent as the raw Authorization header value — see the Management API overview.curl --request POST \
--url 'https://management.scanova.io/forms/' \
--header 'Authorization: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"name": "Booth Signup",
"data": {
"fields": [
{ "type": "text", "label": "Full name", "required": true },
{ "type": "email", "label": "Email", "required": true }
]
}
}'
{
"id": 376,
"form_id": "F8a9b0c1d2e3f4g5h",
"name": "Booth Signup",
"created_by": "Docs",
"created": "2026-08-16T20:46:12.554000+05:30",
"form_url": "https://new.scnv.io/form/F8a9b0c1d2e3f4g5h",
"is_active": true,
"usage_count": 0,
"linked_qrs": [],
"entries_count": 0,
"conversion": null,
"modified": "2026-08-16T20:46:12.554000+05:30",
"data": {
"fields": [
{ "type": "text", "label": "Full name", "required": true },
{ "type": "email", "label": "Email", "required": true }
]
},
"theme_id": null,
"theme_config": {},
"theme_overrides": null
}
string
required
Form name.
object
required
The form’s field schema — validated against Scanova’s form-builder JSON schema. Malformed data returns a 400 under
data.string
A QR code’s
qrid to attach immediately on creation. Only applies to dynamic (dy) QR codes.integer
An active theme’s ID to style the form’s public page. Omit for the platform default.
object
Partial theme token overrides layered on top of
theme_id (or the default theme).Linking to more QR codes after creation, or replacing the link set entirely, is not part of this endpoint’s request body — that’s a separate
qr_ids link-replace action available in the dashboard/internal API but not currently exposed here.Related
- List forms — the other operation on this same endpoint.
- Lead list management — the legacy lead-capture feature Forms supersedes.
- List / create QR codes — find the
qridto pass asqr_idwhen creating a form. - Management API overview — the auth scheme and quota architecture this endpoint is part of.
Authorizations
Send your Management API key as the raw value of the Authorization header — no "Bearer " or "Token " prefix, and no other characters. Example: Authorization: 401f7ac837da42b97f613d789819ff93537bee6a. A header containing more than one space-separated part is rejected outright. Requests also require the request's Host header to be the management API host (e.g. management.scanova.io) — the same key sent to the regular API host will not authenticate.
Response
201
Form created
Was this page helpful?
⌘I