Get Form By Spot

Returns the dynamic form the owner assigned to a page spot, such as the contact page. The response is the form definition only, never submissions or counters.

GET/v1/forms/:spot

Authentication

Public key?key=pk_…

Public key in the `key` query parameter. No OAuth, no secret.

Edge cache: 60 s + stale-while-revalidate 300 s

Path Parameters

spotenum
required

The page spot of the form.

contactrequest-showingnew-developmenthome-valuationnewslettercareers

Query Parameters

keystring
required

The site's public key (pk_…). It selects the account. Safe to ship to the browser.

localeenum
optional

Language of the form texts: title, intro, field labels, placeholders, option labels and the submit button. `en`, an unknown code or no value returns the original English texts.

esbrptitrufrsrdecnzhplrotrar

Responses

200Success
application/json
formobject | null

The form assigned to the spot, or `null` when the owner assigned none.

Errors

404The spot is not one of the allowed values. The body is `{ "message": "Unknown form spot" }`.
401Missing or invalid public key.
403The account has no active subscription. The body also carries `code: "TENANT_INACTIVE"`.
500Unexpected server error.

Notes

  • A valid spot with no assigned form answers 200 with `{ "form": null }`. Show a fallback message.
  • Render `schema.rows[].fields[]` and send the values to Submit Form, using each field's `id` as the key of `formData`.
  • With `locale`, field ids, option values and CRM mappings never change, so a translated form submits the same data.
  • Translations are generated on the first read. Texts not ready within 2 seconds arrive on a later request.
Request
curl --request GET \
--url "https://api.pandaidx.com/v1/forms/contact?key={{public_key}}"
Response200 OK
{
"form": {
"_id": "6a1f3c9d2b7e4a0012ab34cd",
"name": "Contact Us",
"description": null,
"schema": {
"rows": [
{
"id": "row_1700000000000",
"columns": 1,
"fields": [
{
"id": "field_1700000000001",
"type": "name",
"label": "Full Name",
"required": true,
"crmFieldMapping": "name",
"placeholder": "Enter your name"
}
]
},
{
"id": "row_1700000000002",
"columns": 1,
"fields": [
{
"id": "field_1700000000003",
"type": "email",
"label": "Email Address",
"required": true,
"crmFieldMapping": "email",
"placeholder": "Enter your email"
}
]
}
],
"submitButton": {
"text": "Send Message",
"position": "left"
}
},
"assignedSpot": "contact"
}
}