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

# List leads

> Returns a paginated list of leads across the workspace, newest first.



## OpenAPI

````yaml /openapi.json get /leads
openapi: 3.1.0
info:
  title: Leadey API
  version: 1.0.0
  description: >-
    Programmatic access to your Leadey workspace — leads, companies, contacts,
    and campaigns. All endpoints are authenticated with an API key and scoped to
    the key's organization.
servers:
  - url: https://backend.leadey.ai/v1
    description: Production
  - url: http://localhost:3001/v1
    description: Local development
security:
  - bearerAuth: []
paths:
  /leads:
    get:
      tags:
        - Leads
      summary: List leads
      description: Returns a paginated list of leads across the workspace, newest first.
      operationId: listLeads
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/Search'
        - name: campaignId
          in: query
          description: Only return leads in this campaign.
          schema:
            type: string
        - name: status
          in: query
          description: Filter by lead status (e.g. `pending`, `replied`).
          schema:
            type: string
      responses:
        '200':
          description: A page of leads.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Lead'
                  meta:
                    $ref: '#/components/schemas/PageMeta'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimited'
components:
  parameters:
    Page:
      name: page
      in: query
      description: 1-based page number.
      schema:
        type: integer
        minimum: 1
        default: 1
    PageSize:
      name: pageSize
      in: query
      description: Items per page (max 100).
      schema:
        type: integer
        minimum: 1
        maximum: 100
        default: 25
    Search:
      name: search
      in: query
      description: Free-text search across the resource's key fields.
      schema:
        type: string
  schemas:
    Lead:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        firstName:
          type:
            - string
            - 'null'
        lastName:
          type:
            - string
            - 'null'
        title:
          type: string
        company:
          type: string
        email:
          type:
            - string
            - 'null'
        phone:
          type:
            - string
            - 'null'
        linkedinUrl:
          type:
            - string
            - 'null'
        status:
          type: string
          example: pending
        source:
          type: string
        score:
          type: integer
          example: 78
        campaignId:
          type: string
        campaignName:
          type:
            - string
            - 'null'
        createdAt:
          type: string
          format: date-time
    PageMeta:
      type: object
      properties:
        page:
          type: integer
          example: 1
        pageSize:
          type: integer
          example: 25
        totalCount:
          type: integer
          example: 134
        totalPages:
          type: integer
          example: 6
    Error:
      type: object
      properties:
        error:
          type: object
          properties:
            message:
              type: string
              description: Human-readable error message.
            details:
              type:
                - object
                - array
                - string
                - 'null'
              description: Optional structured detail.
          required:
            - message
  responses:
    Unauthorized:
      description: The API key is missing, invalid, or revoked.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              message: Invalid or revoked API key.
              details: null
    RateLimited:
      description: Too many requests. Retry after the period in the `Retry-After` header.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              message: Rate limit exceeded. Retry in 42s.
              details: null
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        Your API key, created in the Leadey dashboard under Settings → API Keys.
        Send it as `Authorization: Bearer leadey_sk_live_…`.

````