---
title: "Create Form"
method: POST
path: "/open/forms"
tags: ["Forms"]
---

# Create Form

`POST /open/forms`

Create a new form; requires forms-write ability.

## Request body

- Form
  - `id` number — The unique identifier for the form.
  - `slug` string — The URL-friendly slug for the form.
  - `workspace_id` number — ID of the workspace that owns the form.
  - `title` string — The title of the form.
  - `visibility` 'public' | 'draft' | 'closed' — The current visibility state of the form.
  - `tags` string[], nullable
  - `language` string — Two-letter ISO language code.
  - `custom_domain` string, nullable
  - `theme` 'default' | 'simple' | 'notion'
  - `font_family` string, nullable
  - `color` string
  - `dark_mode` 'light' | 'dark' | 'auto'
  - `width` 'centered' | 'full'
  - `size` 'sm' | 'md' | 'lg'
  - `border_radius` 'none' | 'small' | 'full'
  - `layout_rtl` boolean
  - `uppercase_labels` boolean
  - `cover_picture` string, uri, nullable
  - `logo_picture` string, uri, nullable
  - `no_branding` boolean — Whether to hide the OpnForm branding.
  - `transparent_background` boolean — Transparent background when form is embedded.
  - `submit_button_text` string
  - `submitted_text` string
  - `redirect_url` string, uri, nullable
  - `re_fillable` boolean
  - `re_fill_button_text` string
  - `confetti_on_submission` boolean
  - `show_progress_bar` boolean
  - `closes_at` string, date-time, nullable
  - `closed_text` string, nullable
  - `max_submissions_count` integer, nullable
  - `max_submissions_reached_text` string, nullable
  - `auto_save` boolean
  - `auto_focus` boolean
  - `enable_partial_submissions` boolean
  - `editable_submissions` boolean
  - `editable_submissions_button_text` string
  - `password` string, nullable
  - `use_captcha` boolean
  - `captcha_provider` 'recaptcha' | 'hcaptcha'
  - `can_be_indexed` boolean
  - `seo_meta` object, nullable
  - `custom_code` string, nullable
  - `database_fields_update` unknown[], nullable
    - unknown
  - `properties` FormProperty[] — An array of field and layout blocks that make up the form.
    - `id` string, uuid — A unique identifier for the block.
    - `type` string — The type of block.
    - `name` string — The label or name of the field.
    - `help` string — Help text displayed with the field.
    - `hidden` boolean — Whether the field is hidden from view.
    - `required` boolean — Whether the field is required.
    - `placeholder` string — Placeholder text for the input.
    - `width` 'full' | '1/2' | '1/3' | '2/3' | '1/4' | '3/4' — The width of the block in the form layout.

## Response `201`

Form created

- Form
  - `id` number — The unique identifier for the form.
  - `slug` string — The URL-friendly slug for the form.
  - `workspace_id` number — ID of the workspace that owns the form.
  - `title` string — The title of the form.
  - `visibility` 'public' | 'draft' | 'closed' — The current visibility state of the form.
  - `tags` string[], nullable
  - `language` string — Two-letter ISO language code.
  - `custom_domain` string, nullable
  - `theme` 'default' | 'simple' | 'notion'
  - `font_family` string, nullable
  - `color` string
  - `dark_mode` 'light' | 'dark' | 'auto'
  - `width` 'centered' | 'full'
  - `size` 'sm' | 'md' | 'lg'
  - `border_radius` 'none' | 'small' | 'full'
  - `layout_rtl` boolean
  - `uppercase_labels` boolean
  - `cover_picture` string, uri, nullable
  - `logo_picture` string, uri, nullable
  - `no_branding` boolean — Whether to hide the OpnForm branding.
  - `transparent_background` boolean — Transparent background when form is embedded.
  - `submit_button_text` string
  - `submitted_text` string
  - `redirect_url` string, uri, nullable
  - `re_fillable` boolean
  - `re_fill_button_text` string
  - `confetti_on_submission` boolean
  - `show_progress_bar` boolean
  - `closes_at` string, date-time, nullable
  - `closed_text` string, nullable
  - `max_submissions_count` integer, nullable
  - `max_submissions_reached_text` string, nullable
  - `auto_save` boolean
  - `auto_focus` boolean
  - `enable_partial_submissions` boolean
  - `editable_submissions` boolean
  - `editable_submissions_button_text` string
  - `password` string, nullable
  - `use_captcha` boolean
  - `captcha_provider` 'recaptcha' | 'hcaptcha'
  - `can_be_indexed` boolean
  - `seo_meta` object, nullable
  - `custom_code` string, nullable
  - `database_fields_update` unknown[], nullable
    - unknown
  - `properties` FormProperty[] — An array of field and layout blocks that make up the form.
    - `id` string, uuid — A unique identifier for the block.
    - `type` string — The type of block.
    - `name` string — The label or name of the field.
    - `help` string — Help text displayed with the field.
    - `hidden` boolean — Whether the field is hidden from view.
    - `required` boolean — Whether the field is required.
    - `placeholder` string — Placeholder text for the input.
    - `width` 'full' | '1/2' | '1/3' | '2/3' | '1/4' | '3/4' — The width of the block in the form layout.

## Other responses

- `403` — Forbidden – token lacks forms-write ability

---

[API](https://skmtc.dev/opnform/apis/opnform-api.md) · [All operations](https://skmtc.dev/opnform/apis/opnform-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/opnform/opnform-api/revisions/271b61a0082b/schema)
