---
title: "Create Form"
method: POST
path: "/v3.0/forms/"
tags: ["forms"]
---

# Create Form

`POST /v3.0/forms/`

## Request

- Base URL: `https://api.formaloo.me`
- URL: `https://api.formaloo.me/v3.0/forms/`
- Auth: none declared. Required headers: `x-api-key`

Creates a dynamic form for the current user.

## Headers

- `x-api-key` string, required
- `x-workspace` string

## Request body

- CreateFormRequest
  - `submit_start_time` string, date-time, nullable
  - `submit_end_time` string, date-time, nullable
  - `board` string
  - `category` string, nullable: category's slug.
  - `admin_email_notif_template` string, nullable: email template's slug.
  - `user_email_notif_template` string, nullable: email template's slug.
  - `rows_pdf_template` string, nullable: pdf template's slug.
  - `admin_pdf_template` string, nullable: pdf template's slug.
  - `user_pdf_template` string, nullable: pdf template's slug.
  - `tags` string[]: tags's slug.
  - `logic` object
  - `primary_field` string
  - `address` string, nullable: A unique string to identify form for users. It's auto-generated if not set by user.
  - `title` string, nullable: the form's display name.
  - `show_title` boolean: title visibility on form.
  - `description` string, nullable: a description about form.
  - `success_message` string, nullable: a messages to show if the form is successfully submitted.
  - `error_message` string, nullable: a messages to show if the form is not successfully submitted.
  - `button_text` string, nullable: a text to show on the form's submit button.
  - `localized_content` object, nullable: localized content
  - `save_ai_response` boolean: whether to save the AI response on the row or not.
  - `max_submit_count` integer, nullable: the maximum times people can submit this form.
  - `needs_login` boolean: whether the users need to login to submit the form.
  - `max_submit_per_ip_per_day` integer, nullable
  - `time_limit` string, time, nullable: time limit to fill this form
  - `shuffle_fields` boolean: shows wether to shuffle the ordering of the form field on show.
  - `form_redirects_after_submit` string, nullable: Either null or the url of destination.
  - `include_data_on_redirect` boolean: if set true, the submitted data along with aliases will be included in the redirect url.
  - `has_recaptcha` boolean: defines if show a recaptcha on form or not
  - `send_emails_to` string, email, nullable: an email address to send form data copy on each submit.
  - `submit_email_notif` boolean: receive email notifications on each submit for the form.
  - `row_update_email_notif` boolean: receive email notifications when a row is updated.
  - `send_user_confirm` boolean: whether to send a copy of data to user.
  - `generate_pdf_for_admin` boolean: whether to generate a pdf after each submit.
  - `generate_pdf_for_user` boolean: whether to generate a pdf after each submit.
  - `slack_accesses` object, nullable: List of slack access slugs.
  - `form_type` 'simple' | 'multi_step' | 'nps'
  - `thumbnail` string, binary, nullable: an optional thumbnail for the form
  - `logo` string, binary, nullable: the logo to be shown on the top of form
  - `logo_slug` string, nullable: the logo's slug.
  - `logo_url` string, nullable: the logo's url.
  - `logo_position` 'left' | 'center' | 'right'
  - `text_color` string, nullable: the form's text color.
  - `button_color` string, nullable: the form's button color.
  - `theme_color` string, nullable: the form's theme color.
  - `theme_name` string, nullable: the form's theme name.
  - `field_color` string, nullable: the form's field color.
  - `background_color` string, nullable: the form's background color.
  - `border_color` string, nullable: the form's border color.
  - `submit_text_color` string, nullable: the form's submit text color.
  - `background_image` string, binary, nullable: background image for this form.
  - `background_image_slug` string, nullable: the background image's slug.
  - `background_image_url` string, nullable: the background image's url.
  - `banner_slug` string, nullable: the banner's slug.
  - `banner_url` string, nullable: the banner's url.
  - `meta_image_slug` string, nullable: meta image's slug.
  - `meta_image_url` string, nullable: meta image's url.
  - `favicon_slug` string, nullable: favicon's slug.
  - `favicon_url` string, nullable: favicon's url.
  - `theme_config` object: the form's additional theme configuration.
  - `custom_js` string, nullable
  - `custom_css` string, nullable
  - `version` string: version of form
  - `config` string, nullable: the form's additional configuration.
  - `show_calculations_score_result` boolean: to show calculations result after user submits a form
  - `show_submit_tracking_code` boolean: whether to show the tracking code after user has submitted the form.
  - `assign_submit_number` boolean: if set to true, each new row will have an incremental submit number starting from 1.
  - `show_answers` boolean: whether to show the reslts page containing answers and answer sheet after form submit.
  - `form_currency_type` 'dollar' | 'USD' | 'EUR' | 'GBP' | 'AUD' | 'CAD' | 'CHF' | 'NOK' | 'SEK' | 'DKK' | 'MXN' | 'NZD' | 'BRL' | 'JPY' | 'INR' | 'AED' | 'IDR' | 'SGD'
  - `position` integer: forms position in relation to other forms.
  - `public_stats` boolean: if set true, form stats will be publicly shared by a link.
  - `public_rows` boolean: if set true, submitted data will be publicly shared by a link.
  - `address_is_universal` boolean: If set true, form's address should be universally unique, and the forms is accessible on the root domain, otherwise, it's only available on the user's domain and subdomain.
  - `custom_domain` string, nullable: user can set this on the form, if they want to show this form on a custom domain (e.g. https://example.co/).
  - `accept_draft_answers` boolean: users can have draft answers on this form or not.
  - `meta_tags` string, nullable: the form's meta tags, which will be added to all pages related to this form.
  - `ai_mode` boolean
  - `meta_description` string, nullable: Meta description for the form.
  - `auto_translation_enabled` boolean
  - `allow_indexing` boolean
  - `run_field_logics_on_update` boolean: Whether to run field logics on row update or not.
  - `create_type` 'api' | 'excel' | 'google_forms' | 'google_sheets' | 'magic_import' | 'magic_create' | 'recurring_submission'
  - `language` integer, nullable
  - `primary_email` integer, nullable: an email field in the form, to send the submitted data to.

## Response `201`

- CreateForm
  - `submit_start_time` string, date-time, nullable
  - `submit_end_time` string, date-time, nullable
  - `forward_submit_emails_to` object
  - `owner` User
    - `first_name` string
    - `last_name` string
    - `username` string, required: Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.
    - `email` string, email
    - `user_type` string
  - `category` string, nullable: category's slug.
  - `admin_email_notif_template` string, nullable: email template's slug.
  - `user_email_notif_template` string, nullable: email template's slug.
  - `rows_pdf_template` string, nullable: pdf template's slug.
  - `admin_pdf_template` string, nullable: pdf template's slug.
  - `user_pdf_template` string, nullable: pdf template's slug.
  - `tags` string[]: tags's slug.
  - `fields` object
  - `submit_count` integer
  - `visit_count` integer
  - `user_spreadsheet_id` string, nullable: id for the corresponding google sheet of user.
  - `user_spreadsheet_range` string, nullable: range(name of sheet) for the corresponding google sheet of user.
  - `user_spreadsheet_url` string, nullable: url for the corresponding google sheet of user.
  - `sync_gsheet` boolean: whether to sync rows of form with google sheet or not.
  - `export_in_progress` boolean: Shows if there's an excel export task in progress for the form.
  - `last_export_file` string, uri, nullable
  - `last_export_time` string, date-time, nullable: when was last excel export created.
  - `copied_from` string
  - `subdomain` string
  - `owner_custom_domain` string
  - `logic` object
  - `deleted` string, date-time
  - `created_at` string, date-time
  - `updated_at` string, date-time
  - `slug` string
  - `address` string, nullable: A unique string to identify form for users. It's auto-generated if not set by user.
  - `title` string, nullable: the form's display name.
  - `show_title` boolean: title visibility on form.
  - `description` string, nullable: a description about form.
  - `success_message` string, nullable: a messages to show if the form is successfully submitted.
  - `error_message` string, nullable: a messages to show if the form is not successfully submitted.
  - `button_text` string, nullable: a text to show on the form's submit button.
  - `localized_content` object, nullable: localized content
  - `save_ai_response` boolean: whether to save the AI response on the row or not.
  - `max_submit_count` integer, nullable: the maximum times people can submit this form.
  - `needs_login` boolean: whether the users need to login to submit the form.
  - `max_submit_per_ip_per_day` integer, nullable
  - `time_limit` string, time, nullable: time limit to fill this form
  - `shuffle_fields` boolean: shows wether to shuffle the ordering of the form field on show.
  - `form_redirects_after_submit` string, nullable: Either null or the url of destination.
  - `include_data_on_redirect` boolean: if set true, the submitted data along with aliases will be included in the redirect url.
  - `has_recaptcha` boolean: defines if show a recaptcha on form or not
  - `send_emails_to` string, email, nullable: an email address to send form data copy on each submit.
  - `submit_email_notif` boolean: receive email notifications on each submit for the form.
  - `row_update_email_notif` boolean: receive email notifications when a row is updated.
  - `send_user_confirm` boolean: whether to send a copy of data to user.
  - `generate_pdf_for_admin` boolean: whether to generate a pdf after each submit.
  - `generate_pdf_for_user` boolean: whether to generate a pdf after each submit.
  - `slack_accesses` object, nullable: List of slack access slugs.
  - `form_type` 'simple' | 'multi_step' | 'nps'
  - `thumbnail` string, uri, nullable: an optional thumbnail for the form
  - `logo` string, uri, nullable: the logo to be shown on the top of form
  - `logo_slug` string, nullable: the logo's slug.
  - `logo_url` string, nullable: the logo's url.
  - `logo_position` 'left' | 'center' | 'right'
  - `text_color` string, nullable: the form's text color.
  - `button_color` string, nullable: the form's button color.
  - `theme_color` string, nullable: the form's theme color.
  - `theme_name` string, nullable: the form's theme name.
  - `field_color` string, nullable: the form's field color.
  - `background_color` string, nullable: the form's background color.
  - `border_color` string, nullable: the form's border color.
  - `submit_text_color` string, nullable: the form's submit text color.
  - `background_image` string, uri, nullable: background image for this form.
  - `background_image_slug` string, nullable: the background image's slug.
  - `background_image_url` string, nullable: the background image's url.
  - `banner_slug` string, nullable: the banner's slug.
  - `banner_url` string, nullable: the banner's url.
  - `meta_image_slug` string, nullable: meta image's slug.
  - `meta_image_url` string, nullable: meta image's url.
  - `favicon_slug` string, nullable: favicon's slug.
  - `favicon_url` string, nullable: favicon's url.
  - `theme_config` object: the form's additional theme configuration.
  - `custom_js` string, nullable
  - `custom_css` string, nullable
  - `version` string: version of form
  - `config` string, nullable: the form's additional configuration.
  - `show_calculations_score_result` boolean: to show calculations result after user submits a form
  - `show_submit_tracking_code` boolean: whether to show the tracking code after user has submitted the form.
  - `assign_submit_number` boolean: if set to true, each new row will have an incremental submit number starting from 1.
  - `show_answers` boolean: whether to show the reslts page containing answers and answer sheet after form submit.
  - `form_currency_type` 'dollar' | 'USD' | 'EUR' | 'GBP' | 'AUD' | 'CAD' | 'CHF' | 'NOK' | 'SEK' | 'DKK' | 'MXN' | 'NZD' | 'BRL' | 'JPY' | 'INR' | 'AED' | 'IDR' | 'SGD'
  - `position` integer: forms position in relation to other forms.
  - `public_stats` boolean: if set true, form stats will be publicly shared by a link.
  - `public_rows` boolean: if set true, submitted data will be publicly shared by a link.
  - `address_is_universal` boolean: If set true, form's address should be universally unique, and the forms is accessible on the root domain, otherwise, it's only available on the user's domain and subdomain.
  - `custom_domain` string, nullable: user can set this on the form, if they want to show this form on a custom domain (e.g. https://example.co/).
  - `accept_draft_answers` boolean: users can have draft answers on this form or not.
  - `meta_tags` string, nullable: the form's meta tags, which will be added to all pages related to this form.
  - `ai_mode` boolean
  - `meta_description` string, nullable: Meta description for the form.
  - `auto_translation_enabled` boolean
  - `allow_indexing` boolean
  - `run_field_logics_on_update` boolean: Whether to run field logics on row update or not.
  - `spreadsheet_id` string: id for the corresponding google sheet.
  - `spreadsheet_url` string: url for the corresponding google sheet.
  - `is_google_integration_enabled` boolean: whether google sheets integration is enabled for this form.
  - `last_submit_time` string, date-time: when was the last submit on the form?
  - `total_submits_count` integer: shows how many submits the form has.
  - `total_size` integer: shows total size of the form and it's fields' fields in bytes.
  - `create_type` 'api' | 'excel' | 'google_forms' | 'google_sheets' | 'magic_import' | 'magic_create' | 'recurring_submission'
  - `language` integer, nullable
  - `primary_email` integer, nullable: an email field in the form, to send the submitted data to.

---

[API](https://skmtc.dev/formaloo/apis/formaloo-api-documentation.md) · [All operations](https://skmtc.dev/formaloo/apis/formaloo-api-documentation/llms.txt) · [OpenAPI document](https://skmtc.dev/formaloo/apis/formaloo-api-documentation/revisions/47b268aeb656?raw)
