> ## 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.

# List Watched Brands

> The brands you watch, like competitors, and how many of their emails are in

List the brands your company watches, usually competitors, newest watch first. This is the dashboard's **Competitors** page. Read their emails with [List Watched Brand Emails](/api-reference/references/watchlist-emails).

A brand already in the [Sequenzy email gallery](https://sequenzy.com/email-examples) is `available`, with `emailCount` and `latestEmailAt`. A brand that isn't in the gallery yet is requested when you watch it: it moves from `requested` to `collecting` once it is added, then to `available` once its emails are in. A watch is a brand request, so [List Brand Requests](/api-reference/references/brand-requests-list) returns the same rows.

Requires the `templates:read` scope.

```bash theme={null}
curl "https://api.sequenzy.com/api/v1/gallery/watchlist" \
  -H "Authorization: Bearer YOUR_API_KEY"
```

## Response

<ResponseField name="watchlist" type="object[]">
  Your watched brands, newest watch first.

  <Expandable title="properties">
    <ResponseField name="id" type="string">Watch ID, also the ID of its brand request.</ResponseField>
    <ResponseField name="domain" type="string">The brand's registrable domain, such as `linear.app`.</ResponseField>
    <ResponseField name="note" type="string | null">What you want to see from the brand.</ResponseField>
    <ResponseField name="status" type="string">`available` (its emails are in the gallery), `requested` (not in the gallery yet), `collecting` (added, emails being collected) or `declined`.</ResponseField>
    <ResponseField name="declineReason" type="string | null">Why the brand won't be added, when declined.</ResponseField>
    <ResponseField name="watchedAt" type="string">When you started watching (ISO 8601).</ResponseField>
    <ResponseField name="emailCount" type="integer">The brand's emails in the gallery. `0` unless `available`.</ResponseField>
    <ResponseField name="latestEmailAt" type="string | null">When its newest email in the gallery was sent. `null` unless `available`.</ResponseField>
    <ResponseField name="brand" type="object | null">Once `available`: the gallery brand's `name`, `slug` and `url`.</ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="limit" type="integer">
  How many watches and brand requests your company can keep together.
</ResponseField>

<ResponseExample>
  ```json 200 theme={null}
  {
    "success": true,
    "watchlist": [
      {
        "id": "req_8fk2",
        "domain": "linear.app",
        "note": "Their launch emails",
        "status": "available",
        "declineReason": null,
        "watchedAt": "2026-10-01T09:12:00.000Z",
        "emailCount": 42,
        "latestEmailAt": "2026-10-03T16:05:00.000Z",
        "brand": {
          "name": "Linear",
          "slug": "linear",
          "url": "https://sequenzy.com/email-examples/brands/linear"
        }
      },
      {
        "id": "req_3jd9",
        "domain": "competitor.com",
        "note": null,
        "status": "requested",
        "declineReason": null,
        "watchedAt": "2026-10-02T15:40:00.000Z",
        "emailCount": 0,
        "latestEmailAt": null,
        "brand": null
      }
    ],
    "limit": 50
  }
  ```

  ```json 401 theme={null}
  {
    "error": "Invalid API key"
  }
  ```

  ```json 403 theme={null}
  {
    "error": "API key is missing required scope: templates:read"
  }
  ```
</ResponseExample>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.