Skip to navigation

Create form

Here’s the general structure for requests to create a form:

  • title: Title to use for the form.
  • type: Type of form.
  • settings: Object that specifies form settings and metadata, including the language to use for the form, whether the form is publicly available, the basis for the progress bar, and search engine indexing settings.
  • cui_settings: Object that specifies conversation settings, including the avatar and the typing emulation settings.
  • theme: Theme to use for the form.
  • workspace: Workspace that contains the form.
  • hidden: Array of Hidden Fields to use in the form.
  • variables: Object that keeps track of total score or price, if you use them in the form.
  • welcome_screens: Array of objects that specify settings and properties for the form’s welcome screen.
  • thankyou_screens: Array of objects that specify settings and properties for the form’s thank you screen.
  • fields: Array of objects that specify the fields to use in the form and their properties, validations, and attachments.
  • logic: Array of Logic Jump objects to use in the form.

Expand the schema below for details about each of these elements. For optional elements, if you don’t send a value and the element doesn’t have a default value, no attribute will be returned.

Any images you want to use in your form must already exist in your Typeform account. If you try to create a form that includes an image that isn’t already in your Typeform account, the response will include an “IMAGE_NOT_FOUND” error. Use the POST https://api.typeform.com/images endpoint to add images to your account.

NOTE: It is not possible to inject third-party content into a typeform using the Create API.

Authentication

AuthorizationBearer
Bearer token authentication. Tokens can be generated from the user account. Privileges needed may vary.
OR
Authorizationstring

A string representation of JWT containing at least two parameters:

ctx.user_id — user’s id

ctx.account_id — user’s default account id ctx.account_uid — user’s default account uid The usage of account_(u)id from JWT is discouraged, user can have access to multiple accounts, every endpoint has to be account aware if it’s needed.

This JWT must be signed by the appropriate authority.

Request

A complete form resource.
titlestringRequired
Title to use for the typeform.
workspaceobjectRequired
URL of the workspace to use for the typeform. If you don't specify a URL for the workspace, Typeform saves the form in the default workspace.
cui_settingsobjectOptional
fieldslist of objectsOptional
hiddenlist of stringsOptional
Array of Hidden Fields to use in the form.
logiclist of objectsOptional
settingsobjectOptional
thankyou_screenslist of objectsOptional
themeobjectOptional
URL of the theme to use for the typeform. If you don't specify a URL for the theme, Typeform applies a new copy of the default theme to the form.
typeenumOptionalDefaults to quiz
Form type for the typeform.
variablesobjectOptional
welcome_screenslist of objectsOptional

Response

Created