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

# Listar Leads

> Retorna a lista de leads da conta autenticada, com suporte a filtros.

## Requisição

`GET https://crm.wavups.com/api/v1/lead`

<ParamField header="Token" type="string" required>
  Seu token de autenticação.
</ParamField>

### Query Parameters

<ParamField query="startDate" type="string">
  Data de início para filtrar leads pelo campo `createdAt`. Deve ser uma data válida no formato ISO 8601 (ex: `2025-01-01T00:00:00Z`). Utilizado em conjunto com `endDate`.
</ParamField>

<ParamField query="endDate" type="string">
  Data de fim para filtrar leads pelo campo `createdAt`. Deve ser uma data válida no formato ISO 8601 (ex: `2025-12-31T23:59:59Z`). Utilizado em conjunto com `startDate`.
</ParamField>

<ParamField query="temperature" type="number">
  Filtra leads pela temperatura: `1` (Frio), `2` (Morno) ou `3` (Quente).
</ParamField>

<ParamField query="source" type="string">
  Filtra leads pela origem (ex: `site`, `instagram`, `indicacao`).
</ParamField>

<ParamField query="phone" type="string">
  Filtra leads por número de telefone exato.
</ParamField>

<ParamField query="taxId" type="string">
  Filtra leads por número de CPF ou CNPJ exato.
</ParamField>

<ParamField query="leadOwner" type="string">
  Filtra leads pelo ID do usuário responsável pelo lead.
</ParamField>

<ParamField query="leadType" type="string">
  Filtra leads pelo tipo (ex: `PF`, `PJ`).
</ParamField>

<ParamField query="labelId" type="string">
  Filtra leads que possuem a etiqueta com o ID informado.
</ParamField>

***

## Resposta

Retorna um array de objetos de lead. Os campos `accountId` e `updatedAt` são omitidos na resposta.

<ResponseField name="id" type="string">
  Identificador único do lead.
</ResponseField>

<ResponseField name="leadOwner" type="string | null">
  ID do usuário responsável pelo lead.
</ResponseField>

<ResponseField name="name" type="string">
  Nome do lead.
</ResponseField>

<ResponseField name="email" type="string | null">
  E-mail do lead.
</ResponseField>

<ResponseField name="phone" type="string | null">
  Telefone do lead.
</ResponseField>

<ResponseField name="taxId" type="string | null">
  CPF/CNPJ do lead.
</ResponseField>

<ResponseField name="source" type="string | null">
  Origem do lead.
</ResponseField>

<ResponseField name="profileImage" type="string | null">
  URL da imagem de perfil do lead.
</ResponseField>

<ResponseField name="zipCode" type="string | null">
  CEP do endereço do lead.
</ResponseField>

<ResponseField name="state" type="string | null">
  Estado do lead.
</ResponseField>

<ResponseField name="city" type="string | null">
  Cidade do lead.
</ResponseField>

<ResponseField name="neighborhood" type="string | null">
  Bairro do lead.
</ResponseField>

<ResponseField name="streetAddress" type="string | null">
  Logradouro do lead.
</ResponseField>

<ResponseField name="number" type="string | null">
  Número do endereço.
</ResponseField>

<ResponseField name="complement" type="string | null">
  Complemento do endereço.
</ResponseField>

<ResponseField name="description" type="string | null">
  Descrição ou observações sobre o lead.
</ResponseField>

<ResponseField name="leadType" type="string | null">
  Tipo do lead (ex: `PF`, `PJ`).
</ResponseField>

<ResponseField name="leadTemperature" type="number | null">
  Temperatura do lead: `1` (Frio), `2` (Morno) ou `3` (Quente).
</ResponseField>

<ResponseField name="metadata" type="object | null">
  Metadados adicionais do lead em formato JSON.
</ResponseField>

<ResponseField name="utms" type="object | null">
  Parâmetros UTM associados ao lead em formato JSON.
</ResponseField>

<ResponseField name="status" type="string">
  Status atual do lead. Padrão: `Lead`.
</ResponseField>

<ResponseField name="createdAt" type="string">
  Data e horário de criação do lead (ISO 8601).
</ResponseField>

<ResponseField name="accountCRMLeadLabelAssignments" type="array">
  Lista de etiquetas atribuídas ao lead.

  <Expandable title="Propriedades da etiqueta">
    <ResponseField name="AccountLabel.id" type="string">
      ID da etiqueta.
    </ResponseField>

    <ResponseField name="AccountLabel.name" type="string">
      Nome da etiqueta.
    </ResponseField>

    <ResponseField name="AccountLabel.color" type="string">
      Cor da etiqueta (hex ou nome).
    </ResponseField>
  </Expandable>
</ResponseField>

***

## Exemplos

<RequestExample>
  ```bash GET /api/v1/lead theme={null}
  curl --request GET \
    --url 'https://crm.wavups.com/api/v1/lead?startDate=2025-01-01T00:00:00Z&endDate=2025-12-31T23:59:59Z&source=instagram' \
    --header 'Token: SEU_TOKEN_DE_API'
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  [
    {
      "id": "clxyz1234",
      "leadOwner": "usr_abc",
      "name": "João Silva",
      "email": "joao@email.com",
      "phone": "5511999998888",
      "taxId": "12345678909",
      "source": "instagram",
      "profileImage": null,
      "zipCode": "01310-100",
      "state": "SP",
      "city": "São Paulo",
      "neighborhood": "Bela Vista",
      "streetAddress": "Av. Paulista",
      "number": "1000",
      "complement": "Apto 21",
      "description": "Interesse em plano premium",
      "leadType": "PF",
      "leadTemperature": 2,
      "metadata": {
        "tags": ["premium", "interessado"],
        "custom_field": "valor customizado"
      },
      "utms": {
        "utm_source": "instagram",
        "utm_medium": "social",
        "utm_campaign": "campanha_junho"
      },
      "status": "Lead",
      "createdAt": "2025-06-15T14:30:00.000Z",
      "accountCRMLeadLabelAssignments": [
        {
          "AccountLabel": {
            "id": "lbl_001",
            "name": "Quente",
            "color": "#ef4444"
          }
        }
      ]
    }
  ]
  ```

  ```json 500 theme={null}
  {
    "error": "Error to get leads"
  }
  ```
</ResponseExample>


## OpenAPI

````yaml GET /lead
openapi: 3.0.3
info:
  title: WavUps CRM API
  description: >-
    API pública da plataforma WavUps CRM — gerencie leads, produtos, categorias,
    atendimentos, agendamentos, conversas e pipelines de CRM.
  version: 1.0.0
servers:
  - url: https://crm.wavups.com/api/v1
    description: Servidor de produção
security:
  - Token: []
paths:
  /lead:
    get:
      tags:
        - Leads
      summary: Listar Leads
      description: Retorna a lista de leads da conta autenticada, com suporte a filtros.
      operationId: listLeads
      parameters:
        - name: startDate
          in: query
          description: >-
            Data de início para filtrar leads pelo campo createdAt (ISO 8601,
            ex: 2025-01-01T00:00:00Z).
          schema:
            type: string
            format: date-time
        - name: endDate
          in: query
          description: >-
            Data de fim para filtrar leads pelo campo createdAt (ISO 8601, ex:
            2025-12-31T23:59:59Z).
          schema:
            type: string
            format: date-time
        - name: temperature
          in: query
          description: 'Filtra leads pela temperatura: 1 (Frio), 2 (Morno) ou 3 (Quente).'
          schema:
            type: integer
            enum:
              - 1
              - 2
              - 3
        - name: source
          in: query
          description: 'Filtra leads pela origem (ex: site, instagram, indicacao).'
          schema:
            type: string
        - name: phone
          in: query
          description: Filtra leads por número de telefone exato.
          schema:
            type: string
        - name: taxId
          in: query
          description: Filtra leads por número de CPF ou CNPJ exato.
          schema:
            type: string
        - name: leadOwner
          in: query
          description: Filtra leads pelo ID do usuário responsável.
          schema:
            type: string
        - name: leadType
          in: query
          description: 'Filtra leads pelo tipo (ex: PF, PJ).'
          schema:
            type: string
        - name: labelId
          in: query
          description: Filtra leads que possuem a etiqueta com o ID informado.
          schema:
            type: string
      responses:
        '200':
          description: Lista de leads retornada com sucesso.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Lead'
        '500':
          $ref: '#/components/responses/Error500'
components:
  schemas:
    Lead:
      type: object
      properties:
        id:
          type: string
        leadOwner:
          type: string
          nullable: true
        name:
          type: string
        email:
          type: string
          nullable: true
        phone:
          type: string
          nullable: true
          description: >-
            Telefone no formato 5547999999999 (pais + DDD + numero, sem espacos
            ou simbolos).
          example: '5547999999999'
        taxId:
          type: string
          nullable: true
          description: CPF ou CNPJ do lead.
          example: '12345678909'
        source:
          type: string
          nullable: true
        profileImage:
          type: string
          nullable: true
        zipCode:
          type: string
          nullable: true
        state:
          type: string
          nullable: true
        city:
          type: string
          nullable: true
        neighborhood:
          type: string
          nullable: true
        streetAddress:
          type: string
          nullable: true
        number:
          type: string
          nullable: true
        complement:
          type: string
          nullable: true
        description:
          type: string
          nullable: true
        leadType:
          type: string
          nullable: true
        leadTemperature:
          type: number
          nullable: true
          description: 'Temperatura do lead: 1 (Frio), 2 (Morno), 3 (Quente).'
        status:
          type: string
        metadata:
          type: object
          description: Metadados adicionais do lead em formato JSON.
          nullable: true
        utms:
          type: object
          description: Parâmetros UTM associados ao lead em formato JSON.
          nullable: true
          properties:
            utm_source:
              type: string
              description: 'Origem do tráfego (ex: fb, google, instagram).'
              example: fb
            utm_medium:
              type: string
              description: 'Meio do tráfego (ex: paid, cpc, organic, story).'
              example: paid
            utm_campaign:
              type: string
              description: Identificador ou nome da campanha.
              example: '120243645529690704'
            utm_term:
              type: string
              description: Termo de pesquisa ou identificador de público/anúncio.
              example: '120243645529720704'
            utm_content:
              type: string
              description: Conteúdo do anúncio ou identificador do criativo.
              example: '120247590343130704'
        createdAt:
          type: string
          format: date-time
    ErrorMessage:
      type: object
      properties:
        error:
          type: string
          example: Recurso não encontrado.
  responses:
    Error500:
      description: Erro interno no servidor.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
  securitySchemes:
    Token:
      type: apiKey
      in: header
      name: Token
      description: Token de autenticacao gerado na plataforma WavUps CRM.

````