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

# Create live watchlist from tags

> This endpoint creates a live watchlist by specifying which tags to monitor:

- When **new** matching events and markets are **created** on Polymarket, they will automatically be added to the watchlist if `automaticallyAddMatchingEvents` is set to true (default).
- When events and markets are **closed** on Polymarket, they will automatically be removed from the watchlist.

In order to receive alerts when new events and markets are created or existing ones are closed, [you can create a `New or closed events and markets` subscription for the watchlist](/api-reference/alerts/create-a-subscription).

## Request Formats

### V2 Format (Recommended)
Uses explicit `includeTags`/`excludeTags` arrays:
```json
{
  "name": "Sports & Esports",
  "includeTags": ["sports", "esports"],
  "excludeTags": ["politics"],
  "matchOperator": "OR",
  "automaticallyAddMatchingEvents": true
}
```

### V1 Format (Deprecated - will be removed in future version)
Uses `tags` array with `include` boolean:
```json
{
  "name": "Sports & Esports",
  "tags": [
    {"tagSlug": "sports", "include": true},
    {"tagSlug": "esports", "include": true}
  ],
  "searchMatchOperator": "OR"
}
```




## OpenAPI

````yaml openapi.json post /watchlists/create-from-tags
openapi: 3.0.0
info:
  title: Nevua Markets API
  version: 0.0.1
  license:
    name: ISC
    url: https://opensource.org/licenses/ISC
servers:
  - url: https://api.nevua.markets
    description: Production
security: []
tags: []
paths:
  /watchlists/create-from-tags:
    post:
      tags:
        - Watchlists
      summary: Create live watchlist from tags
      description: >
        This endpoint creates a live watchlist by specifying which tags to
        monitor:


        - When **new** matching events and markets are **created** on
        Polymarket, they will automatically be added to the watchlist if
        `automaticallyAddMatchingEvents` is set to true (default).

        - When events and markets are **closed** on Polymarket, they will
        automatically be removed from the watchlist.


        In order to receive alerts when new events and markets are created or
        existing ones are closed, [you can create a `New or closed events and
        markets` subscription for the
        watchlist](/api-reference/alerts/create-a-subscription).


        ## Request Formats


        ### V2 Format (Recommended)

        Uses explicit `includeTags`/`excludeTags` arrays:

        ```json

        {
          "name": "Sports & Esports",
          "includeTags": ["sports", "esports"],
          "excludeTags": ["politics"],
          "matchOperator": "OR",
          "automaticallyAddMatchingEvents": true
        }

        ```


        ### V1 Format (Deprecated - will be removed in future version)

        Uses `tags` array with `include` boolean:

        ```json

        {
          "name": "Sports & Esports",
          "tags": [
            {"tagSlug": "sports", "include": true},
            {"tagSlug": "esports", "include": true}
          ],
          "searchMatchOperator": "OR"
        }

        ```
      operationId: createWatchlistFromTags
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/CreateWatchListFromTagsJSONRequestV2'
                - $ref: '#/components/schemas/CreateWatchListFromTagsJSONRequest'
            examples:
              v2_sports_watchlist:
                summary: V2 - Sports watchlist (recommended)
                value:
                  name: Sports & Esports
                  includeTags:
                    - sports
                    - esports
                  matchOperator: OR
                  automaticallyAddMatchingEvents: true
              v2_crypto_exclude:
                summary: V2 - Crypto with exclusions
                value:
                  name: Crypto (no memes)
                  includeTags:
                    - crypto
                  excludeTags:
                    - meme-coins
                  matchOperator: OR
              v1_sports_watchlist:
                summary: V1 - Sports watchlist (deprecated)
                value:
                  name: Sports & Esports
                  tags:
                    - tagSlug: sports
                      include: true
                    - tagSlug: esports
                      include: true
                  searchMatchOperator: OR
                  automaticallyAddMatchingEvents: true
      responses:
        '200':
          description: Watchlist created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateWatchListFromTagsJSONResponse'
              examples:
                success:
                  summary: Successful watchlist creation
                  value:
                    watchListId: 507f1f77bcf86cd799439011
                    watchListName: Sports & Entertainment
                    eventCount: 25
                    marketCount: 67
        '400':
          description: Bad request - validation error
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
              examples:
                invalid_name_length:
                  summary: Invalid watchlist name length
                  value:
                    error: Watchlist name must be between 1 and 100 characters
                empty_name:
                  summary: Empty watchlist name
                  value:
                    error: Watchlist name must be between 1 and 100 characters
        '401':
          description: Unauthorized - invalid or missing authentication token
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        '404':
          description: User not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
              examples:
                user_not_found:
                  summary: User not found
                  value:
                    error: User not found and/or invalid API key
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
      security:
        - bearerAuth: []
components:
  schemas:
    CreateWatchListFromTagsJSONRequestV2:
      type: object
      properties:
        name:
          type: string
        includeTags:
          type: array
          items:
            type: string
        excludeTags:
          type: array
          items:
            type: string
        matchOperator:
          $ref: '#/components/schemas/SearchMatchOperator'
        automaticallyAddMatchingEvents:
          type: boolean
      additionalProperties: false
      required:
        - includeTags
        - matchOperator
        - name
    CreateWatchListFromTagsJSONRequest:
      type: object
      properties:
        name:
          type: string
        tags:
          type: array
          items:
            $ref: '#/components/schemas/SearchTag'
        searchMatchOperator:
          $ref: '#/components/schemas/SearchMatchOperator'
        automaticallyAddMatchingEvents:
          type: boolean
      additionalProperties: false
      required:
        - name
        - searchMatchOperator
        - tags
    CreateWatchListFromTagsJSONResponse:
      type: object
      properties:
        watchListId:
          type: string
        watchListName:
          type: string
        eventCount:
          type: number
        marketCount:
          type: number
      additionalProperties: false
      required:
        - eventCount
        - marketCount
        - watchListId
        - watchListName
    SearchMatchOperator:
      type: string
      enum:
        - AND
        - OR
    SearchTag:
      type: object
      properties:
        tagSlug:
          type: string
        include:
          type: boolean
      additionalProperties: false
      required:
        - tagSlug
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````