Widgets

Submit signup form

Submit a public signup form. No API key is required.

Omit lists to use the workspace default lists setting, provide lists= to add the subscriber to no lists, or provide comma-separated list IDs for specific lists. Provide stable tags IDs to apply existing tags to the subscriber.

post/forms/{companyId}

Path parameters

companyIdstring required

The company ID the form belongs to

Query parameters

listsstring

Comma-separated list IDs. Omit for workspace default lists, or provide an empty value for no lists.

tagsstring

Comma-separated tag IDs to apply to the subscriber.

duplicateStrategy'skip' | 'merge' | 'overwrite'

How to handle an existing contact with the submitted email. Use skip to preserve fields, merge to fill missing fields, or overwrite to replace submitted fields. Merge and overwrite require duplicateStrategyToken from the form builder.

duplicateStrategyTokenstring

Signed token generated by the form builder for the selected duplicateStrategy. Required for merge or overwrite.

Request body

emailstring email required

Subscriber email address

firstNamestring
lastNamestring
listIdsstring[]
tagIdsstring[]

Existing tag IDs to apply to the subscriber

duplicateStrategy'skip' | 'merge' | 'overwrite'

Body alternative to the duplicateStrategy query parameter. Query parameter takes precedence. Merge and overwrite require duplicateStrategyToken.

duplicateStrategyTokenstring

Body alternative to the duplicateStrategyToken query parameter.

redirectUrlstring

Http(s) URL or bare domain to redirect to after successful submission

websitestring

Honeypot field. Leave empty.

Example request

{
  "email": "user@example.com",
  "firstName": "Jane",
  "lastName": "Doe",
  "listIds": [
    "list_abc123"
  ],
  "tagIds": [
    "tag_abc123",
    "tag_def456"
  ],
  "redirectUrl": "https://example.com/thank-you"
}

Response

Form submitted successfully

successboolean

Example response

{
  "success": true
}

Changes