---
title: "List visible lead signals with safe lead, post, and watched-profile context."
method: GET
path: "/customer/leads/signals"
tags: ["Customer REST"]
---

# List visible lead signals with safe lead, post, and watched-profile context.

`GET /customer/leads/signals`

## Request

- Base URL: `https://api.traxy.ai/api/v1`
- URL: `https://api.traxy.ai/api/v1/customer/leads/signals`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/windmill-growth/apis/traxy-customer-api-and-mcp-v1/docs/customer/leads/signals/get.ts> (a function with typed inputs; its response is checked against the schema)

## Query parameters

- `limit` integer
- `cursor` string
- `leadId` string, uuid
- `monitoredProfileId` string, uuid
- `monitoredProfileIds` string
- `postId` string, uuid
- `engagementType` 'LIKE' | 'COMMENT' | 'REPOST' | 'POST_AUTHOR'
- `engagementTypes` string
- `dateFrom` string, date-time
- `dateTo` string, date-time
- `minIcpMatchPercent` integer
- `maxIcpMatchPercent` integer
- `disposition` 'ACTIVE' | 'CLIENT' | 'BAD_LEAD'
- `query` string
- `companyNames` string
- `profileType` 'TEAMMATE' | 'COMPETITOR' | 'INFLUENCER' | 'INVESTOR' | 'CUSTOM' | 'TARGET_ACCOUNT' | 'CUSTOMER' | 'PARTNER'
- `relationshipLabel` string
- `origin` 'agent' | 'watchlist' | 'all'

## Response `200`

Lead engagement page with a nullable canonical signal on each record and lead.

- LeadSignalPage
  - `data` object[], required
    - `id` string, uuid, required
    - `engagementType` 'LIKE' | 'COMMENT' | 'REPOST' | 'POST_AUTHOR', required
    - `reactionType` string, nullable, required
    - `engagedAt` string, date-time, required
    - `capturedAt` string, date-time, required
    - `signal` LeadSignal, required
      - `summary` string, required
      - `whyRelevant` string, required
      - `topic` string, nullable, required
      - `type` 'COMPETITOR' | 'PAIN' | 'TRIGGER' | 'TOPIC' | 'CATEGORY_INTEREST' | 'CUSTOM' | 'GENERAL_ENGAGEMENT', required
      - `strength` 'DIRECT' | 'CONTEXTUAL' | 'ACTIVITY', required
      - `sentiment` 'NEGATIVE' | 'POSITIVE' | 'MIXED' | 'NEUTRAL' | 'UNKNOWN', required
      - `occurredAt` string, date-time, required
      - `source` object, required
        - `name` string, nullable, required
        - `title` string, nullable, required
        - `url` string, nullable, required
    - `lead` Lead, required
      - `id` string, uuid, required
      - `icpMatchPercent` integer, nullable
      - `intentScore` number
      - `leadTier` string, nullable
      - `profile` object, required
        - `displayName` string, nullable, required
        - `headline` string, nullable, required
        - `location` string, nullable, required
        - `currentCompany` string, nullable, required
        - `profileUrl` string, uri, nullable, required: Canonical LinkedIn profile URL; null without leads:contact_read.
      - `contact` object, nullable, required: Null unless the credential has leads:contact_read.
        - `workEmail` string, email, nullable, required
        - `workEmailStatus` string, nullable, required
        - `personalEmail` string, email, nullable, required
        - `personalEmailStatus` string, nullable, required
        - `contactPhone` string, nullable, required
        - `contactPhoneStatus` string, nullable, required
      - `signal` LeadSignal, required
        - `summary` string, required
        - `whyRelevant` string, required
        - `topic` string, nullable, required
        - `type` 'COMPETITOR' | 'PAIN' | 'TRIGGER' | 'TOPIC' | 'CATEGORY_INTEREST' | 'CUSTOM' | 'GENERAL_ENGAGEMENT', required
        - `strength` 'DIRECT' | 'CONTEXTUAL' | 'ACTIVITY', required
        - `sentiment` 'NEGATIVE' | 'POSITIVE' | 'MIXED' | 'NEUTRAL' | 'UNKNOWN', required
        - `occurredAt` string, date-time, required
        - `source` object, required
          - `name` string, nullable, required
          - `title` string, nullable, required
          - `url` string, nullable, required
    - `primarySignal` object, required: Backward-compatible LinkedIn engagement context.
    - `engagedWith` object, required
    - `post` object, required
  - `page` object, required
    - `limit` integer, required
    - `cursor` string, nullable
    - `nextCursor` string, nullable, required

## Other responses

- `400`: Request failed boundary validation.
- `401`: Invalid, expired, or revoked API key.
- `402`: Key or OAuth grant lacks the required scope.
- `429`: Customer API rate limit exceeded or rate-limit enforcement is temporarily unavailable. Retry after the delay in Retry-After.

## Changes

- **2026-10-26** `5dad61cc8aea`: 3 info
  - added the new enum value `CUSTOMER` to the `query` request parameter `profileType`
  - added the new enum value `PARTNER` to the `query` request parameter `profileType`
  - added the new enum value `TARGET_ACCOUNT` to the `query` request parameter `profileType`
- **2026-09-24** `3dde15782092`: 3 breaking, 2 info
  - the response's body type changed from `object` to no type for status `200`
  - removed the required property `data` from the response with the `200` status
  - removed the required property `page` from the response with the `200` status
  - added the new enum value `POST_AUTHOR` to the `query` request parameter `engagementType`
  - …1 more
- **2026-07-31** `5ea23c14f8cf`: 1 info
  - added the new enum value `INFLUENCER` to the `query` request parameter `profileType`
- **2026-07-13** `e60dfaf3c445`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/windmill-growth/apis/traxy-customer-api-and-mcp-v1/changes/customer/leads/signals/get.md)

---

[API](https://skmtc.dev/windmill-growth/apis/traxy-customer-api-and-mcp-v1.md) - [All operations](https://skmtc.dev/windmill-growth/apis/traxy-customer-api-and-mcp-v1/llms.txt) - [OpenAPI document](https://skmtc.dev/windmill-growth/apis/traxy-customer-api-and-mcp-v1/revisions/765b1a6a3abd?raw)
