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

# List job-change monitors

> List the monitors in a workspace with their schedule, results table, and active-profile and unread-event counts. Rate limit: 120 requests per fixed minute per API key, shared by all job-change monitor endpoints.

> [!NOTE]
>
> Job-change monitoring requires a **V2 workspace API key**. V1 (Bubble) API keys are not supported by these endpoints. Monitors and monitoring credits belong to the V2 workspace associated with the key.

List every job-change monitor in the authenticated workspace. Each monitor includes its status, schedule, results-table state, webhook state, active profile count, and unread event count.

> [!NOTE]
>
> This operation is read-only and does not change schedules or consume monitoring credits. It never returns a webhook signing secret.

Use the monitor `id` returned here with the detail, update, profile, and event operations. A paused monitor remains in the list so you can resume it later. If a create request's response was lost, list monitors before deciding whether to create another.

## Next step

Open [Get a monitor](https://docs.airscale.io/api-reference/job-change-monitors/get.md) for its profiles and latest events.


## OpenAPI

````yaml openapi.json GET /v1/job-change-monitors
openapi: 3.1.0
info:
  title: Airscale Public API
  version: '2026-09-11'
  description: >-
    Search, enrich, resolve public business data, and monitor job changes with
    Airscale.
  x-airscale-source-repository: ViceScale/airscale-code
  x-airscale-source-sha: 1de19e1b70a052a4b8d9c2075021a7e5e7a94d51
servers:
  - url: https://api.airscale.io
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Search and discovery
    description: Search people, companies, and the web.
  - name: Contact data
    description: Find professional and personal contact data.
  - name: Profiles and reverse lookup
    description: Extract profiles or resolve a person from known contact data.
  - name: Post engagement
    description: Retrieve and enrich people who liked or commented on LinkedIn posts.
  - name: LinkedIn content
    description: >-
      Search LinkedIn posts, read profile and company feeds, and retrieve
      profile comments and comment reactions.
  - name: Job change monitoring
    description: Track LinkedIn profiles and receive job-change events.
  - name: Account
    description: Inspect workspace account state.
  - name: Miscellaneous
    description: >-
      Find website technologies and check WhatsApp availability, Meta ads, and
      email deliverability.
paths:
  /v1/job-change-monitors:
    get:
      tags:
        - Job change monitoring
      summary: List job-change monitors
      description: >-
        Lists every job-change monitor in the authenticated workspace, including
        active-profile and unread-event counts. Signing secrets are never
        returned. Requires a V2 workspace API key. V1 (Bubble) API keys are not
        supported. Monitors and monitoring credits belong to the V2 workspace.
      operationId: listJobChangeMonitors
      responses:
        '200':
          description: The workspace monitors.
          content:
            application/json:
              schema:
                type: object
                additionalProperties: false
                required:
                  - monitors
                properties:
                  monitors:
                    type: array
                    items:
                      $ref: '#/components/schemas/JobChangeMonitor'
              examples:
                success:
                  summary: Successful response
                  value:
                    monitors:
                      - id: 11111111-1111-4111-8111-111111111111
                        name: CRM champions
                        frequency: every_30_days
                        status: active
                        results_table_id: 44444444-4444-4444-8444-444444444444
                        results_status: ready
                        results_error: null
                        next_check_at: '2026-11-02T10:00:00.000Z'
                        last_successful_check_at: null
                        created_at: '2026-11-02T10:00:00.000Z'
                        updated_at: '2026-11-02T10:00:00.000Z'
                        webhook_url: https://hooks.example.com/airscale/job-changes
                        webhook_configured: true
                        run_block_reason: null
                        run_block_detail: null
                        active_profile_count: 1
                        unread_event_count: 0
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          description: >-
            The API key has exceeded 120 requests in the current minute across
            job-change monitor endpoints. Wait for the Retry-After seconds
            before retrying.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          headers:
            Retry-After:
              description: Seconds to wait before retrying.
              schema:
                type: string
              example: '60'
        '503':
          description: Job change monitoring is temporarily unavailable or not enabled.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobChangeError'
components:
  schemas:
    JobChangeMonitor:
      type: object
      additionalProperties: false
      required:
        - id
        - name
        - frequency
        - status
        - results_table_id
        - results_status
        - results_error
        - next_check_at
        - last_successful_check_at
        - created_at
        - updated_at
        - webhook_url
        - webhook_configured
        - run_block_reason
        - run_block_detail
        - active_profile_count
        - unread_event_count
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
        frequency:
          type: string
          enum:
            - weekly
            - every_30_days
            - every_90_days
        status:
          type: string
          enum:
            - active
            - paused
            - running
            - setup_failed
        results_table_id:
          type:
            - string
            - 'null'
          description: >-
            The Airscale results table that receives one row per new job-change
            event. Null until the table exists.
        results_status:
          type: string
          enum:
            - pending
            - ready
            - blocked
          description: >-
            Whether the results table can receive rows. blocked means the table
            was deleted or is full; new rows stay pending.
        results_error:
          type:
            - string
            - 'null'
          description: Why results delivery is blocked, or null.
        next_check_at:
          type:
            - string
            - 'null'
          format: date-time
        last_successful_check_at:
          type:
            - string
            - 'null'
          format: date-time
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        webhook_url:
          type:
            - string
            - 'null'
          format: uri
        webhook_configured:
          type: boolean
        run_block_reason:
          type:
            - string
            - 'null'
          description: >-
            Why the latest check could not start or stopped early, for example
            insufficient_credits. Null when no block is active.
        run_block_detail:
          type:
            - object
            - 'null'
          additionalProperties: true
          description: >-
            Details for run_block_reason, such as stage, credits_needed and
            credits_available, or the checked and skipped counts of a run that
            stopped early.
        active_profile_count:
          type: integer
          minimum: 0
          maximum: 10000
        unread_event_count:
          type: integer
          minimum: 0
    Error:
      type: object
      additionalProperties: true
      properties:
        error:
          type: string
        message:
          type: string
    JobChangeError:
      type: object
      additionalProperties: false
      required:
        - error
      properties:
        error:
          type: object
          additionalProperties: false
          required:
            - code
            - message
          properties:
            code:
              type: string
            message:
              type: string
  responses:
    Unauthorized:
      description: The Bearer token is missing or invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API key
      description: >-
        Use an Airscale workspace API key. Never expose the key in client-side
        code.

````

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