Skip to main content

API update: Submit forms using field aliases

You can now submit forms to the Formaloo API using field aliases (IDs) instead of automatically generated field slugs – making form submissions via API much simpler and more readable.

Updated today

Previously, submitting a form through the API required referencing each field by its auto-generated slug. This meant you had to first retrieve your form’s structure, identify the slugs for each field, and then map your data accordingly.

Old example (using field slugs):

{

"rzkxaWgNY7": "some short text",

"EqQAWBKdVA": 50,

"HbyBQV04yU": "no",

"Lb2J7AksMg": "choice_x8dNpnG1pV",

"6Qr5btT9ad": "[email protected]"

}

With this update, you can now use field aliases directly in your JSON body. This makes your requests easier to read, maintain, and debug.

New example (using field aliases):

{

"country_of_destination": "Canada",

"case_type": "Immigration",

"full_name": "Sarah Johnson",

"job_title": "Software Engineer",

"email": "[email protected]",

"nationality": "United States",

"accepted_terms": "yes",

"submit_by_alias": true

}

ℹ️️ You can still submit forms using field slugs if preferred – both methods remain supported for maximum flexibility.


How to use field aliases in API submissions

To submit forms using aliases instead of slugs:

  1. Assign an alias to each field in your form (aliases must be unique):

  2. Add "submit_by_alias": true to your request body.

  3. Use field aliases as the keys for each field’s value.

  4. Avoid mixing aliases and slugs in the same request – choose one method per call.


Supported endpoints

This improvement works across all API versions (v1.0, v2.0, and v3.0) for:

  • Form submission endpoints: /form-displays/{slug}/{slug}/submit/

  • Authenticated row creation endpoints: /forms/{slug}/rows/

The slug-based method remains fully supported for backward compatibility.


ℹ️️ Learn more

Refer to the Formaloo API documentation for full implementation details, authentication requirements, and response examples.

Did this answer your question?