> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sequenzy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Submit Saved Popup

> Submit a saved popup and create or update a subscriber.

# Submit Saved Popup

Saved popup embeds submit here automatically. The popup's stored content controls lists, tags, duplicate handling, custom fields, and redirect behavior.

## Request

<ParamField path="popupId" type="string" required>
  The saved popup ID.
</ParamField>

<ParamField body="email" type="string" required>
  The subscriber's email address.
</ParamField>

<ParamField body="firstName" type="string">
  The subscriber's first name, when the popup includes that field.
</ParamField>

<ParamField body="lastName" type="string">
  The subscriber's last name, when the popup includes that field.
</ParamField>

<ParamField body="customAttributes[fieldKey]" type="string">
  Value for a custom popup field, stored as a subscriber custom attribute.
</ParamField>

<ParamField body="website" type="string">
  Honeypot field. Leave it empty.
</ParamField>

```bash theme={null}
curl -X POST "https://api.sequenzy.com/api/v1/forms/popups/popup_abc123" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  --data-urlencode "email=user@example.com" \
  --data-urlencode "customAttributes[company_size]=42"
```

## Responses

<ResponseExample>
  ```json 200 theme={null}
  {"success": true}
  ```

  ```json 200 theme={null}
  { "success": true, "redirectUrl": "https://example.com/thank-you" }
  ```

  ```json 400 theme={null}
  { "success": false, "message": "Please enter a valid email address" }
  ```

  ```json 404 theme={null}
  { "success": false, "message": "Invalid popup configuration" }
  ```

  ```json 429 theme={null}
  { "success": false, "message": "Too many requests. Please try again later." }
  ```

  ```json 500 theme={null}
  { "success": false, "message": "An error occurred. Please try again." }
  ```
</ResponseExample>
