---
title: "Submit signup form"
method: POST
path: "/forms/{companyId}"
tags: ["Widgets"]
---

# Submit signup form

`POST /forms/{companyId}`

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.

## Path parameters

- `companyId` string, required

## Query parameters

- `lists` string
- `tags` string
- `duplicateStrategy` 'skip' | 'merge' | 'overwrite'
- `duplicateStrategyToken` string

## Request body

- object
  - `email` string, email, required — Subscriber email address
  - `firstName` string
  - `lastName` string
  - `listIds` string[]
  - `tagIds` string[] — 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.
  - `duplicateStrategyToken` string — Body alternative to the duplicateStrategyToken query parameter.
  - `redirectUrl` string — Http(s) URL or bare domain to redirect to after successful submission
  - `website` string — Honeypot field. Leave empty.

## Response `200`

Form submitted successfully

- object
  - `success` boolean

## Other responses

- `303` — Redirect after successful form submission
- `400` — Invalid email, invalid redirect URL, or blocked address
- `404` — Company not found
- `429` — Rate limit exceeded
- `500` — Internal server error

## Changes

- **2026-06-12** `f9a826460811` — 6 info
  - added the new optional `query` request parameter `duplicateStrategy`
  - added the new optional `query` request parameter `duplicateStrategyToken`
  - added the new optional request property `duplicateStrategy` (media type: application/x-www-form-urlencoded)
  - added the new optional request property `duplicateStrategy` (media type: application/json)
  - …2 more
- **2026-05-13** `9a89cb9ec599` — 3 info
  - added the new optional request property `redirectUrl` (media type: application/x-www-form-urlencoded)
  - added the new optional request property `redirectUrl` (media type: application/json)
  - added the non-success response with the status `303`
- **2026-05-10** `c8e4057131b3` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/sequenzy/apis/sequenzy-api/changes/forms/:companyId/post.md)

---

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