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

# List event monitors

> Returns all event monitors created by the authenticated user.



## OpenAPI

````yaml catch-all-api get /catchAll/monitors
openapi: 3.1.0
info:
  title: NewsCatcher CatchAll API
  version: 1.8.1
  description: >
    CatchAll is a web search API that generates unique datasets that don't exist
    anywhere else on the web. Built on NewsCatcher's proprietary real-world
    event index, it delivers state-of-the-art recall—finding all relevant
    events, not just top results.


    ### Authentication


    All endpoints except /health and /version require `x-api-key` header. If the
    key is invalid or missing, the API returns the `403 Forbidden` error.


    ### Job workflow


    1. (Optional) Get suggestions via /catchAll/initialize

    2. Submit a query via /catchAll/submit with optional date ranges and custom
    validators/enrichments

    3. Poll /catchAll/status/{job_id} until completed (10-15 minutes)

    4. Retrieve results via /catchAll/pull/{job_id}


    ### Event monitor workflow


    1. Create successful job via /catchAll/submit

    2. Create event monitor via /catchAll/monitors/create with schedule

    3. Retrieve aggregated results via /catchAll/monitors/pull/{monitor_id}


    ### Webhook workflow


    1. Create a webhook via `POST /catchAll/webhooks`

    2. Attach it to a job or event monitor via `POST
    /catchAll/webhooks/{webhook_id}/resources`,
       or pass `webhook_ids` at job or event monitor creation time
    3. Receive HTTP notifications at the configured URL when each job completes


    ### Company search workflow


    1. Create a dataset via `POST /catchAll/datasets/` or `POST
    /catchAll/datasets/upload`

    2. Wait for the dataset `latest_status` to reach `ready`

    3. Submit a job with `connected_dataset_ids` pointing to your dataset

    4. Retrieve results — each record includes a `connected_entities` array
       with relevance scores per matched company

    ### Important notes


    **Dynamic schemas**: Response schemas are generated dynamically by LLMs.
    Field names in the `enrichment` object may vary and are not deterministic
    across jobs unless explicitly specified.
  contact:
    name: NewsCatcher
    url: https://newscatcherapi.com
    email: support@newscatcherapi.com
servers:
  - url: https://catchall.newscatcherapi.com
    description: Production server
security:
  - ApiKeyAuth: []
tags:
  - name: Jobs
    description: Operations to create, monitor, and retrieve job results.
    externalDocs:
      description: Learn about job lifecycle and status tracking
      url: >-
        https://www.newscatcherapi.com/docs/web-search-api/get-started/quickstart
  - name: Event Monitors
    description: Operations to create, operate and retrieve event monitor results.
    externalDocs:
      description: >-
        Automate recurring queries with scheduled jobs and webhook
        notifications.
      url: >-
        https://www.newscatcherapi.com/docs/web-search-api/concepts/event-monitors
  - name: Webhooks
    description: >
      Operations to create and manage reusable webhook endpoints.


      A webhook is a named HTTP endpoint that receives a POST notification

      when a job or event monitor completes. Create webhooks once at the
      organization

      level and attach them to any number of jobs or event monitors via
      `webhook_ids`.

      Supports Slack, Microsoft Teams, and generic HTTP targets with
      configurable

      delivery modes, authentication, and headers.
    externalDocs:
      description: Learn about centralized webhooks and notification setup
      url: >-
        https://www.newscatcherapi.com/docs/web-search-api/guides-and-concepts/webhooks
  - name: Entities
    description: >
      Operations to create, update, and delete company entities.


      Entities are the building blocks of Company Monitors. Each entity
      represents

      a company (or person) you want to track. Add identifying information such
      as

      domain, alternative names, and key persons to improve matching quality.
    externalDocs:
      description: Learn about Company Monitors and entities
      url: >-
        https://www.newscatcherapi.com/docs/web-search-api/concepts/company-monitors
  - name: Datasets
    description: >
      Operations to create and manage datasets of entities.


      A dataset is a named collection of entities — think of it as a watchlist
      or

      portfolio. Connect a dataset to a job via `connected_dataset_ids` to
      activate

      Company Monitors. Datasets can be reused across multiple jobs and event
      monitors.
    externalDocs:
      description: Learn about datasets and Company Monitors
      url: >-
        https://www.newscatcherapi.com/docs/web-search-api/concepts/company-monitors
  - name: Projects
    description: >
      Operations to create, organize, and manage projects.


      A project is a named container for jobs, event monitors, and datasets.
      Group

      related resources by use case, team, or client, and share them with

      teammates. Resources can be assigned at creation time or post-hoc.
    externalDocs:
      description: Learn about projects and resource organization
      url: https://www.newscatcherapi.com/docs/web-search-api/concepts/projects
  - name: Meta
    description: Operations to check API health and version.
externalDocs:
  description: Find out more about NewsCatcher CatchAll API
  url: https://www.newscatcherapi.com/docs/web-search-api/get-started/introduction
paths:
  /catchAll/monitors:
    get:
      tags:
        - Event Monitors
      summary: List event monitors
      description: Returns all event monitors created by the authenticated user.
      operationId: listMonitors
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/Search'
        - $ref: '#/components/parameters/Ownership'
        - $ref: '#/components/parameters/ProjectIdQuery'
      responses:
        '200':
          $ref: '#/components/responses/ListMonitorsResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '422':
          $ref: '#/components/responses/ValidationError'
components:
  parameters:
    Page:
      name: page
      in: query
      required: false
      schema:
        type: integer
        default: 1
        minimum: 1
      description: |
        Page number to retrieve.
    PageSize:
      name: page_size
      in: query
      required: false
      schema:
        type: integer
        default: 100
        minimum: 1
        maximum: 1000
      description: |
        Number of records per page.
    Search:
      name: search
      in: query
      required: false
      schema:
        type: string
      description: Filter results by text (case-insensitive substring match).
    Ownership:
      name: ownership
      in: query
      required: false
      schema:
        $ref: '#/components/schemas/OwnershipFilter'
    ProjectIdQuery:
      name: project_id
      in: query
      required: false
      description: Filter results to resources belonging to this project.
      schema:
        type: string
        format: uuid
      example: 60a85db4-78ec-4b78-876a-bc7d9cdadd04
  responses:
    ListMonitorsResponse:
      description: List of user event monitors
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ListMonitorsResponseDto'
          example:
            total: 3
            page: 1
            page_size: 100
            total_pages: 1
            monitors:
              - monitor_id: 7f3a8b2c-1e4d-4a5b-9c8d-6e7f8a9b0c1d
                reference_job_id: 5f0c9087-85cb-4917-b3c7-e5a5eff73a0c
                reference_job_query: Series B funding rounds for SaaS startups
                enabled: true
                schedule: 0 12 * * *
                schedule_human_readable: Every day at 12 PM
                timezone: UTC
                created_at: '2026-02-24T14:00:00Z'
                webhook:
                  url: https://example.com/webhook
                  method: POST
                user_key: '***...a1b2'
    UnauthorizedError:
      description: >
        The caller could not be identified: the `x-api-key` header is missing,
        the key is

        unknown or disabled, or the key belongs to a different organization than
        the one

        requested.


        Once identity is established, an access failure returns `403` instead.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            detail: X-API-Key header is required for this endpoint
    ForbiddenError:
      description: >
        Authenticated, but not allowed to perform this request — for example the
        user is

        not a member of the requested organization, has no active API key in it,
        or the

        resource belongs to another organization.


        A missing, unknown, or disabled API key returns `401`, not `403`.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    ValidationError:
      description: Validation error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ValidationErrorResponse'
  schemas:
    OwnershipFilter:
      type: string
      enum:
        - all
        - own
        - shared
      default: all
      description: |
        Controls which resources are returned based on ownership.

        - `all`: Returns resources owned by the user and resources shared
          with them (default, backward compatible).
        - `own`: Returns only resources created by the authenticated user.
        - `shared`: Returns only resources shared with the user by others.
    ListMonitorsResponseDto:
      type: object
      required:
        - total
        - page
        - page_size
        - total_pages
        - monitors
      properties:
        total:
          type: integer
          description: Total number of event monitors for this user.
          example: 3
        page:
          type: integer
          description: Current page number.
          example: 1
        page_size:
          type: integer
          description: Number of event monitors per page.
          example: 100
        total_pages:
          type: integer
          description: Total number of pages available.
          example: 1
        monitors:
          type: array
          items:
            $ref: '#/components/schemas/MonitorListItemDto'
          description: Array of event monitor summaries.
    Error:
      type: object
      properties:
        detail:
          type: string
          description: Error message.
          example: Invalid API key
    ValidationErrorResponse:
      type: object
      properties:
        detail:
          type: array
          items:
            $ref: '#/components/schemas/ValidationErrorDetail'
    MonitorListItemDto:
      type: object
      required:
        - monitor_id
        - reference_job_id
        - reference_job_query
        - enabled
      properties:
        monitor_id:
          type: string
          format: uuid
          description: Event monitor identifier.
          example: 7f3a8b2c-1e4d-4a5b-9c8d-6e7f8a9b0c1d
        reference_job_id:
          type: string
          format: uuid
          description: Job identifier used as a reference for this event monitor.
          example: 5f0c9087-85cb-4917-b3c7-e5a5eff73a0c
        reference_job_query:
          type: string
          description: Plain text query from the reference job.
          example: Series B funding rounds for SaaS startups
        enabled:
          type: boolean
          description: True if the event monitor is currently active; false otherwise.
          example: true
        schedule:
          type: string
          description: Cron expression for event monitor schedule.
          example: 0 12 * * *
        schedule_human_readable:
          type: string
          description: The event monitor schedule in a plain text format.
          example: Every 24 hours
        timezone:
          type: string
          description: Timezone for schedule execution.
          example: UTC
        created_at:
          type: string
          format: date-time
          description: The date when the event monitor was created.
          example: '2025-10-23T14:30:00Z'
        webhook:
          oneOf:
            - $ref: '#/components/schemas/WebhookDto'
            - type: 'null'
          description: Webhook configuration for this event monitor, or null if not set.
        user_key:
          type: string
          description: Masked API key associated with this event monitor.
          example: '***...a1b2'
        sharing_info:
          allOf:
            - $ref: '#/components/schemas/SharingInfo'
          description: >
            Present when this event monitor was shared with the authenticated
            user. Omitted when the user owns the event monitor.
    ValidationErrorDetail:
      type: object
      properties:
        loc:
          type: array
          items:
            oneOf:
              - type: string
              - type: integer
          description: Location of the validation error
        msg:
          type: string
          description: Error message
        type:
          type: string
          description: Error type
    WebhookDto:
      type: object
      required:
        - url
      properties:
        url:
          type: string
          format: uri
          description: Webhook endpoint URL.
        method:
          type: string
          enum:
            - POST
            - PUT
          default: POST
          description: HTTP method to use.
        headers:
          type: object
          additionalProperties:
            type: string
          description: HTTP headers to include in request.
        params:
          type: object
          description: Query string parameters.
        auth:
          type: array
          items:
            type: string
          minItems: 2
          maxItems: 2
          description: Basic auth credentials [username, password].
    SharingInfo:
      type: object
      description: |
        Present on resources shared with the authenticated user by another
        organization member. Omitted entirely on resources the user owns.
      required:
        - shared_at
        - permission
        - shared_by
      properties:
        shared_at:
          type: string
          format: date-time
          description: When the resource was shared.
          example: '2026-04-15T12:00:00Z'
        permission:
          type: string
          enum:
            - view
            - edit
            - manage
          description: Permission level granted to the recipient.
          example: view
        shared_by:
          type: string
          description: |
            Display name of the user who shared the resource (first + last
            name). Falls back to email address, then user ID.
          example: John Doe
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: API key for authentication.

````