---
title: "List signup forms"
method: GET
path: "/v1/projectId/{projectId}/signup-forms"
tags: ["Signup Forms"]
---

# List signup forms

`GET /v1/projectId/{projectId}/signup-forms`

## Request

- Base URL: `https://api.bluefox.email`
- URL: `https://api.bluefox.email/v1/projectId/{projectId}/signup-forms`
- Auth: HTTP bearer

## Path parameters

- `projectId` string, required

## Query parameters

- `limit` integer
- `skip` integer
- `sort` 'updatedAt' | 'createdAt'
- `order` 'asc' | 'desc'
- `filter[<field>]` string

## Response `200`

OK

- object
  - `status` integer
  - `result` object
    - `items` SignUpForm[]
      - `_id` string
      - `name` string
      - `published` boolean: When true, the form is reachable at the BlueFox-hosted URL bluefox.email/signup/{slug}.
      - `slug` string: URL-friendly identifier used for the BlueFox-hosted signup page.
      - `pageHeadline` string: Shown as the heading on the BlueFox-hosted signup page. Falls back to the project name if not set.
      - `pageDescription` string: Shown under the headline on the BlueFox-hosted signup page.
      - `useDefaultTurnstile` boolean: Defaults to true. When true, the BlueFox-hosted page (not embeds) shows and validates BlueFox's own Turnstile challenge, regardless of captchaType below - which still governs embeds, and governs the hosted page too when this is false.
      - `subscriberListIds` string[]
      - `formLayout` string
      - `showCaptcha` boolean
      - `captchaType` 'none' | 'svg' | 'turnstile'
      - `turnstileSiteKey` string
      - `turnstileSecretKeyHint` string: The real secret is never returned - this is a decrypt-and-mask hint showing it's set (e.g. "ab**...**yz").
      - `turnstileTheme` 'light' | 'dark' | 'auto'
      - `turnstileSize` 'normal' | 'compact' | 'flexible'
      - `turnstileAppearance` 'always' | 'execute' | 'interaction-only'
      - `emailPlaceholder` string
      - `captchaPlaceholder` string
      - `formFontStyle` string
      - `formFontColor` string
      - `formFontSize` string
      - `btnLabel` string
      - `btnFont` string
      - `btnFontColor` string
      - `btnColor` string
      - `btnFontSize` string
      - `successMessage` string
      - `successFont` string
      - `successFontColor` string
      - `successFontSize` string
      - `redirectLink` string: Where a visitor lands immediately after submitting the form - used when double opt-in is off, or is on but not yet confirmed. Different from doubleOptIn.redirectLink below.
      - `termsAndConditions` object
        - `show` boolean
        - `label` string
        - `linkLabel` string
        - `link` string
      - `propertiesStyle` object: Per custom-contact-field display settings, keyed by field name: { show, required, placeholder, order }.
      - `doubleOptIn` object
        - `active` boolean
        - `redirectLink` string: Where a visitor lands after clicking the confirmation link in their email. Only relevant when active is true. Different from the top-level redirectLink above.
        - `emailId` string: A transactional email _id used to send the confirmation email. Its content must include {{verifyLink}}.
        - `confirmationTitle` string
        - `confirmationMessage` string
      - `createdAt` string, date-time
      - `updatedAt` string, date-time
    - `count` integer: Total matching items across all pages, not just this page.
    - `next` string, nullable: Full URL (path + query string) of the next page, or null if this is the last page.

## Other responses

- `403`: Missing or invalid API key

---

[API](https://skmtc.dev/bluefox/apis/bluefox-email-public-api.md) · [All operations](https://skmtc.dev/bluefox/apis/bluefox-email-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/bluefox/apis/bluefox-email-public-api/revisions/fa1a0a835c7f?raw)
