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

# Get one API-visible lead.



## OpenAPI

````yaml /api-reference/customer-api-mcp-v1.openapi.yaml get /customer/leads/{leadId}
openapi: 3.0.3
info:
  title: traxy Customer API and MCP V1
  version: 1.0.0
  description: >
    Public customer-facing read API, Ordinal Audience Analytics endpoints, and

    remote MCP Streamable HTTP endpoint. Customer REST and Ordinal requests use

    bearer API keys. MCP uses OAuth access tokens issued for the traxy MCP

    resource; Customer API keys are never accepted by MCP. Public REST clients
    must

    not send organizationId. Default API keys cover the general read API.

    Ordinal Audience Analytics is self-serve for paid workspaces and requires

    explicitly selected audience_analytics scopes on the key.

    The MCP surface exposes scope-gated tools through tools/list, including

    agent:read tools for safe automated lead-finding agent visibility. Latest

    MCP protocol version is 2025-11-25.
servers:
  - url: https://api.traxy.ai/api/v1
    description: Production
security:
  - CustomerApiKey: []
tags:
  - name: Customer REST
  - name: Ordinal Audience Analytics
  - name: MCP OAuth
  - name: MCP
paths:
  /customer/leads/{leadId}:
    get:
      tags:
        - Customer REST
      summary: Get one API-visible lead.
      parameters:
        - $ref: '#/components/parameters/LeadId'
      responses:
        '200':
          description: Lead detail.
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                properties:
                  data:
                    $ref: '#/components/schemas/Lead'
        '400':
          $ref: '#/components/responses/ValidationFailed'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/InsufficientCapability'
        '404':
          $ref: '#/components/responses/NotFound'
      security:
        - CustomerApiKey:
            - leads:read
components:
  parameters:
    LeadId:
      name: leadId
      in: path
      required: true
      schema:
        type: string
        format: uuid
  schemas:
    Lead:
      type: object
      required:
        - id
        - profile
        - contact
        - signal
      properties:
        id:
          type: string
          format: uuid
        icpMatchPercent:
          type: integer
          nullable: true
        intentScore:
          type: number
        leadTier:
          type: string
          nullable: true
        profile:
          type: object
          additionalProperties: false
          required:
            - displayName
            - headline
            - location
            - currentCompany
            - profileUrl
          properties:
            displayName:
              type: string
              nullable: true
            headline:
              type: string
              nullable: true
            location:
              type: string
              nullable: true
            currentCompany:
              type: string
              nullable: true
            profileUrl:
              type: string
              format: uri
              nullable: true
              description: Canonical LinkedIn profile URL; null without leads:contact_read.
        contact:
          nullable: true
          description: Null unless the credential has leads:contact_read.
          type: object
          additionalProperties: false
          required:
            - workEmail
            - workEmailStatus
            - personalEmail
            - personalEmailStatus
            - contactPhone
            - contactPhoneStatus
          properties:
            workEmail:
              type: string
              format: email
              nullable: true
            workEmailStatus:
              type: string
              nullable: true
            personalEmail:
              type: string
              format: email
              nullable: true
            personalEmailStatus:
              type: string
              nullable: true
            contactPhone:
              type: string
              nullable: true
            contactPhoneStatus:
              type: string
              nullable: true
        signal:
          type: object
          nullable: true
          description: >-
            The lead's strongest current canonical signal, or null when
            unavailable.
          allOf:
            - $ref: '#/components/schemas/LeadSignal'
    LeadSignal:
      type: object
      additionalProperties: false
      required:
        - summary
        - whyRelevant
        - topic
        - type
        - strength
        - sentiment
        - occurredAt
        - source
      properties:
        summary:
          type: string
          maxLength: 300
        whyRelevant:
          type: string
          maxLength: 500
        topic:
          type: string
          nullable: true
          maxLength: 160
        type:
          type: string
          enum:
            - COMPETITOR
            - PAIN
            - TRIGGER
            - TOPIC
            - CATEGORY_INTEREST
            - CUSTOM
            - GENERAL_ENGAGEMENT
        strength:
          type: string
          enum:
            - DIRECT
            - CONTEXTUAL
            - ACTIVITY
        sentiment:
          type: string
          enum:
            - NEGATIVE
            - POSITIVE
            - MIXED
            - NEUTRAL
            - UNKNOWN
        occurredAt:
          type: string
          format: date-time
        source:
          type: object
          additionalProperties: false
          required:
            - name
            - title
            - url
          properties:
            name:
              type: string
              nullable: true
            title:
              type: string
              nullable: true
            url:
              type: string
              nullable: true
    ErrorEnvelope:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - code
            - message
            - status
            - request_id
          properties:
            code:
              type: string
              example: invalid_api_key
            message:
              type: string
              example: Invalid API key.
            status:
              type: integer
              example: 401
            request_id:
              type: string
  responses:
    ValidationFailed:
      description: Request failed boundary validation.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorEnvelope'
    Unauthorized:
      description: Invalid, expired, or revoked API key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorEnvelope'
    InsufficientCapability:
      description: Key or OAuth grant lacks the required scope.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorEnvelope'
    NotFound:
      description: Resource not found for the key workspace.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorEnvelope'
  securitySchemes:
    CustomerApiKey:
      type: http
      scheme: bearer
      bearerFormat: trxy_live_<public_id>_<secret>
      description: >-
        API key created from Integrations > API & MCP > API keys. Used for
        Customer REST and Ordinal Audience Analytics, not MCP OAuth.

````

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