Create a new form

Creates a new signup, data-collection, or order form within the given subscriber list and
immediately generates its HTML source, so it is publicly accessible via formUrl.

Form method

ValueDescription
subscribeNew-subscriber form — collects and saves a new contact (default)
updateData-update form — lets existing subscribers modify their own data
orderE-commerce order form — lets subscribers purchase products

Subscribe and update forms

Double opt-in

ValueDescription
0No double opt-in (default)
2Double opt-in — a confirmation e-mail is sent before the subscriber is activated

Fields on the form

Use the optional fields array to place list fields on the form at creation time.

Each element references a list field by its technical name (fieldName) and may override
the display label, mandatory flag, validation message, and position.

Subscribe forms (method: "subscribe")

  • The email field is always required on the form.
  • If fields is omitted, the form is created with the email field only.
  • If fields is provided but does not contain "email", the email field is
    automatically prepended with isMandatory: true.
  • All fieldName values must exist on the subscriber list.

Update forms (method: "update")

  • fields is required and must contain at least one element.
  • All fieldName values must exist on the subscriber list.

Field options (radio, select and similar types)

List fields of type radio, horizontalradio, select, or textmulti require an
options array. Each option defines the stored value, the display label, and whether it is
pre-selected by default.

  • options is required for the above field types and must contain at least one element.
  • options is not allowed for other field types (e.g. text, textarea) — providing it
    returns a 400 error.
  • Each option must have a value key (may be an empty string) and a non-empty text.

Order forms (method: "order")

Order forms allow subscribers to purchase one or more products. They require:

  • shippingMethodIds (required): one or more shipping method IDs that must belong to your account.
    Use GET /shipping-method to list available shipping methods.
  • orderType (required): controls the product selection behaviour on the form.
    ValueBehaviour
    1Fixed product — exactly one product, no quantity control
    2Product selector — customer selects from a list
    3Quantity-based — customer enters a quantity per product
    4Subscription / recurring
  • products (required): list of products to offer on the form.
    Each entry must have either a productId (integer) or a sku (string) to identify the product.
    • If sku is given instead of productId, the system resolves it to the matching product in your account.
    • orderType: 1 allows exactly one product.

Order form product fields

FieldTypeRequiredDescription
productIdinteger—Product ID (either productId or sku is required)
skustring—Product SKU (resolved to productId server-side)
labelstringnoLabel shown on the form (defaults to the product name)
defaultCheckedbooleannoPre-select this product (default: false)
defaultQtyintegernoPre-filled quantity (for quantity-based forms)
descriptionstringnoShort description shown next to the product
orderintegernoDisplay position (1-based; defaults to order in the array)
orderBumpbooleannoShow the product as an order bump (checkbox upsell) — see below
bumpStyleobjectnoLook of the order bump box (only with orderBump: true)

Order bump (checkbox upsell)

A product with orderBump: true is not part of the main product selection: it is shown
as a checkbox offer at the end of the order form, in a box styled by bumpStyle.

  • Not available with orderType: 1.
  • At least one product without orderBump is required.
  • Cannot be combined with defaultChecked (bump products are never pre-selected).
  • A bump product can be listed only once on the form.
  • bumpStyle properties (all optional): borderColor, borderWidth (0-10 px),
    borderStyle, backgroundColor, padding, showPrice (show / hide), align
    (left / center) and imageUrl (e.g. an animated GIF shown before the checkbox).
  • Bump products are rendered by the default order form template only.

What happens after creation

  1. The form record is inserted in the database.
  2. For subscribe/update forms: the specified fields (and their options) are added to the form.
    For order forms: the selected products are linked to the form.
  3. The form HTML is generated and uploaded to S3 at:
    newsletter/letter/nl{listId}/ns{formId}/subscribe.html
  4. The public formUrl is returned so you can embed or link to it immediately.

You can manage form fields later via the following endpoints:

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Path Params
integer
required

Subscriber list (newsletter) ID

Body Params

Common properties shared by all form types.

string
required

Form name (displayed in the admin interface)

string

Heading text displayed at the top of the rendered form.
If omitted, the form is created without a title.

string

Introductory text shown below the form title.
If omitted, the form is created without intro text.

string

Full HTML content for the thank-you page shown after a successful form submission.
If omitted, a default thank-you page is generated automatically.

string
enum

What the thank-you page (shown after a successful submission or payment) is. If omitted, a default thank-you page is generated automatically.

  • HTML: the page HTML stored on the form (thanksText, or thanksTextUrl to load the HTML source of a page).
  • URL: visitors are forwarded to thanksPageUrl. Use this when the customer gives their own thank-you page address.
  • FORM: visitors are forwarded to the form thanksPageTargetId.
  • LANDING_PAGE: visitors are forwarded to the landing page thanksPageTargetId.
    Without thanksPageType only thanksText / thanksTextUrl may be sent.
Allowed:
string
length ≤ 255

Absolute http(s) URL visitors are forwarded to (required for thanksPageType: URL, not allowed otherwise).
Merge tags in the URL are replaced and URL-encoded, so data can be passed to the page as parameters,
e.g. https://example.com/thanks?email=[email] or, on order forms, ?trnum=[mssys_trnum].

integer
≥ 1

ID of the form (thanksPageType: FORM) or landing page (thanksPageType: LANDING_PAGE) visitors are forwarded to.
It must belong to the authenticated account. A form cannot be its own thank-you page.

string

https URL whose HTML source is loaded into the form as the thank-you page HTML (nothing is forwarded; the page source is copied).
Mutually exclusive with thanksText. Transaction data does not appear on a copied page unless its source contains merge tags.

string

Optional free-text description of the form (visible in the admin interface).

integer

Form template ID to apply during HTML generation.
If omitted or invalid, the first system default template is used.

string
Defaults to Submit

Label text on the submit button. Defaults to "Submit".

string

Custom HTML/CSS/JS code for the form. <style> blocks and <link rel="stylesheet">
tags are automatically moved into the generated page's <head>; everything else
(typically <script> blocks) is placed in the page footer.

string
enum
Defaults to subscribe
  • subscribe — collects a new subscriber (default)
  • update — lets an existing subscriber update their data
Allowed:
integer
enum
Defaults to 0
  • 0 — subscriber added immediately (default)
  • 2 — double opt-in confirmation e-mail sent first
Allowed:
fields
array of objects

List fields to place on the form.

Subscribe (method: "subscribe"): email is auto-prepended if absent.
Update (method: "update"): required, at least one element.

All fieldName values must exist on the subscriber list.
Option-type fields (radio, horizontalradio, select, textmulti) require an options array.

fields
Responses

Language
Credentials
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json