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

# Retrieve Monitor

> Fetch one monitor with its stats. The webhook signing secret is never returned here. Free (0 credits).



## OpenAPI

````yaml GET /monitors/{id}
openapi: 3.1.0
info:
  title: Monitoring API
  description: >-
    Manage account monitoring over REST. A monitor is a named group of watch
    targets (company domains, LinkedIn company pages, or LinkedIn member
    profiles) with its own signal-type selection and an optional webhook
    endpoint. Create monitors, add and remove targets, change what a monitor
    listens for, pause it, and delete it. The dashboard Monitoring page calls
    the same code path, so monitors created in either place are fully manageable
    from the other.
  license:
    name: MIT
  version: 2.0.0
servers:
  - url: https://www.trysignalbase.com/api/v2
security:
  - bearerAuth: []
paths:
  /monitors/{id}:
    get:
      summary: Retrieve Monitor
      description: >-
        Fetch one monitor with its stats. The webhook signing secret is never
        returned here. Free (0 credits).
      operationId: getMonitor
      parameters:
        - $ref: '#/components/parameters/MonitorId'
      responses:
        '200':
          description: The monitor.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MonitorResponse'
              example:
                success: true
                data:
                  id: 29681a72-ed3d-41a8-b119-2c2942b34996
                  name: Key accounts
                  signal_types:
                    - funding_round
                    - hiring
                  active: true
                  webhook:
                    id: 4141b666-835e-482d-8074-22c02eaf196a
                    endpoint_url: https://example.com/hooks/signalbase
                  stats:
                    targets: 4
                    resolved_targets: 2
                    signals_30d: 1
                    last_delivery_at: '2026-09-19T08:00:00.000Z'
                  created_at: '2026-09-20T13:10:38.502Z'
                  updated_at: '2026-09-20T13:10:41.540Z'
                meta:
                  endpoint: monitors.get
                  creditsUsed: 0
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/SubscriptionExpired'
        '404':
          $ref: '#/components/responses/MonitorNotFound'
        '429':
          $ref: '#/components/responses/RateLimited'
        '500':
          $ref: '#/components/responses/InternalError'
components:
  parameters:
    MonitorId:
      name: id
      in: path
      required: true
      description: The monitor ID.
      schema:
        type: string
  schemas:
    MonitorResponse:
      type: object
      required:
        - success
        - data
        - meta
      properties:
        success:
          type: boolean
          const: true
        data:
          $ref: '#/components/schemas/Monitor'
        meta:
          $ref: '#/components/schemas/ResponseMeta'
    Monitor:
      type: object
      required:
        - id
        - name
        - signal_types
        - active
        - webhook
        - stats
        - created_at
        - updated_at
      properties:
        id:
          type: string
          description: Unique monitor ID (UUID).
        name:
          type: string
          description: Display name.
        signal_types:
          type: array
          items:
            $ref: '#/components/schemas/SignalType'
          description: Signal types this monitor delivers.
        active:
          type: boolean
          description: 'false = paused: targets are kept, nothing is delivered.'
        webhook:
          oneOf:
            - $ref: '#/components/schemas/MonitorWebhook'
            - type: 'null'
          description: The monitor's webhook, or null for an email-only monitor.
        stats:
          oneOf:
            - $ref: '#/components/schemas/MonitorStats'
            - type: 'null'
          description: >-
            Monitor statistics. null only in the rare case where an Update
            Monitor request was applied but its statistics could not be read
            back — the update itself succeeded; call Retrieve Monitor for the
            numbers.
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
    ResponseMeta:
      type: object
      required:
        - endpoint
        - creditsUsed
      properties:
        endpoint:
          type: string
          description: Endpoint identifier (e.g. monitors.create).
        creditsUsed:
          type: integer
          minimum: 0
          description: >-
            API credits consumed by this request. Always 0 for the Monitoring
            API.
    ErrorResponse:
      type: object
      required:
        - success
        - error
        - code
      properties:
        success:
          type: boolean
          const: false
        error:
          type: string
          description: Human-readable error message.
        code:
          type: string
          enum:
            - bad_request
            - invalid_api_key
            - subscription_expired
            - not_found
            - rate_limited
            - internal_server_error
            - internal_error
        retryAfter:
          type: integer
          description: >-
            Seconds until a retry is recommended. Present on rate-limit (429)
            responses.
    SignalType:
      type: string
      enum:
        - funding_round
        - acquisition
        - job_change
        - hiring
      description: >-
        A signal type a monitor can listen for. funding_round = the company
        raised a round; acquisition = the company acquired or was acquired;
        job_change = someone joined or left the company; hiring = the company
        posted a new job.
    MonitorWebhook:
      type: object
      required:
        - id
        - endpoint_url
      description: The webhook subscription owned by this monitor.
      properties:
        id:
          type: string
          description: >-
            Webhook subscription ID. Usable with the Webhooks API to send a test
            event, list deliveries, retry a failed delivery, or rotate the
            secret. Editing or deleting it through the Webhooks API is rejected
            with 409 — manage it with Update Monitor.
        endpoint_url:
          type:
            - string
            - 'null'
          description: The endpoint that receives this monitor's signals.
        secret:
          type: string
          description: >-
            Signing secret for verifying deliveries. Present ONLY in the
            response to the request that created this endpoint (Create Monitor
            with webhook_url, or Update Monitor with a new webhook_url).
    MonitorStats:
      type: object
      required:
        - targets
        - resolved_targets
        - signals_30d
        - last_delivery_at
      properties:
        targets:
          type: integer
          minimum: 0
          description: Number of targets in the monitor.
        resolved_targets:
          type: integer
          minimum: 0
          description: Targets matched to a company (status resolved).
        signals_30d:
          type: integer
          minimum: 0
          description: >-
            Signals of any type recorded in the last 30 days for the monitor's
            resolved companies.
        last_delivery_at:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            Most recent successful delivery from this monitor (webhook or
            email), or null if none yet.
  responses:
    Unauthorized:
      description: Missing or invalid API key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            success: false
            error: Invalid API key. No key found.
            code: invalid_api_key
    SubscriptionExpired:
      description: The API key belongs to a team without an active subscription.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            success: false
            error: >-
              Subscription expired. Please upgrade your subscription:
              https://www.trysignalbase.com/#pricing
            code: subscription_expired
    MonitorNotFound:
      description: No monitor with that ID exists for the authenticated team.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            success: false
            error: Monitor not found
            code: not_found
    RateLimited:
      description: >-
        Rate limit exceeded for this team and endpoint. The response also sets
        Retry-After, X-RateLimit-Limit, X-RateLimit-Remaining, and
        X-RateLimit-Reset headers.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            success: false
            error: Too many requests. Please upgrade your plan or slow down.
            code: rate_limited
            retryAfter: 60
    InternalError:
      description: Unexpected server error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            success: false
            error: An unknown error occurred
            code: internal_error
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API key
      description: >-
        Signalbase API key. Include as a Bearer token in the Authorization
        header.

````