> ## 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.

# List Targets

> List a monitor's targets, newest first, with each target's resolution status, matched company, and most recent signal. Offset-paginated; pagination.total is the number of targets matching the status filter. Free (0 credits).



## OpenAPI

````yaml GET /monitors/{id}/targets
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}/targets:
    get:
      summary: List Targets
      description: >-
        List a monitor's targets, newest first, with each target's resolution
        status, matched company, and most recent signal. Offset-paginated;
        pagination.total is the number of targets matching the status filter.
        Free (0 credits).
      operationId: listMonitorTargets
      parameters:
        - $ref: '#/components/parameters/MonitorId'
        - name: status
          in: query
          required: false
          description: >-
            Only return targets in this state. resolved = matched to a company,
            signals are flowing. pending = not matched yet; being researched
            automatically.
          schema:
            $ref: '#/components/schemas/TargetStatus'
        - name: limit
          in: query
          required: false
          description: Page size.
          schema:
            type: integer
            minimum: 1
            maximum: 200
            default: 100
        - name: offset
          in: query
          required: false
          description: Number of targets to skip.
          schema:
            type: integer
            minimum: 0
            default: 0
      responses:
        '200':
          description: A page of targets.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TargetListResponse'
              example:
                success: true
                data:
                  - id: 9530caa4-70c9-49a0-ae3a-dc7f3fe497c3
                    monitor_id: 29681a72-ed3d-41a8-b119-2c2942b34996
                    type: domain
                    value: acme.com
                    status: resolved
                    company:
                      id: 0b9f6f0e-2f0c-4a53-9a44-6d2b8a1c7e11
                      name: Acme
                      slug: acme
                      domain: acme.com
                      industry: Software
                      country: US
                    resolved_at: '2026-09-20T13:10:41.506Z'
                    last_signal_type: funding_round
                    last_signal_at: '2026-09-18T13:08:25.412Z'
                    created_at: '2026-09-20T13:10:41.507Z'
                  - id: f63a838c-4927-43c9-ba73-65fa46edd5c1
                    monitor_id: 29681a72-ed3d-41a8-b119-2c2942b34996
                    type: linkedin_company
                    value: linkedin.com/company/initech
                    status: pending
                    company: null
                    resolved_at: null
                    last_signal_type: null
                    last_signal_at: null
                    created_at: '2026-09-20T13:10:41.507Z'
                pagination:
                  limit: 100
                  offset: 0
                  count: 2
                  total: 2
                meta:
                  endpoint: monitors.targets.list
                  creditsUsed: 0
        '400':
          $ref: '#/components/responses/BadRequest'
        '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:
    TargetStatus:
      type: string
      enum:
        - resolved
        - pending
      description: >-
        resolved = matched to a company in the Signalbase database; its signals
        are delivered. pending = not matched yet; it is researched automatically
        and re-checked nightly, and delivers nothing until it resolves.
    TargetListResponse:
      type: object
      required:
        - success
        - data
        - pagination
        - meta
      properties:
        success:
          type: boolean
          const: true
        data:
          type: array
          items:
            $ref: '#/components/schemas/Target'
        pagination:
          $ref: '#/components/schemas/TargetPagination'
        meta:
          $ref: '#/components/schemas/ResponseMeta'
    Target:
      type: object
      required:
        - id
        - monitor_id
        - type
        - value
        - status
        - company
        - resolved_at
        - last_signal_type
        - last_signal_at
        - created_at
      properties:
        id:
          type: string
          description: Unique target ID (UUID).
        monitor_id:
          type: string
        type:
          $ref: '#/components/schemas/TargetType'
        value:
          type: string
          description: >-
            The normalized identifier: a bare domain (acme.com),
            linkedin.com/company/<slug>, or linkedin.com/in/<slug>.
        status:
          $ref: '#/components/schemas/TargetStatus'
        company:
          oneOf:
            - $ref: '#/components/schemas/TargetCompany'
            - type: 'null'
          description: Matched company; null while pending.
        resolved_at:
          type:
            - string
            - 'null'
          format: date-time
          description: When the target was matched to its company; null while pending.
        last_signal_type:
          type:
            - string
            - 'null'
          description: >-
            Type of the company's most recent signal (any type, not only the
            monitor's signal_types), or null.
        last_signal_at:
          type:
            - string
            - 'null'
          format: date-time
          description: When that signal occurred, or null.
        created_at:
          type: string
          format: date-time
    TargetPagination:
      type: object
      required:
        - limit
        - offset
        - count
        - total
      properties:
        limit:
          type: integer
        offset:
          type: integer
        count:
          type: integer
          description: Number of targets returned in this page.
        total:
          type: integer
          description: Total targets in the monitor that match the status filter.
    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.
    TargetType:
      type: string
      enum:
        - domain
        - linkedin_company
        - linkedin_profile
      description: How the target was identified when it was added.
    TargetCompany:
      type: object
      required:
        - id
        - name
        - slug
        - domain
        - industry
        - country
      description: The company a resolved target was matched to.
      properties:
        id:
          type: string
          description: Signalbase company ID.
        name:
          type:
            - string
            - 'null'
        slug:
          type:
            - string
            - 'null'
        domain:
          type:
            - string
            - 'null'
        industry:
          type:
            - string
            - 'null'
        country:
          type:
            - string
            - 'null'
          description: Headquarters country code.
  responses:
    BadRequest:
      description: >-
        Invalid JSON or field values, an unknown signal type, a non-public
        webhook URL, no valid target in the request, or a team limit was reached
        (20 monitors, 1,000 targets).
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            success: false
            error: >-
              signal_types must be a non-empty array of: funding_round,
              acquisition, job_change, hiring
            code: bad_request
    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.

````