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

# Update watchlist item

> Partial update. Send only the fields you want to change; omitted fields are
left untouched. To clear a nullable field, send it explicitly as `null`.

Changes, including `change_type`, reach active stream connections within
60 seconds without a reconnect.

**Cost:** free.




## OpenAPI

````yaml /openapi.yaml patch /watchlist/{id}
openapi: 3.1.0
info:
  title: Eventory API
  version: '1.0'
  description: >
    Every HTTP endpoint of the Eventory platform, reached through the single
    public

    gateway at `https://api.eventory.ai`. The real-time notification stream is a

    WebSocket and is documented separately under **Real-time stream**.


    Authenticate every request with the `apikey` header. Each endpoint lists its

    credit cost; see **Credits & access** for how billing works.
  contact:
    name: Eventory
    url: https://eventory.ai
servers:
  - url: https://api.eventory.ai
    description: Production
security:
  - apiKey: []
tags:
  - name: Market Data
    description: |
      Historical and aggregated marketplace data for events and artists, plus
      full-text search over the Eventory catalog. Polling API.
      **1 credit per request** (sales list scales with rows requested).
  - name: Live Availability
    description: >
      On-demand scrape of the current ticket availability for one event on one
      of

      the eleven supported platforms. **5 credits per request.**
  - name: Watchlist
    description: |
      Manage the events your account monitors. The watchlist drives the
      real-time stream. **Free.**
  - name: Account
    description: Your plan and credit usage, live from billing. **Free.**
paths:
  /watchlist/{id}:
    parameters:
      - name: id
        in: path
        required: true
        description: Watchlist item id, as returned on create.
        schema:
          type: integer
          example: 123
    patch:
      tags:
        - Watchlist
      summary: Update watchlist item
      description: >
        Partial update. Send only the fields you want to change; omitted fields
        are

        left untouched. To clear a nullable field, send it explicitly as `null`.


        Changes, including `change_type`, reach active stream connections within

        60 seconds without a reconnect.


        **Cost:** free.
      operationId: updateWatchlistItem
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WatchlistItemUpdate'
            example:
              seat_quantity: 4
              task_active: true
      responses:
        '200':
          description: The full updated item.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WatchlistItem'
        '400':
          description: Invalid input.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WatchlistError'
        '401':
          $ref: '#/components/responses/Unauthenticated'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/WatchlistNotFound'
        '429':
          $ref: '#/components/responses/RateLimited'
components:
  schemas:
    WatchlistItemUpdate:
      allOf:
        - type: object
          properties:
            website:
              type: string
            event:
              type: string
            region:
              type: string
        - $ref: '#/components/schemas/WatchlistFilters'
    WatchlistItem:
      allOf:
        - type: object
          required:
            - id
            - client_id
            - created_at
            - updated_at
            - deleted
          properties:
            id:
              type: integer
              description: Assigned on create. Use it in the URL path.
            client_id:
              type: integer
              description: The account that owns this item.
            created_at:
              type: string
              format: date-time
            updated_at:
              type: string
              format: date-time
            deleted:
              type: boolean
              description: Soft-delete flag
              managed by `DELETE`.: null
        - $ref: '#/components/schemas/WatchlistIdentity'
        - $ref: '#/components/schemas/WatchlistFilters'
      example:
        id: 123
        client_id: 42
        website: ticketmaster
        event: 0200642CF18CAA24
        region: US
        min_price_filter: null
        max_price_filter: 250
        min_avg_price_threshold: null
        max_avg_price_threshold: null
        stock_threshold_filter: 1
        stock_threshold_filter_max: null
        seat_quantity: 2
        priority: 0
        section: null
        keywords: null
        date_filter: null
        row_filter: null
        change_type: stock_increase
        standard_tickets: true
        resale_tickets: false
        general_admission_tickets: false
        platinum_tickets: false
        no_restricted_view: false
        no_accessibility: false
        no_presale: false
        auto_add_to_watchlist: false
        task_active: true
        muted_until: null
        notes: null
        tm_did: null
        roles_json: null
        webhook_setting_id: null
        role_id: null
        website_id: null
        created_at: '2026-06-18T09:20:00Z'
        updated_at: '2026-06-18T09:20:00Z'
        deleted: false
    WatchlistError:
      type: object
      required:
        - error
      properties:
        error:
          type: string
    WatchlistFilters:
      type: object
      description: Optional filters and options. Omit a field to keep the server default.
      properties:
        min_price_filter:
          type:
            - number
            - 'null'
          description: Ignore tickets priced below this.
        max_price_filter:
          type:
            - number
            - 'null'
          description: Ignore tickets priced above this.
        min_avg_price_threshold:
          type:
            - number
            - 'null'
        max_avg_price_threshold:
          type:
            - number
            - 'null'
        stock_threshold_filter:
          type:
            - integer
            - 'null'
          description: Minimum available stock to notify on.
        stock_threshold_filter_max:
          type:
            - integer
            - 'null'
          description: Maximum available stock to notify on.
        seat_quantity:
          type:
            - integer
            - 'null'
          description: Number of contiguous seats wanted.
        priority:
          type:
            - integer
            - 'null'
        section:
          type:
            - string
            - 'null'
          description: Restrict to a section name.
        keywords:
          type:
            - string
            - 'null'
        date_filter:
          type:
            - string
            - 'null'
        row_filter:
          type:
            - string
            - 'null'
        change_type:
          type:
            - string
            - 'null'
          description: >-
            Which change triggers a notification. The stream enforces this
            server-side.
          enum:
            - stock_increase
            - price_decrease
            - price_increase
            - null
          default: stock_increase
        standard_tickets:
          type:
            - boolean
            - 'null'
        resale_tickets:
          type:
            - boolean
            - 'null'
        general_admission_tickets:
          type:
            - boolean
            - 'null'
        platinum_tickets:
          type:
            - boolean
            - 'null'
        no_restricted_view:
          type:
            - boolean
            - 'null'
        no_accessibility:
          type:
            - boolean
            - 'null'
        no_presale:
          type:
            - boolean
            - 'null'
        auto_add_to_watchlist:
          type:
            - boolean
            - 'null'
        task_active:
          type:
            - boolean
            - 'null'
          description: Whether monitoring for this item is active.
        muted_until:
          type:
            - string
            - 'null'
          format: date-time
          description: Suppress notifications until this time.
        notes:
          type:
            - string
            - 'null'
        tm_did:
          type:
            - string
            - 'null'
          description: Ticketmaster device id.
        roles_json:
          description: Pass-through JSON; treat as opaque.
          oneOf:
            - type: object
              additionalProperties: true
            - type: array
              items: {}
            - type: 'null'
        webhook_setting_id:
          type:
            - integer
            - 'null'
        role_id:
          type:
            - integer
            - 'null'
        website_id:
          type:
            - integer
            - 'null'
    WatchlistIdentity:
      type: object
      required:
        - website
        - event
        - region
      properties:
        website:
          type: string
          description: Platform to monitor, e.g. `ticketmaster`.
          example: ticketmaster
        event:
          type: string
          description: Event identifier on that platform.
          example: 0200642CF18CAA24
        region:
          type: string
          description: Region or market, e.g. `US`.
          example: US
    GatewayError:
      type: object
      description: >
        Envelope for every failure decided by the gateway (auth, ACL, billing,

        rate limit, unknown route, upstream 5xx). Key on `code`; `message` is
        prose

        and may change.
      required:
        - error
      properties:
        error:
          type: object
          required:
            - code
            - message
          properties:
            code:
              type: string
              enum:
                - unauthenticated
                - invalid_credentials
                - forbidden
                - no_subscription
                - limit_reached
                - no_billing_account
                - plan_unavailable
                - payment_required
                - invalid_parameter
                - rate_limited
                - not_found
                - service_unavailable
            message:
              type: string
  responses:
    Unauthenticated:
      description: No credential was sent, or the key was rejected.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/GatewayError'
          examples:
            missing:
              value:
                error:
                  code: unauthenticated
                  message: Authentication is required to access this resource.
            invalid:
              value:
                error:
                  code: invalid_credentials
                  message: The provided credentials are invalid.
    Forbidden:
      description: >-
        The key is valid but not granted this route. Contact support to enable
        it.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/GatewayError'
          example:
            error:
              code: forbidden
              message: You do not have access to this resource.
    WatchlistNotFound:
      description: No item with that id belongs to your account.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/WatchlistError'
          example:
            error: watchlist item not found
    RateLimited:
      description: More than 30 requests in the current minute. Back off.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/GatewayError'
          example:
            error:
              code: rate_limited
              message: Rate limit exceeded.
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: apikey
      description: Your Eventory API key. Sent as the `apikey` request header.

````