दस्तावेज़ पर जाएँ
API

फ़ॉर्म

इस समूह का हर ऑपरेशन: वह क्या लेता है, क्या लौटाता है और किन त्रुटियों के साथ जवाब दे सकता है।

ऑपरेशन

Sign-up forms that add the people who fill them in to your audiences. A form has a draft document you edit and a published copy visitors see, so design changes go live only when you publish, while settings apply as soon as they are saved. Share a form by its hosted url, embed it with one script tag, or post to its subscribeUrl from your own HTML or code.

With double opt-in on, each person gets a confirmation email from the form's sending address and joins once they confirm or you approve them. Submissions keep every answer, and a person who joins becomes a contact in the workspace.

GET/forms

List forms

स्कोपforms:readपढ़ता है

Every sign-up form in the workspace, newest first, without the document or settings. stats is counted at the moment of the read.

An app a member connected lists only the forms that member made, as the console does for them.

Requires the forms:read scope.

क्वेरी पैरामीटर

limitinteger

Rows per page, 1 to 100.

कम से कम 1अधिकतम 100डिफ़ॉल्ट25
cursorstring

The previous page's nextCursor, passed back as it came. It is opaque: it holds where the last row sat in this list's order, so a row deleted or edited between pages never breaks the walk, and the next page starts at the first row that sorts after it. A value this list did not hand out is a 400 invalid_cursor.

लौटाता है

A page of forms.

त्रुटियाँ

वे त्रुटियाँ जो कोई भी ऑपरेशन लौटा सकता है400401403404422500त्रुटि सूची

इनमें भी उपलब्ध

SDK
forms.list()forms.listAll()forms.iterate()
CLI
openemail forms list
MCP
listForms

POST/forms

Create a form

स्कोपforms:writeडेटा बदलता है

Makes a draft from document, from a starter, or from a one-field email form when neither is sent, and answers with the whole form. Send publish: true to put it live in the same call.

Every audience in settings.audienceIds and in an audience field has to be one the caller can reach in this workspace. settings.senderAddress has to be an address the caller may send as, and a key limited to some addresses may only name ones it holds there and in settings.notifyAddresses. A call that turns on settings.doubleOptIn, names a settings.senderAddress or changes the confirmation email also needs emails:send, because the form then sends mail for you.

Share it with url, post plain HTML forms to subscribeUrl, or embed it with the script /embed/form.js served from the web app's domain.

Requires the forms:write scope.

अनुरोध बॉडी

namestringआवश्यक

What the workspace calls the form, trimmed, 1 to 120 characters. Visitors never see it, and it need not be unique.

1 से 120 वर्ण
descriptionstring

A note for the workspace, at most 500 characters. Visitors never see it.

null हो सकता हैअधिकतम 500 वर्ण
starterstring

Begin from a starter's fields, copy and style. Ignored when document is sent.

इनमें से एक"blank""newsletter""waitlist""event""early-access""contact"
documentobject

Everything a visitor sees: fields in order, the copy around them and the style. Every form has exactly one email field, and every input field has a unique key that answers are posted under.

fieldsobject[]आवश्यक
1 से 50 आइटम
idstringआवश्यक
1 से 64 वर्ण
typestringआवश्यक
इनमें से एक"email""text""textarea""number""phone""url""date""select""radio""checkboxes""checkbox""consent""audiences""hidden""heading""paragraph""divider"
keystringआवश्यक
अधिकतम 40 वर्णपैटर्न^[a-z][a-z0-9_]{0,39}$
labelstringआवश्यक
अधिकतम 300 वर्ण
placeholderstringआवश्यक
null हो सकता हैअधिकतम 200 वर्ण
helpstringआवश्यक
null हो सकता हैअधिकतम 1000 वर्ण
requiredbooleanआवश्यक
defaultValuestringआवश्यक
null हो सकता हैअधिकतम 1000 वर्ण
optionsobject[]आवश्यक
अधिकतम 50 आइटम
idstringआवश्यक
1 से 64 वर्ण
labelstringआवश्यक
1 से 300 वर्ण
valuestringआवश्यक
1 से 1000 वर्ण
mapsTostringआवश्यक
null हो सकता हैइनमें से एक"email""firstName""lastName""name"
widthstringआवश्यक
इनमें से एक"full""half"
minLengthintegerआवश्यक
null हो सकता हैकम से कम 0अधिकतम 5000
maxLengthintegerआवश्यक
null हो सकता हैकम से कम 1अधिकतम 5000
minnumberआवश्यक
null हो सकता हैकम से कम -1000000000000अधिकतम 1000000000000
maxnumberआवश्यक
null हो सकता हैकम से कम -1000000000000अधिकतम 1000000000000
copyobjectआवश्यक
titlestringआवश्यक
अधिकतम 200 वर्ण
descriptionstringआवश्यक
null हो सकता हैअधिकतम 2000 वर्ण
submitLabelstringआवश्यक
1 से 60 वर्ण
successTitlestringआवश्यक
अधिकतम 200 वर्ण
successMessagestringआवश्यक
अधिकतम 2000 वर्ण
pendingTitlestringआवश्यक
अधिकतम 200 वर्ण
pendingMessagestringआवश्यक
अधिकतम 2000 वर्ण
closedTitlestringआवश्यक
अधिकतम 200 वर्ण
closedMessagestringआवश्यक
अधिकतम 2000 वर्ण
footerstringआवश्यक
null हो सकता हैअधिकतम 2000 वर्ण
styleobjectआवश्यक
accentstringआवश्यक
पैटर्न^#[0-9a-fA-F]{6}$
backgroundstringआवश्यक
पैटर्न^#[0-9a-fA-F]{6}$
surfacestringआवश्यक
पैटर्न^#[0-9a-fA-F]{6}$
textstringआवश्यक
पैटर्न^#[0-9a-fA-F]{6}$
fontstringआवश्यक
इनमें से एक"system""sans""serif""mono"
radiusstringआवश्यक
इनमें से एक"none""sm""md""lg""full"
widthstringआवश्यक
इनमें से एक"narrow""normal""wide"
layoutstringआवश्यक
इनमें से एक"card""plain"
alignstringआवश्यक
इनमें से एक"left""center"
logoUrlstringआवश्यक
null हो सकता हैअधिकतम 2000 वर्णफ़ॉर्मैटuri
settingsobject

Any subset of the settings. An omitted field keeps its value.

audienceIdsstring[]
अधिकतम 20 आइटम
doubleOptInboolean
senderAddressstring
null हो सकता हैअधिकतम 2000 वर्ण
confirmSubjectstring
1 से 200 वर्ण
confirmMessagestring
अधिकतम 2000 वर्ण
confirmButtonstring
1 से 60 वर्ण
successActionstring
इनमें से एक"message""redirect"
redirectUrlstring
null हो सकता हैअधिकतम 2000 वर्णफ़ॉर्मैटuri
notifyAddressesstring[]
अधिकतम 10 आइटम
publishboolean

Publish in the same call, so the form takes sign-ups at once. Nothing is created when the form could not be published.

लौटाता है

201Form

Created.

त्रुटियाँ

404

audience_not_found on settings.audienceIds.

422

invalid_parameter for an unknown starter or a value of the wrong shape, unknown_parameter for a key the body does not take, invalid_form when the document or settings break a rule together, form_sender_refused when confirmations cannot go out from settings.senderAddress, capability_unsupported for an address outside a limited key, or workspace_limit_reached when the workspace holds the most forms it may.

वे त्रुटियाँ जो कोई भी ऑपरेशन लौटा सकता है400401403500त्रुटि सूची

इनमें भी उपलब्ध

SDK
forms.create()
CLI
openemail forms create
MCP
createForm

GET/forms/starters

List the form starters

स्कोपforms:readपढ़ता है

The starting points the console offers when somebody makes a form. Not paginated and not workspace data. The slug is what POST /forms takes as starter.

Requires the forms:read scope.

लौटाता है

Every starter, documents left out.

त्रुटियाँ

वे त्रुटियाँ जो कोई भी ऑपरेशन लौटा सकता है400401403404422500त्रुटि सूची

इनमें भी उपलब्ध

SDK
forms.listStarters()
CLI
openemail forms list-starters
MCP
listFormStarters

GET/forms/starters/{slug}

Retrieve a form starter

स्कोपforms:readपढ़ता है

Adds the starter document, so a client can change it before creating a form from it.

Requires the forms:read scope.

पाथ पैरामीटर

slugstringआवश्यक

A slug from GET /forms/starters.

इनमें से एक"blank""newsletter""waitlist""event""early-access""contact"

लौटाता है

The starter with its document.

त्रुटियाँ

404

form_starter_not_found when no starter has that slug.

वे त्रुटियाँ जो कोई भी ऑपरेशन लौटा सकता है400401403422500त्रुटि सूची

इनमें भी उपलब्ध

SDK
forms.getStarter()
CLI
openemail forms get-starter
MCP
listFormStarters

GET/forms/{id}

Retrieve a form

स्कोपforms:readपढ़ता है

The whole form: the draft document, the publishedDocument visitors see, settings, the named audiences and fresh stats. A form in another workspace is a 404, never a 403.

Requires the forms:read scope.

पाथ पैरामीटर

idstringआवश्यक

The form id, frm_ plus 24 hex.

लौटाता है

200Form

The form.

त्रुटियाँ

404

form_not_found when the id names no form you can reach.

वे त्रुटियाँ जो कोई भी ऑपरेशन लौटा सकता है400401403422500त्रुटि सूची

इनमें भी उपलब्ध

SDK
forms.get()
CLI
openemail forms get
MCP
getForm

PATCH/forms/{id}

Update a form

स्कोपforms:writeडेटा बदलता है

A partial update. document replaces the draft whole and a live form keeps showing its published copy until POST /forms/{id}/publish. settings is merged field by field and takes effect at once. A call that turns on settings.doubleOptIn, names a settings.senderAddress or changes the confirmation email also needs emails:send, because the form then sends mail for you.

Read the form, change it and send expectedUpdatedAt with the updatedAt you read: if someone saved the form in between, your change is refused rather than written over theirs.

Requires the forms:write scope.

पाथ पैरामीटर

idstringआवश्यक

The form id, frm_ plus 24 hex.

अनुरोध बॉडी

namestring

New name, trimmed, 1 to 120 characters.

1 से 120 वर्ण
descriptionstring

New note, at most 500 characters. Null clears it.

null हो सकता हैअधिकतम 500 वर्ण
documentobject

Everything a visitor sees: fields in order, the copy around them and the style. Every form has exactly one email field, and every input field has a unique key that answers are posted under.

fieldsobject[]आवश्यक
1 से 50 आइटम
idstringआवश्यक
1 से 64 वर्ण
typestringआवश्यक
इनमें से एक"email""text""textarea""number""phone""url""date""select""radio""checkboxes""checkbox""consent""audiences""hidden""heading""paragraph""divider"
keystringआवश्यक
अधिकतम 40 वर्णपैटर्न^[a-z][a-z0-9_]{0,39}$
labelstringआवश्यक
अधिकतम 300 वर्ण
placeholderstringआवश्यक
null हो सकता हैअधिकतम 200 वर्ण
helpstringआवश्यक
null हो सकता हैअधिकतम 1000 वर्ण
requiredbooleanआवश्यक
defaultValuestringआवश्यक
null हो सकता हैअधिकतम 1000 वर्ण
optionsobject[]आवश्यक
अधिकतम 50 आइटम
idstringआवश्यक
1 से 64 वर्ण
labelstringआवश्यक
1 से 300 वर्ण
valuestringआवश्यक
1 से 1000 वर्ण
mapsTostringआवश्यक
null हो सकता हैइनमें से एक"email""firstName""lastName""name"
widthstringआवश्यक
इनमें से एक"full""half"
minLengthintegerआवश्यक
null हो सकता हैकम से कम 0अधिकतम 5000
maxLengthintegerआवश्यक
null हो सकता हैकम से कम 1अधिकतम 5000
minnumberआवश्यक
null हो सकता हैकम से कम -1000000000000अधिकतम 1000000000000
maxnumberआवश्यक
null हो सकता हैकम से कम -1000000000000अधिकतम 1000000000000
copyobjectआवश्यक
titlestringआवश्यक
अधिकतम 200 वर्ण
descriptionstringआवश्यक
null हो सकता हैअधिकतम 2000 वर्ण
submitLabelstringआवश्यक
1 से 60 वर्ण
successTitlestringआवश्यक
अधिकतम 200 वर्ण
successMessagestringआवश्यक
अधिकतम 2000 वर्ण
pendingTitlestringआवश्यक
अधिकतम 200 वर्ण
pendingMessagestringआवश्यक
अधिकतम 2000 वर्ण
closedTitlestringआवश्यक
अधिकतम 200 वर्ण
closedMessagestringआवश्यक
अधिकतम 2000 वर्ण
footerstringआवश्यक
null हो सकता हैअधिकतम 2000 वर्ण
styleobjectआवश्यक
accentstringआवश्यक
पैटर्न^#[0-9a-fA-F]{6}$
backgroundstringआवश्यक
पैटर्न^#[0-9a-fA-F]{6}$
surfacestringआवश्यक
पैटर्न^#[0-9a-fA-F]{6}$
textstringआवश्यक
पैटर्न^#[0-9a-fA-F]{6}$
fontstringआवश्यक
इनमें से एक"system""sans""serif""mono"
radiusstringआवश्यक
इनमें से एक"none""sm""md""lg""full"
widthstringआवश्यक
इनमें से एक"narrow""normal""wide"
layoutstringआवश्यक
इनमें से एक"card""plain"
alignstringआवश्यक
इनमें से एक"left""center"
logoUrlstringआवश्यक
null हो सकता हैअधिकतम 2000 वर्णफ़ॉर्मैटuri
settingsobject

Any subset of the settings. An omitted field keeps its value.

audienceIdsstring[]
अधिकतम 20 आइटम
doubleOptInboolean
senderAddressstring
null हो सकता हैअधिकतम 2000 वर्ण
confirmSubjectstring
1 से 200 वर्ण
confirmMessagestring
अधिकतम 2000 वर्ण
confirmButtonstring
1 से 60 वर्ण
successActionstring
इनमें से एक"message""redirect"
redirectUrlstring
null हो सकता हैअधिकतम 2000 वर्णफ़ॉर्मैटuri
notifyAddressesstring[]
अधिकतम 10 आइटम
expectedUpdatedAtstring

The updatedAt you read. When the form was saved since, nothing is written and the answer is 409 version_conflict.

फ़ॉर्मैटdate-time

लौटाता है

200Form

Saved.

त्रुटियाँ

404

form_not_found, or audience_not_found on settings.audienceIds.

409

version_conflict: the form was saved after expectedUpdatedAt. Nothing was written.

422

invalid_parameter for a value of the wrong shape, unknown_parameter for a key the body does not take, invalid_form when the document or settings break a rule together, form_sender_refused or capability_unsupported, each with param naming the field.

वे त्रुटियाँ जो कोई भी ऑपरेशन लौटा सकता है400401403500त्रुटि सूची

इनमें भी उपलब्ध

SDK
forms.update()
CLI
openemail forms update
MCP
updateForm

DELETE/forms/{id}

Delete a form

स्कोपforms:writeहटाता है
सत्यापन कोड माँगता है

Deletes the form and every submission it holds. Its hosted page and embed stop working at once. The people it added stay in your contacts and audiences.

There is no undo.

Requires the forms:write scope.

पाथ पैरामीटर

idstringआवश्यक

The form id, frm_ plus 24 hex.

लौटाता है

Deleted.

त्रुटियाँ

403

The key lacks the scope, or may not send as that address.

step_up_required: the call was made with an OAuth access token that has not been verified in the last 60 minutes. Ask for a code with POST /security/step-up, send it to POST /security/step-up/verify, then repeat the call. The person can also choose Allow changes for 60 minutes on the app in Account settings, Connected apps, on the OpenEmail website. An API key is never asked for a code.

404

form_not_found when the id names no form you can reach.

वे त्रुटियाँ जो कोई भी ऑपरेशन लौटा सकता है400401422500त्रुटि सूची

इनमें भी उपलब्ध

SDK
forms.delete()
CLI
openemail forms delete
MCP
deleteForm

POST/forms/{id}/publish

Publish a form

स्कोपforms:writeडेटा बदलता है

Copies the draft document to publishedDocument and sets the form live, so the hosted page, the embed and the subscribe endpoint show and take the new version. Publishing a paused form opens it again. No body.

A double opt-in form also needs a senderAddress that can send confirmations, and the caller needs emails:send.

Requires the forms:write scope.

पाथ पैरामीटर

idstringआवश्यक

The form id, frm_ plus 24 hex.

लौटाता है

200Form

Published.

त्रुटियाँ

404

form_not_found when the id names no form you can reach.

422

invalid_form or form_sender_refused, with param naming the field, or capability_unsupported when the key or app is limited to some addresses and the form's settings.senderAddress or settings.notifyAddresses falls outside them.

वे त्रुटियाँ जो कोई भी ऑपरेशन लौटा सकता है400401403500त्रुटि सूची

इनमें भी उपलब्ध

SDK
forms.publish()
CLI
openemail forms publish
MCP
publishForm

POST/forms/{id}/pause

Pause a form

स्कोपforms:writeडेटा बदलता है

Stops a published form taking sign-ups. Its page stays up and shows the closed message from its copy, and a JSON post to its subscribe endpoint answers 409 form_closed while a plain HTML form goes to the hosted page. Pausing a paused form changes nothing. No body.

Requires the forms:write scope.

पाथ पैरामीटर

idstringआवश्यक

The form id, frm_ plus 24 hex.

लौटाता है

200Form

Paused.

त्रुटियाँ

404

form_not_found when the id names no form you can reach.

409

form_not_published: a form that was never published cannot be paused.

वे त्रुटियाँ जो कोई भी ऑपरेशन लौटा सकता है400401403422500त्रुटि सूची

इनमें भी उपलब्ध

SDK
forms.pause()
CLI
openemail forms pause
MCP
setFormStatus

POST/forms/{id}/resume

Resume a form

स्कोपforms:writeडेटा बदलता है

Opens a paused form again, with the version that was published last. Resuming a live form changes nothing. No body.

Resuming a double opt-in form also needs emails:send.

Requires the forms:write scope.

पाथ पैरामीटर

idstringआवश्यक

The form id, frm_ plus 24 hex.

लौटाता है

200Form

Live.

त्रुटियाँ

404

form_not_found when the id names no form you can reach.

409

form_not_published: publish the form first.

422

form_sender_refused when a double opt-in form can no longer send confirmations, invalid_form when the published form breaks a rule, or capability_unsupported when the key or app is limited to some addresses and the form's settings.senderAddress or settings.notifyAddresses falls outside them.

वे त्रुटियाँ जो कोई भी ऑपरेशन लौटा सकता है400401403500त्रुटि सूची

इनमें भी उपलब्ध

SDK
forms.resume()
CLI
openemail forms resume
MCP
setFormStatus

POST/forms/{id}/duplicate

Duplicate a form

स्कोपforms:writeडेटा बदलता है

Makes a new draft with the same document and settings and "copy" after the name. Submissions and statistics are not copied. No body.

Requires the forms:write scope.

पाथ पैरामीटर

idstringआवश्यक

The form id, frm_ plus 24 hex.

लौटाता है

201Form

The copy.

त्रुटियाँ

404

form_not_found when the id names no form you can reach.

422

workspace_limit_reached when the workspace holds the most forms it may, or capability_unsupported when the key or app is limited to some addresses and the form's settings.senderAddress or settings.notifyAddresses falls outside them.

वे त्रुटियाँ जो कोई भी ऑपरेशन लौटा सकता है400401403500त्रुटि सूची

इनमें भी उपलब्ध

SDK
forms.duplicate()
CLI
openemail forms duplicate
MCP
duplicateForm

GET/forms/{id}/analytics

Form analytics

स्कोपforms:readपढ़ता है

Views, submissions and people added over a window, in buckets, with totals and the conversion rate. A view is one load of the hosted page or the embed while the form is live, and views are not deduplicated by visitor.

Requires the forms:read scope.

पाथ पैरामीटर

idstringआवश्यक

The form id, frm_ plus 24 hex.

क्वेरी पैरामीटर

daysinteger

How far back to look. The oldest bucket is a whole one and the newest is partial.

कम से कम 1अधिकतम 1095डिफ़ॉल्ट30
minutesinteger

The window in minutes, which wins over days when both are sent.

कम से कम 1अधिकतम 1576800
grainstring

How wide one bucket is. Views are kept per hour.

इनमें से एक"minute""hour""day"डिफ़ॉल्ट"day"
offsetMinutesinteger

Minutes east of UTC to cut the buckets in, so a day breaks where the reader's day does.

कम से कम -840अधिकतम 840डिफ़ॉल्ट0

लौटाता है

The window, the totals and the series.

त्रुटियाँ

404

form_not_found when the id names no form you can reach.

वे त्रुटियाँ जो कोई भी ऑपरेशन लौटा सकता है400401403422500त्रुटि सूची

इनमें भी उपलब्ध

SDK
forms.analytics()
CLI
openemail forms analytics
MCP
getFormAnalytics

GET/forms/{id}/submissions

List submissions

स्कोपforms:readपढ़ता है

Newest first. Each row keeps the answers as they were sent, labels included, so it still reads right after the form changes.

Requires the forms:read scope.

पाथ पैरामीटर

idstringआवश्यक

The form id, frm_ plus 24 hex.

क्वेरी पैरामीटर

limitinteger

Rows per page, 1 to 100.

कम से कम 1अधिकतम 100डिफ़ॉल्ट25
cursorstring

A submission id of this form. Keyset, not offset: pass the previous page's nextCursor. One that names nothing in this list is a 400 invalid_cursor.

qstring

Only submissions whose email address contains this text, ignoring case.

अधिकतम 200 वर्ण
statusstring

Only pending or only added submissions.

इनमें से एक"pending""added"

लौटाता है

A page of submissions.

त्रुटियाँ

400

invalid_cursor when the cursor names no submission of this form.

404

form_not_found when the id names no form you can reach.

वे त्रुटियाँ जो कोई भी ऑपरेशन लौटा सकता है401403422500त्रुटि सूची

इनमें भी उपलब्ध

SDK
forms.listSubmissions()forms.listAllSubmissions()forms.iterateSubmissions()
CLI
openemail forms list-submissions
MCP
listFormSubmissions

POST/forms/{id}/submissions/batch-remove

Delete submissions

स्कोपforms:writeहटाता है

Deletes up to 200 submissions of this form in one call and answers with how many went. A person a submission added stays in your contacts and audiences. A pending one can no longer be confirmed.

Requires the forms:write scope.

पाथ पैरामीटर

idstringआवश्यक

The form id, frm_ plus 24 hex.

अनुरोध बॉडी

idsstring[]आवश्यक

Submission ids of this form. An id that names nothing is skipped.

1 से 200 आइटम

लौटाता है

त्रुटियाँ

404

form_not_found when the id names no form you can reach.

वे त्रुटियाँ जो कोई भी ऑपरेशन लौटा सकता है400401403422500त्रुटि सूची

इनमें भी उपलब्ध

SDK
forms.deleteSubmissions()
CLI
openemail forms delete-submissions
MCP
removeFormSubmissions

GET/forms/{id}/submissions/{submissionId}

Retrieve a submission

स्कोपforms:readपढ़ता है

One submission with every answer.

Requires the forms:read scope.

पाथ पैरामीटर

idstringआवश्यक

The form id, frm_ plus 24 hex.

submissionIdstringआवश्यक

The submission id, fsb_ plus 24 hex.

लौटाता है

The submission.

त्रुटियाँ

404

form_not_found, or form_submission_not_found when the form has no such submission.

वे त्रुटियाँ जो कोई भी ऑपरेशन लौटा सकता है400401403422500त्रुटि सूची

इनमें भी उपलब्ध

SDK
forms.getSubmission()
CLI
openemail forms get-submission
MCP
getFormSubmission

DELETE/forms/{id}/submissions/{submissionId}

Delete a submission

स्कोपforms:writeहटाता है

Deletes the submission. The person it added stays in your contacts and audiences, and a pending one can no longer be confirmed.

Requires the forms:write scope.

पाथ पैरामीटर

idstringआवश्यक

The form id, frm_ plus 24 hex.

submissionIdstringआवश्यक

The submission id, fsb_ plus 24 hex.

लौटाता है

त्रुटियाँ

वे त्रुटियाँ जो कोई भी ऑपरेशन लौटा सकता है400401403422500त्रुटि सूची

इनमें भी उपलब्ध

SDK
forms.deleteSubmission()
CLI
openemail forms delete-submission
MCP
removeFormSubmissions

POST/forms/{id}/submissions/{submissionId}/approve

Approve a submission

स्कोपforms:writecontacts:writeडेटा बदलता है

Adds the person of a pending submission to its audiences without waiting for them to confirm, for when you know them. It does not resubscribe someone who unsubscribed from an audience, as their own confirmation would. An added submission is returned as it is. No body.

Requires the forms:write and contacts:write scopes.

पाथ पैरामीटर

idstringआवश्यक

The form id, frm_ plus 24 hex.

submissionIdstringआवश्यक

The submission id, fsb_ plus 24 hex.

लौटाता है

The submission, now added.

त्रुटियाँ

वे त्रुटियाँ जो कोई भी ऑपरेशन लौटा सकता है400401403422500त्रुटि सूची

इनमें भी उपलब्ध

SDK
forms.approveSubmission()
CLI
openemail forms approve-submission
MCP
approveFormSubmission

POST/forms/{id}/submissions/{submissionId}/resend

Resend a confirmation

स्कोपforms:writeemails:sendमेल भेजता है

Emails a pending submission a fresh confirmation link from the form's senderAddress. To protect the person, one address gets at most one confirmation per form every ten minutes and five a day across the workspace. A call that runs into those limits, or one for an added submission, sends nothing and answers confirmationSent: false. No body.

Requires the forms:write and emails:send scopes.

पाथ पैरामीटर

idstringआवश्यक

The form id, frm_ plus 24 hex.

submissionIdstringआवश्यक

The submission id, fsb_ plus 24 hex.

लौटाता है

200object

The submission.

objectstring
इनमें से एक"form_submission"
idstring

The durable handle, fsb_ plus 24 hex.

formIdstring
emailstring

The address the person signed up with, lower cased.

statusstring

added once the person is a contact in the audiences. pending while a double opt-in form waits for them to confirm.

इनमें से एक"pending""added"
expiredboolean

True for a pending submission whose confirmation link has run out. Approve it, or send a fresh link.

answersFormAnswer[]

A snapshot of every answer, kept as it was even after the form changes.

audienceIdsstring[]
sourceUrlstring

The page the form was filled in on, its origin and path only and at most 500 characters, when it was known.

null हो सकता है
confirmedAtstring

When the person joined the audiences. Null while pending.

null हो सकता हैफ़ॉर्मैटdate-time
createdAtstring
फ़ॉर्मैटdate-time
confirmationSentboolean

Whether an email went out on this call.

त्रुटियाँ

422

form_sender_refused when confirmations cannot go out from the form's address.

वे त्रुटियाँ जो कोई भी ऑपरेशन लौटा सकता है400401403500त्रुटि सूची

इनमें भी उपलब्ध

SDK
forms.resendConfirmation()
CLI
openemail forms resend-confirmation
MCP
resendFormConfirmation

POST/subscribe/{formId}

Sign up through a form

कोई स्कोप नहींकोई क्रेडेंशियल नहींडेटा बदलता है

Takes no credential: this is where a published form's visitors post. A browser <form method="post"> sends its fields form encoded and is redirected with a 303 to the form's thank-you page or to its redirect. A script that sends Accept: application/json or a JSON body gets JSON answers and the error codes below instead. Cross-origin requests are allowed.

On a double opt-in form the person is emailed a confirmation link and joins the audiences once they open it, so outcome is pending. Signing up again before confirming updates that pending submission rather than storing another. Otherwise they join at once and outcome is added.

A person who unsubscribed from an audience stays unsubscribed unless they confirm through a double opt-in form. Sign-ups are limited to 40 every 10 minutes from one network, and a submission that looks automated gets a normal answer and is dropped.

पाथ पैरामीटर

formIdstringआवश्यक

The id of a published form.

अनुरोध बॉडी

कंटेंट टाइपapplication/json, application/x-www-form-urlencoded, multipart/form-data

emailstring

The field keyed email, which every form has.

valuesobject

The answers again, for a client that would rather nest them.

oe_sourcestring

The page the form was filled in on. Defaults to the Referer header.

लौटाता है

Signed up, for a JSON caller.

303

Signed up or refused, for a browser form: follow the Location header.

त्रुटियाँ

400

malformed_json when a JSON body does not parse or is not an object.

404

form_not_found when no published form has that id.

409

form_closed when the form is paused.

422

invalid_form_submission when an answer is missing or not valid. The error carries fields, one entry per problem with the field key and the reason.

429

form_rate_limited when too many sign-ups came from the same network.

वे त्रुटियाँ जो कोई भी ऑपरेशन लौटा सकता है500त्रुटि सूची

इनमें भी उपलब्ध

SDK
forms.subscribe()
CLI
openemail forms subscribe

POST/forms/design

Design a form from a brief

स्कोपforms:writeडेटा बदलता है

A designer builds a new sign-up form from a written brief, as Create with AI does on the Forms page of the app: it picks the fields, writes the copy and sets the look, then saves the form as a draft. Publish it with POST /forms/{id}/publish. It spends one AI action and can take up to half a minute.

Requires the forms:write scope.

अनुरोध बॉडी

briefstringआवश्यक

Everything the form must ask and say, up to 4,000 characters.

1 से 4000 वर्ण
namestring

A short name for the form, up to 120 characters. Left out, the designer names it.

1 से 120 वर्ण

लौटाता है

201object

The new form, a draft.

objectstring
इनमें से एक"form"
idstring

The durable handle, frm_ plus 24 hex.

namestring

What the workspace calls the form. Visitors never see it.

descriptionstring
null हो सकता है
statusstring

draft until the first publish, then live while it takes sign-ups and paused while it does not. A form never goes back to draft.

इनमें से एक"draft""live""paused"
urlstring

The hosted page that shows the published form. Share it as a link, or add ?embed=1 for the frame the embed script loads.

subscribeUrlstring

Where a plain HTML <form method="post"> sends its fields, and where a script posts JSON for a JSON answer.

audienceIdsstring[]

The audiences every sign-up joins, besides the default audience that holds every contact. An audiences field adds the ones the person ticks.

doubleOptInboolean

Whether a sign-up waits for the person to confirm their address by email.

hasUnpublishedChangesboolean

True when the draft document differs from what the live form shows. Always false before the first publish.

publishedAtstring
null हो सकता हैफ़ॉर्मैटdate-time
createdAtstring
फ़ॉर्मैटdate-time
updatedAtstring

Send it back as expectedUpdatedAt on PATCH /forms/{id} to refuse a save that would overwrite someone else's.

फ़ॉर्मैटdate-time
documentobject

Everything a visitor sees: fields in order, the copy around them and the style. Every form has exactly one email field, and every input field has a unique key that answers are posted under.

fieldsobject[]आवश्यक
1 से 50 आइटम
idstringआवश्यक
1 से 64 वर्ण
typestringआवश्यक
इनमें से एक"email""text""textarea""number""phone""url""date""select""radio""checkboxes""checkbox""consent""audiences""hidden""heading""paragraph""divider"
keystringआवश्यक
अधिकतम 40 वर्णपैटर्न^[a-z][a-z0-9_]{0,39}$
labelstringआवश्यक
अधिकतम 300 वर्ण
placeholderstringआवश्यक
null हो सकता हैअधिकतम 200 वर्ण
helpstringआवश्यक
null हो सकता हैअधिकतम 1000 वर्ण
requiredbooleanआवश्यक
defaultValuestringआवश्यक
null हो सकता हैअधिकतम 1000 वर्ण
optionsobject[]आवश्यक
अधिकतम 50 आइटम
idstringआवश्यक
1 से 64 वर्ण
labelstringआवश्यक
1 से 300 वर्ण
valuestringआवश्यक
1 से 1000 वर्ण
mapsTostringआवश्यक
null हो सकता हैइनमें से एक"email""firstName""lastName""name"
widthstringआवश्यक
इनमें से एक"full""half"
minLengthintegerआवश्यक
null हो सकता हैकम से कम 0अधिकतम 5000
maxLengthintegerआवश्यक
null हो सकता हैकम से कम 1अधिकतम 5000
minnumberआवश्यक
null हो सकता हैकम से कम -1000000000000अधिकतम 1000000000000
maxnumberआवश्यक
null हो सकता हैकम से कम -1000000000000अधिकतम 1000000000000
copyobjectआवश्यक
titlestringआवश्यक
अधिकतम 200 वर्ण
descriptionstringआवश्यक
null हो सकता हैअधिकतम 2000 वर्ण
submitLabelstringआवश्यक
1 से 60 वर्ण
successTitlestringआवश्यक
अधिकतम 200 वर्ण
successMessagestringआवश्यक
अधिकतम 2000 वर्ण
pendingTitlestringआवश्यक
अधिकतम 200 वर्ण
pendingMessagestringआवश्यक
अधिकतम 2000 वर्ण
closedTitlestringआवश्यक
अधिकतम 200 वर्ण
closedMessagestringआवश्यक
अधिकतम 2000 वर्ण
footerstringआवश्यक
null हो सकता हैअधिकतम 2000 वर्ण
styleobjectआवश्यक
accentstringआवश्यक
पैटर्न^#[0-9a-fA-F]{6}$
backgroundstringआवश्यक
पैटर्न^#[0-9a-fA-F]{6}$
surfacestringआवश्यक
पैटर्न^#[0-9a-fA-F]{6}$
textstringआवश्यक
पैटर्न^#[0-9a-fA-F]{6}$
fontstringआवश्यक
इनमें से एक"system""sans""serif""mono"
radiusstringआवश्यक
इनमें से एक"none""sm""md""lg""full"
widthstringआवश्यक
इनमें से एक"narrow""normal""wide"
layoutstringआवश्यक
इनमें से एक"card""plain"
alignstringआवश्यक
इनमें से एक"left""center"
logoUrlstringआवश्यक
null हो सकता हैअधिकतम 2000 वर्णफ़ॉर्मैटuri
publishedDocumentobject

Everything a visitor sees: fields in order, the copy around them and the style. Every form has exactly one email field, and every input field has a unique key that answers are posted under.

null हो सकता है
fieldsobject[]आवश्यक
1 से 50 आइटम
idstringआवश्यक
1 से 64 वर्ण
typestringआवश्यक
इनमें से एक"email""text""textarea""number""phone""url""date""select""radio""checkboxes""checkbox""consent""audiences""hidden""heading""paragraph""divider"
keystringआवश्यक
अधिकतम 40 वर्णपैटर्न^[a-z][a-z0-9_]{0,39}$
labelstringआवश्यक
अधिकतम 300 वर्ण
placeholderstringआवश्यक
null हो सकता हैअधिकतम 200 वर्ण
helpstringआवश्यक
null हो सकता हैअधिकतम 1000 वर्ण
requiredbooleanआवश्यक
defaultValuestringआवश्यक
null हो सकता हैअधिकतम 1000 वर्ण
optionsobject[]आवश्यक
अधिकतम 50 आइटम
idstringआवश्यक
1 से 64 वर्ण
labelstringआवश्यक
1 से 300 वर्ण
valuestringआवश्यक
1 से 1000 वर्ण
mapsTostringआवश्यक
null हो सकता हैइनमें से एक"email""firstName""lastName""name"
widthstringआवश्यक
इनमें से एक"full""half"
minLengthintegerआवश्यक
null हो सकता हैकम से कम 0अधिकतम 5000
maxLengthintegerआवश्यक
null हो सकता हैकम से कम 1अधिकतम 5000
minnumberआवश्यक
null हो सकता हैकम से कम -1000000000000अधिकतम 1000000000000
maxnumberआवश्यक
null हो सकता हैकम से कम -1000000000000अधिकतम 1000000000000
copyobjectआवश्यक
titlestringआवश्यक
अधिकतम 200 वर्ण
descriptionstringआवश्यक
null हो सकता हैअधिकतम 2000 वर्ण
submitLabelstringआवश्यक
1 से 60 वर्ण
successTitlestringआवश्यक
अधिकतम 200 वर्ण
successMessagestringआवश्यक
अधिकतम 2000 वर्ण
pendingTitlestringआवश्यक
अधिकतम 200 वर्ण
pendingMessagestringआवश्यक
अधिकतम 2000 वर्ण
closedTitlestringआवश्यक
अधिकतम 200 वर्ण
closedMessagestringआवश्यक
अधिकतम 2000 वर्ण
footerstringआवश्यक
null हो सकता हैअधिकतम 2000 वर्ण
styleobjectआवश्यक
accentstringआवश्यक
पैटर्न^#[0-9a-fA-F]{6}$
backgroundstringआवश्यक
पैटर्न^#[0-9a-fA-F]{6}$
surfacestringआवश्यक
पैटर्न^#[0-9a-fA-F]{6}$
textstringआवश्यक
पैटर्न^#[0-9a-fA-F]{6}$
fontstringआवश्यक
इनमें से एक"system""sans""serif""mono"
radiusstringआवश्यक
इनमें से एक"none""sm""md""lg""full"
widthstringआवश्यक
इनमें से एक"narrow""normal""wide"
layoutstringआवश्यक
इनमें से एक"card""plain"
alignstringआवश्यक
इनमें से एक"left""center"
logoUrlstringआवश्यक
null हो सकता हैअधिकतम 2000 वर्णफ़ॉर्मैटuri
settingsobject

Where sign-ups go and what happens after one.

audienceIdsstring[]आवश्यक
अधिकतम 20 आइटम
doubleOptInbooleanआवश्यक
senderAddressstringआवश्यक
null हो सकता हैअधिकतम 2000 वर्ण
confirmSubjectstringआवश्यक
1 से 200 वर्ण
confirmMessagestringआवश्यक
अधिकतम 2000 वर्ण
confirmButtonstringआवश्यक
1 से 60 वर्ण
successActionstringआवश्यक
इनमें से एक"message""redirect"
redirectUrlstringआवश्यक
null हो सकता हैअधिकतम 2000 वर्णफ़ॉर्मैटuri
notifyAddressesstring[]आवश्यक
अधिकतम 10 आइटम
audiencesFormAudience[]

The audiences in audienceIds with their names.

senderIssuestring

Why confirmation emails cannot go out right now, for a form with doubleOptIn on. missing means no senderAddress is set, not_sendable that the address cannot send, not_allowed that the form's maker may not send as it. Null when they can go out, and always null with doubleOptIn off.

null हो सकता हैइनमें से एक"missing""not_sendable""not_allowed"
senderProblemstring

The same problem in a sentence, or null.

null हो सकता है
designobject
notesstring[]

What the designer adjusted or left out while making the design valid.

त्रुटियाँ

409

ai_not_configured: this server has no model to design with. version_conflict: the form was saved since expectedUpdatedAt, or while the designer worked, and nothing was written.

422

invalid_form when the designer could not make a valid form, so nothing was created or changed. workspace_limit_reached when the workspace already holds as many forms as it may. invalid_parameter for a body that does not validate.

429

ai_quota_exceeded: the workspace has used its AI actions for today.

वे त्रुटियाँ जो कोई भी ऑपरेशन लौटा सकता है400401403404500त्रुटि सूची

इनमें भी उपलब्ध

SDK
forms.design()
CLI
openemail forms design
MCP
designForm

POST/forms/{id}/redesign

Change a form’s design from instructions

स्कोपforms:writeडेटा बदलता है

A designer applies written instructions to the draft of the form and leaves the rest alone, as Ask AI does in the form builder of the app: add, remove or reorder fields, rewrite or translate the copy, change colours or fonts. The change is saved to the draft, and a live form keeps showing its published version until POST /forms/{id}/publish. It spends one AI action and can take up to half a minute.

Requires the forms:write scope.

पाथ पैरामीटर

idstringआवश्यक

Form id such as frm_8d2f6a1c9b3e47d0a5f1c2e9.

अनुरोध बॉडी

instructionsstringआवश्यक

What to change, with every detail, up to 4,000 characters.

1 से 4000 वर्ण
expectedUpdatedAtstring

The updatedAt you read, as it came. When the form was saved since, nothing is written and the answer is 409 version_conflict.

फ़ॉर्मैटdate-time

लौटाता है

200object

The form, with the change in its draft.

objectstring
इनमें से एक"form"
idstring

The durable handle, frm_ plus 24 hex.

namestring

What the workspace calls the form. Visitors never see it.

descriptionstring
null हो सकता है
statusstring

draft until the first publish, then live while it takes sign-ups and paused while it does not. A form never goes back to draft.

इनमें से एक"draft""live""paused"
urlstring

The hosted page that shows the published form. Share it as a link, or add ?embed=1 for the frame the embed script loads.

subscribeUrlstring

Where a plain HTML <form method="post"> sends its fields, and where a script posts JSON for a JSON answer.

audienceIdsstring[]

The audiences every sign-up joins, besides the default audience that holds every contact. An audiences field adds the ones the person ticks.

doubleOptInboolean

Whether a sign-up waits for the person to confirm their address by email.

hasUnpublishedChangesboolean

True when the draft document differs from what the live form shows. Always false before the first publish.

publishedAtstring
null हो सकता हैफ़ॉर्मैटdate-time
createdAtstring
फ़ॉर्मैटdate-time
updatedAtstring

Send it back as expectedUpdatedAt on PATCH /forms/{id} to refuse a save that would overwrite someone else's.

फ़ॉर्मैटdate-time
documentobject

Everything a visitor sees: fields in order, the copy around them and the style. Every form has exactly one email field, and every input field has a unique key that answers are posted under.

fieldsobject[]आवश्यक
1 से 50 आइटम
idstringआवश्यक
1 से 64 वर्ण
typestringआवश्यक
इनमें से एक"email""text""textarea""number""phone""url""date""select""radio""checkboxes""checkbox""consent""audiences""hidden""heading""paragraph""divider"
keystringआवश्यक
अधिकतम 40 वर्णपैटर्न^[a-z][a-z0-9_]{0,39}$
labelstringआवश्यक
अधिकतम 300 वर्ण
placeholderstringआवश्यक
null हो सकता हैअधिकतम 200 वर्ण
helpstringआवश्यक
null हो सकता हैअधिकतम 1000 वर्ण
requiredbooleanआवश्यक
defaultValuestringआवश्यक
null हो सकता हैअधिकतम 1000 वर्ण
optionsobject[]आवश्यक
अधिकतम 50 आइटम
idstringआवश्यक
1 से 64 वर्ण
labelstringआवश्यक
1 से 300 वर्ण
valuestringआवश्यक
1 से 1000 वर्ण
mapsTostringआवश्यक
null हो सकता हैइनमें से एक"email""firstName""lastName""name"
widthstringआवश्यक
इनमें से एक"full""half"
minLengthintegerआवश्यक
null हो सकता हैकम से कम 0अधिकतम 5000
maxLengthintegerआवश्यक
null हो सकता हैकम से कम 1अधिकतम 5000
minnumberआवश्यक
null हो सकता हैकम से कम -1000000000000अधिकतम 1000000000000
maxnumberआवश्यक
null हो सकता हैकम से कम -1000000000000अधिकतम 1000000000000
copyobjectआवश्यक
titlestringआवश्यक
अधिकतम 200 वर्ण
descriptionstringआवश्यक
null हो सकता हैअधिकतम 2000 वर्ण
submitLabelstringआवश्यक
1 से 60 वर्ण
successTitlestringआवश्यक
अधिकतम 200 वर्ण
successMessagestringआवश्यक
अधिकतम 2000 वर्ण
pendingTitlestringआवश्यक
अधिकतम 200 वर्ण
pendingMessagestringआवश्यक
अधिकतम 2000 वर्ण
closedTitlestringआवश्यक
अधिकतम 200 वर्ण
closedMessagestringआवश्यक
अधिकतम 2000 वर्ण
footerstringआवश्यक
null हो सकता हैअधिकतम 2000 वर्ण
styleobjectआवश्यक
accentstringआवश्यक
पैटर्न^#[0-9a-fA-F]{6}$
backgroundstringआवश्यक
पैटर्न^#[0-9a-fA-F]{6}$
surfacestringआवश्यक
पैटर्न^#[0-9a-fA-F]{6}$
textstringआवश्यक
पैटर्न^#[0-9a-fA-F]{6}$
fontstringआवश्यक
इनमें से एक"system""sans""serif""mono"
radiusstringआवश्यक
इनमें से एक"none""sm""md""lg""full"
widthstringआवश्यक
इनमें से एक"narrow""normal""wide"
layoutstringआवश्यक
इनमें से एक"card""plain"
alignstringआवश्यक
इनमें से एक"left""center"
logoUrlstringआवश्यक
null हो सकता हैअधिकतम 2000 वर्णफ़ॉर्मैटuri
publishedDocumentobject

Everything a visitor sees: fields in order, the copy around them and the style. Every form has exactly one email field, and every input field has a unique key that answers are posted under.

null हो सकता है
fieldsobject[]आवश्यक
1 से 50 आइटम
idstringआवश्यक
1 से 64 वर्ण
typestringआवश्यक
इनमें से एक"email""text""textarea""number""phone""url""date""select""radio""checkboxes""checkbox""consent""audiences""hidden""heading""paragraph""divider"
keystringआवश्यक
अधिकतम 40 वर्णपैटर्न^[a-z][a-z0-9_]{0,39}$
labelstringआवश्यक
अधिकतम 300 वर्ण
placeholderstringआवश्यक
null हो सकता हैअधिकतम 200 वर्ण
helpstringआवश्यक
null हो सकता हैअधिकतम 1000 वर्ण
requiredbooleanआवश्यक
defaultValuestringआवश्यक
null हो सकता हैअधिकतम 1000 वर्ण
optionsobject[]आवश्यक
अधिकतम 50 आइटम
idstringआवश्यक
1 से 64 वर्ण
labelstringआवश्यक
1 से 300 वर्ण
valuestringआवश्यक
1 से 1000 वर्ण
mapsTostringआवश्यक
null हो सकता हैइनमें से एक"email""firstName""lastName""name"
widthstringआवश्यक
इनमें से एक"full""half"
minLengthintegerआवश्यक
null हो सकता हैकम से कम 0अधिकतम 5000
maxLengthintegerआवश्यक
null हो सकता हैकम से कम 1अधिकतम 5000
minnumberआवश्यक
null हो सकता हैकम से कम -1000000000000अधिकतम 1000000000000
maxnumberआवश्यक
null हो सकता हैकम से कम -1000000000000अधिकतम 1000000000000
copyobjectआवश्यक
titlestringआवश्यक
अधिकतम 200 वर्ण
descriptionstringआवश्यक
null हो सकता हैअधिकतम 2000 वर्ण
submitLabelstringआवश्यक
1 से 60 वर्ण
successTitlestringआवश्यक
अधिकतम 200 वर्ण
successMessagestringआवश्यक
अधिकतम 2000 वर्ण
pendingTitlestringआवश्यक
अधिकतम 200 वर्ण
pendingMessagestringआवश्यक
अधिकतम 2000 वर्ण
closedTitlestringआवश्यक
अधिकतम 200 वर्ण
closedMessagestringआवश्यक
अधिकतम 2000 वर्ण
footerstringआवश्यक
null हो सकता हैअधिकतम 2000 वर्ण
styleobjectआवश्यक
accentstringआवश्यक
पैटर्न^#[0-9a-fA-F]{6}$
backgroundstringआवश्यक
पैटर्न^#[0-9a-fA-F]{6}$
surfacestringआवश्यक
पैटर्न^#[0-9a-fA-F]{6}$
textstringआवश्यक
पैटर्न^#[0-9a-fA-F]{6}$
fontstringआवश्यक
इनमें से एक"system""sans""serif""mono"
radiusstringआवश्यक
इनमें से एक"none""sm""md""lg""full"
widthstringआवश्यक
इनमें से एक"narrow""normal""wide"
layoutstringआवश्यक
इनमें से एक"card""plain"
alignstringआवश्यक
इनमें से एक"left""center"
logoUrlstringआवश्यक
null हो सकता हैअधिकतम 2000 वर्णफ़ॉर्मैटuri
settingsobject

Where sign-ups go and what happens after one.

audienceIdsstring[]आवश्यक
अधिकतम 20 आइटम
doubleOptInbooleanआवश्यक
senderAddressstringआवश्यक
null हो सकता हैअधिकतम 2000 वर्ण
confirmSubjectstringआवश्यक
1 से 200 वर्ण
confirmMessagestringआवश्यक
अधिकतम 2000 वर्ण
confirmButtonstringआवश्यक
1 से 60 वर्ण
successActionstringआवश्यक
इनमें से एक"message""redirect"
redirectUrlstringआवश्यक
null हो सकता हैअधिकतम 2000 वर्णफ़ॉर्मैटuri
notifyAddressesstring[]आवश्यक
अधिकतम 10 आइटम
audiencesFormAudience[]

The audiences in audienceIds with their names.

senderIssuestring

Why confirmation emails cannot go out right now, for a form with doubleOptIn on. missing means no senderAddress is set, not_sendable that the address cannot send, not_allowed that the form's maker may not send as it. Null when they can go out, and always null with doubleOptIn off.

null हो सकता हैइनमें से एक"missing""not_sendable""not_allowed"
senderProblemstring

The same problem in a sentence, or null.

null हो सकता है
designobject
notesstring[]

What the designer adjusted or left out while making the design valid.

त्रुटियाँ

409

ai_not_configured: this server has no model to design with. version_conflict: the form was saved since expectedUpdatedAt, or while the designer worked, and nothing was written.

422

invalid_form when the designer could not make a valid form, so nothing was created or changed. workspace_limit_reached when the workspace already holds as many forms as it may. invalid_parameter for a body that does not validate.

429

ai_quota_exceeded: the workspace has used its AI actions for today.

वे त्रुटियाँ जो कोई भी ऑपरेशन लौटा सकता है400401403404500त्रुटि सूची

इनमें भी उपलब्ध

SDK
forms.redesign()
CLI
openemail forms redesign
MCP
editFormDesign

ऑब्जेक्ट

DeletedFormobject

objectstring
इनमें से एक"form"
idstring
deletedboolean
इनमें से एकtrue

DeletedFormSubmissionobject

objectstring
इनमें से एक"form_submission"
idstring
formIdstring
deletedboolean
इनमें से एकtrue

Formobject

objectstring
इनमें से एक"form"
idstring

The durable handle, frm_ plus 24 hex.

namestring

What the workspace calls the form. Visitors never see it.

descriptionstring
null हो सकता है
statusstring

draft until the first publish, then live while it takes sign-ups and paused while it does not. A form never goes back to draft.

इनमें से एक"draft""live""paused"
urlstring

The hosted page that shows the published form. Share it as a link, or add ?embed=1 for the frame the embed script loads.

subscribeUrlstring

Where a plain HTML <form method="post"> sends its fields, and where a script posts JSON for a JSON answer.

audienceIdsstring[]

The audiences every sign-up joins, besides the default audience that holds every contact. An audiences field adds the ones the person ticks.

doubleOptInboolean

Whether a sign-up waits for the person to confirm their address by email.

hasUnpublishedChangesboolean

True when the draft document differs from what the live form shows. Always false before the first publish.

publishedAtstring
null हो सकता हैफ़ॉर्मैटdate-time
createdAtstring
फ़ॉर्मैटdate-time
updatedAtstring

Send it back as expectedUpdatedAt on PATCH /forms/{id} to refuse a save that would overwrite someone else's.

फ़ॉर्मैटdate-time
documentobject

Everything a visitor sees: fields in order, the copy around them and the style. Every form has exactly one email field, and every input field has a unique key that answers are posted under.

fieldsobject[]आवश्यक
1 से 50 आइटम
idstringआवश्यक
1 से 64 वर्ण
typestringआवश्यक
इनमें से एक"email""text""textarea""number""phone""url""date""select""radio""checkboxes""checkbox""consent""audiences""hidden""heading""paragraph""divider"
keystringआवश्यक
अधिकतम 40 वर्णपैटर्न^[a-z][a-z0-9_]{0,39}$
labelstringआवश्यक
अधिकतम 300 वर्ण
placeholderstringआवश्यक
null हो सकता हैअधिकतम 200 वर्ण
helpstringआवश्यक
null हो सकता हैअधिकतम 1000 वर्ण
requiredbooleanआवश्यक
defaultValuestringआवश्यक
null हो सकता हैअधिकतम 1000 वर्ण
optionsobject[]आवश्यक
अधिकतम 50 आइटम
idstringआवश्यक
1 से 64 वर्ण
labelstringआवश्यक
1 से 300 वर्ण
valuestringआवश्यक
1 से 1000 वर्ण
mapsTostringआवश्यक
null हो सकता हैइनमें से एक"email""firstName""lastName""name"
widthstringआवश्यक
इनमें से एक"full""half"
minLengthintegerआवश्यक
null हो सकता हैकम से कम 0अधिकतम 5000
maxLengthintegerआवश्यक
null हो सकता हैकम से कम 1अधिकतम 5000
minnumberआवश्यक
null हो सकता हैकम से कम -1000000000000अधिकतम 1000000000000
maxnumberआवश्यक
null हो सकता हैकम से कम -1000000000000अधिकतम 1000000000000
copyobjectआवश्यक
titlestringआवश्यक
अधिकतम 200 वर्ण
descriptionstringआवश्यक
null हो सकता हैअधिकतम 2000 वर्ण
submitLabelstringआवश्यक
1 से 60 वर्ण
successTitlestringआवश्यक
अधिकतम 200 वर्ण
successMessagestringआवश्यक
अधिकतम 2000 वर्ण
pendingTitlestringआवश्यक
अधिकतम 200 वर्ण
pendingMessagestringआवश्यक
अधिकतम 2000 वर्ण
closedTitlestringआवश्यक
अधिकतम 200 वर्ण
closedMessagestringआवश्यक
अधिकतम 2000 वर्ण
footerstringआवश्यक
null हो सकता हैअधिकतम 2000 वर्ण
styleobjectआवश्यक
accentstringआवश्यक
पैटर्न^#[0-9a-fA-F]{6}$
backgroundstringआवश्यक
पैटर्न^#[0-9a-fA-F]{6}$
surfacestringआवश्यक
पैटर्न^#[0-9a-fA-F]{6}$
textstringआवश्यक
पैटर्न^#[0-9a-fA-F]{6}$
fontstringआवश्यक
इनमें से एक"system""sans""serif""mono"
radiusstringआवश्यक
इनमें से एक"none""sm""md""lg""full"
widthstringआवश्यक
इनमें से एक"narrow""normal""wide"
layoutstringआवश्यक
इनमें से एक"card""plain"
alignstringआवश्यक
इनमें से एक"left""center"
logoUrlstringआवश्यक
null हो सकता हैअधिकतम 2000 वर्णफ़ॉर्मैटuri
publishedDocumentobject

Everything a visitor sees: fields in order, the copy around them and the style. Every form has exactly one email field, and every input field has a unique key that answers are posted under.

null हो सकता है
fieldsobject[]आवश्यक
1 से 50 आइटम
idstringआवश्यक
1 से 64 वर्ण
typestringआवश्यक
इनमें से एक"email""text""textarea""number""phone""url""date""select""radio""checkboxes""checkbox""consent""audiences""hidden""heading""paragraph""divider"
keystringआवश्यक
अधिकतम 40 वर्णपैटर्न^[a-z][a-z0-9_]{0,39}$
labelstringआवश्यक
अधिकतम 300 वर्ण
placeholderstringआवश्यक
null हो सकता हैअधिकतम 200 वर्ण
helpstringआवश्यक
null हो सकता हैअधिकतम 1000 वर्ण
requiredbooleanआवश्यक
defaultValuestringआवश्यक
null हो सकता हैअधिकतम 1000 वर्ण
optionsobject[]आवश्यक
अधिकतम 50 आइटम
idstringआवश्यक
1 से 64 वर्ण
labelstringआवश्यक
1 से 300 वर्ण
valuestringआवश्यक
1 से 1000 वर्ण
mapsTostringआवश्यक
null हो सकता हैइनमें से एक"email""firstName""lastName""name"
widthstringआवश्यक
इनमें से एक"full""half"
minLengthintegerआवश्यक
null हो सकता हैकम से कम 0अधिकतम 5000
maxLengthintegerआवश्यक
null हो सकता हैकम से कम 1अधिकतम 5000
minnumberआवश्यक
null हो सकता हैकम से कम -1000000000000अधिकतम 1000000000000
maxnumberआवश्यक
null हो सकता हैकम से कम -1000000000000अधिकतम 1000000000000
copyobjectआवश्यक
titlestringआवश्यक
अधिकतम 200 वर्ण
descriptionstringआवश्यक
null हो सकता हैअधिकतम 2000 वर्ण
submitLabelstringआवश्यक
1 से 60 वर्ण
successTitlestringआवश्यक
अधिकतम 200 वर्ण
successMessagestringआवश्यक
अधिकतम 2000 वर्ण
pendingTitlestringआवश्यक
अधिकतम 200 वर्ण
pendingMessagestringआवश्यक
अधिकतम 2000 वर्ण
closedTitlestringआवश्यक
अधिकतम 200 वर्ण
closedMessagestringआवश्यक
अधिकतम 2000 वर्ण
footerstringआवश्यक
null हो सकता हैअधिकतम 2000 वर्ण
styleobjectआवश्यक
accentstringआवश्यक
पैटर्न^#[0-9a-fA-F]{6}$
backgroundstringआवश्यक
पैटर्न^#[0-9a-fA-F]{6}$
surfacestringआवश्यक
पैटर्न^#[0-9a-fA-F]{6}$
textstringआवश्यक
पैटर्न^#[0-9a-fA-F]{6}$
fontstringआवश्यक
इनमें से एक"system""sans""serif""mono"
radiusstringआवश्यक
इनमें से एक"none""sm""md""lg""full"
widthstringआवश्यक
इनमें से एक"narrow""normal""wide"
layoutstringआवश्यक
इनमें से एक"card""plain"
alignstringआवश्यक
इनमें से एक"left""center"
logoUrlstringआवश्यक
null हो सकता हैअधिकतम 2000 वर्णफ़ॉर्मैटuri
settingsobject

Where sign-ups go and what happens after one.

audienceIdsstring[]आवश्यक
अधिकतम 20 आइटम
doubleOptInbooleanआवश्यक
senderAddressstringआवश्यक
null हो सकता हैअधिकतम 2000 वर्ण
confirmSubjectstringआवश्यक
1 से 200 वर्ण
confirmMessagestringआवश्यक
अधिकतम 2000 वर्ण
confirmButtonstringआवश्यक
1 से 60 वर्ण
successActionstringआवश्यक
इनमें से एक"message""redirect"
redirectUrlstringआवश्यक
null हो सकता हैअधिकतम 2000 वर्णफ़ॉर्मैटuri
notifyAddressesstring[]आवश्यक
अधिकतम 10 आइटम
audiencesFormAudience[]

The audiences in audienceIds with their names.

senderIssuestring

Why confirmation emails cannot go out right now, for a form with doubleOptIn on. missing means no senderAddress is set, not_sendable that the address cannot send, not_allowed that the form's maker may not send as it. Null when they can go out, and always null with doubleOptIn off.

null हो सकता हैइनमें से एक"missing""not_sendable""not_allowed"
senderProblemstring

The same problem in a sentence, or null.

null हो सकता है

FormAnalyticsobject

objectstring
इनमें से एक"form_analytics"
formIdstring
sincestring
फ़ॉर्मैटdate-time
untilstring
फ़ॉर्मैटdate-time
grainstring
इनमें से एक"minute""hour""day"
offsetMinutesinteger
totalsobject
viewsinteger

Times the hosted page or the embed was opened while the form was live.

submissionsinteger

Every submission stored, waiting or added.

addedinteger

Submissions whose person is in the audiences.

pendinginteger

Submissions still waiting for the person to confirm their address.

lastSubmittedAtstring
null हो सकता हैफ़ॉर्मैटdate-time
conversionnumber

Submissions divided by views over the window, at most 1. Null with no views.

null हो सकता है
seriesFormAnalyticsPoint[]

Sparse: a bucket with nothing in it is left out.

FormAnalyticsPointobject

bucketstring

YYYY-MM-DD for a day, YYYY-MM-DDTHH for an hour, YYYY-MM-DDTHH:MM for a minute.

viewsinteger
submissionsinteger
addedinteger

People who joined the audiences in the bucket, dated when they confirmed.

FormAnswerobject

fieldIdstring
keystring

The field key the value was posted under.

labelstring

The field label when the person signed up.

typestring
इनमें से एक"email""text""textarea""number""phone""url""date""select""radio""checkboxes""checkbox""consent""audiences""hidden""heading""paragraph""divider"
valuestring | string[] | boolean

Text for most fields, a list for multiple choice, true or false for a checkbox.

displaystring

The value as a person reads it, option labels included.

FormAudienceobject

idstring
namestring
builtinboolean

True for the default audience every contact joins.

FormDocumentobject

Everything a visitor sees: fields in order, the copy around them and the style. Every form has exactly one email field, and every input field has a unique key that answers are posted under.

fieldsobject[]आवश्यक
1 से 50 आइटम
idstringआवश्यक
1 से 64 वर्ण
typestringआवश्यक
इनमें से एक"email""text""textarea""number""phone""url""date""select""radio""checkboxes""checkbox""consent""audiences""hidden""heading""paragraph""divider"
keystringआवश्यक
अधिकतम 40 वर्णपैटर्न^[a-z][a-z0-9_]{0,39}$
labelstringआवश्यक
अधिकतम 300 वर्ण
placeholderstringआवश्यक
null हो सकता हैअधिकतम 200 वर्ण
helpstringआवश्यक
null हो सकता हैअधिकतम 1000 वर्ण
requiredbooleanआवश्यक
defaultValuestringआवश्यक
null हो सकता हैअधिकतम 1000 वर्ण
optionsobject[]आवश्यक
अधिकतम 50 आइटम
idstringआवश्यक
1 से 64 वर्ण
labelstringआवश्यक
1 से 300 वर्ण
valuestringआवश्यक
1 से 1000 वर्ण
mapsTostringआवश्यक
null हो सकता हैइनमें से एक"email""firstName""lastName""name"
widthstringआवश्यक
इनमें से एक"full""half"
minLengthintegerआवश्यक
null हो सकता हैकम से कम 0अधिकतम 5000
maxLengthintegerआवश्यक
null हो सकता हैकम से कम 1अधिकतम 5000
minnumberआवश्यक
null हो सकता हैकम से कम -1000000000000अधिकतम 1000000000000
maxnumberआवश्यक
null हो सकता हैकम से कम -1000000000000अधिकतम 1000000000000
copyobjectआवश्यक
titlestringआवश्यक
अधिकतम 200 वर्ण
descriptionstringआवश्यक
null हो सकता हैअधिकतम 2000 वर्ण
submitLabelstringआवश्यक
1 से 60 वर्ण
successTitlestringआवश्यक
अधिकतम 200 वर्ण
successMessagestringआवश्यक
अधिकतम 2000 वर्ण
pendingTitlestringआवश्यक
अधिकतम 200 वर्ण
pendingMessagestringआवश्यक
अधिकतम 2000 वर्ण
closedTitlestringआवश्यक
अधिकतम 200 वर्ण
closedMessagestringआवश्यक
अधिकतम 2000 वर्ण
footerstringआवश्यक
null हो सकता हैअधिकतम 2000 वर्ण
styleobjectआवश्यक
accentstringआवश्यक
पैटर्न^#[0-9a-fA-F]{6}$
backgroundstringआवश्यक
पैटर्न^#[0-9a-fA-F]{6}$
surfacestringआवश्यक
पैटर्न^#[0-9a-fA-F]{6}$
textstringआवश्यक
पैटर्न^#[0-9a-fA-F]{6}$
fontstringआवश्यक
इनमें से एक"system""sans""serif""mono"
radiusstringआवश्यक
इनमें से एक"none""sm""md""lg""full"
widthstringआवश्यक
इनमें से एक"narrow""normal""wide"
layoutstringआवश्यक
इनमें से एक"card""plain"
alignstringआवश्यक
इनमें से एक"left""center"
logoUrlstringआवश्यक
null हो सकता हैअधिकतम 2000 वर्णफ़ॉर्मैटuri

FormListobject

objectstring
इनमें से एक"list"
hasMoreboolean

True when another page follows. Pass nextCursor back as cursor to read it.

nextCursorstring

An opaque cursor for the next page, or null on the last page. Pass it back unchanged.

null हो सकता है

FormStarterobject

objectstring
इनमें से एक"form_starter"
slugstring
इनमें से एक"blank""newsletter""waitlist""event""early-access""contact"
namestring
descriptionstring

FormStarterDetailobject

objectstring
इनमें से एक"form_starter"
slugstring
इनमें से एक"blank""newsletter""waitlist""event""early-access""contact"
namestring
descriptionstring
documentFormDocument

FormStarterListobject

objectstring
इनमें से एक"list"

FormStatsobject

viewsinteger

Times the hosted page or the embed was opened while the form was live.

submissionsinteger

Every submission stored, waiting or added.

addedinteger

Submissions whose person is in the audiences.

pendinginteger

Submissions still waiting for the person to confirm their address.

lastSubmittedAtstring
null हो सकता हैफ़ॉर्मैटdate-time

FormSubmissionobject

objectstring
इनमें से एक"form_submission"
idstring

The durable handle, fsb_ plus 24 hex.

formIdstring
emailstring

The address the person signed up with, lower cased.

statusstring

added once the person is a contact in the audiences. pending while a double opt-in form waits for them to confirm.

इनमें से एक"pending""added"
expiredboolean

True for a pending submission whose confirmation link has run out. Approve it, or send a fresh link.

answersFormAnswer[]

A snapshot of every answer, kept as it was even after the form changes.

audienceIdsstring[]
sourceUrlstring

The page the form was filled in on, its origin and path only and at most 500 characters, when it was known.

null हो सकता है
confirmedAtstring

When the person joined the audiences. Null while pending.

null हो सकता हैफ़ॉर्मैटdate-time
createdAtstring
फ़ॉर्मैटdate-time

FormSubmissionBatchobject

objectstring
इनमें से एक"form_submission_batch"
formIdstring
deletedinteger

How many submissions were deleted.

FormSubmissionListobject

objectstring
इनमें से एक"list"
hasMoreboolean
nextCursorstring
null हो सकता है
formIdstring

FormSubscriptionobject

objectstring
इनमें से एक"form_subscription"
formIdstring
outcomestring

added when the person is in the audiences now. pending on a double opt-in form: they join once they confirm by email, and that email goes out after this answer unless this form emailed the address in the last ten minutes or the address has had five from this workspace today.

इनमें से एक"added""pending"
redirectUrlstring

Where the form sends people after a sign-up, when it is set to redirect.

null हो सकता है

FormSummaryobject

objectstring
इनमें से एक"form"
idstring

The durable handle, frm_ plus 24 hex.

namestring

What the workspace calls the form. Visitors never see it.

descriptionstring
null हो सकता है
statusstring

draft until the first publish, then live while it takes sign-ups and paused while it does not. A form never goes back to draft.

इनमें से एक"draft""live""paused"
urlstring

The hosted page that shows the published form. Share it as a link, or add ?embed=1 for the frame the embed script loads.

subscribeUrlstring

Where a plain HTML <form method="post"> sends its fields, and where a script posts JSON for a JSON answer.

audienceIdsstring[]

The audiences every sign-up joins, besides the default audience that holds every contact. An audiences field adds the ones the person ticks.

doubleOptInboolean

Whether a sign-up waits for the person to confirm their address by email.

hasUnpublishedChangesboolean

True when the draft document differs from what the live form shows. Always false before the first publish.

publishedAtstring
null हो सकता हैफ़ॉर्मैटdate-time
createdAtstring
फ़ॉर्मैटdate-time
updatedAtstring

Send it back as expectedUpdatedAt on PATCH /forms/{id} to refuse a save that would overwrite someone else's.

फ़ॉर्मैटdate-time