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

# Listar produtos

> Devolve o catálogo que a sua chave pode consultar. Não toca no bureau e não custa nada, o que faz dela o jeito barato de descobrir o contrato em vez de chutar um id de produto e pagar para ver o erro.

Produto que a chave não pode pedir não aparece na lista.


Devolve o catálogo que a sua chave pode consultar, com id, descrição e tipo de documento
de cada produto.

<Card title="Não gera cobrança" horizontal>
  Não toca no bureau. É o jeito barato de descobrir o contrato em vez de chutar um id de
  produto e pagar para ver o erro.
</Card>

Produto que a chave não pode pedir não aparece na lista, porque listar o que já se sabe
que vai voltar `403` é convite a uma chamada perdida.

**Resposta:**

```json theme={"theme":{"light":"min-light","dark":"min-dark"}}
{
  "escopos": ["cpf", "cnpj"],
  "produtos": [
    {
      "id": "search-pf",
      "nome": "Ficha completa",
      "descricao": "Tudo o que se sabe da pessoa: nome, mãe, nascimento, telefones, e-mails, endereços, renda presumida e vínculos.",
      "documento": "cpf",
      "assunto": "pessoa",
      "assuntoRotulo": "Pessoa",
      "familia": "cadastral",
      "familiaRotulo": "Quem é e como falar",
      "pesada": false
    }
  ]
}
```


## OpenAPI

````yaml openapi.yaml GET /api/v1/produtos
openapi: 3.1.0
info:
  title: API da Flunora
  description: >
    Superfície pública da Flunora. Duas capacidades: colocar contatos no funil a
    partir de qualquer sistema, e consultar CPF e CNPJ num bureau de dados
    brasileiro.


    A URL base é o endereço da **sua instância**, não um domínio compartilhado
    da plataforma. Troque `crm.suaempresa.com` pelo seu.
  version: 1.0.0
  contact:
    name: Suporte da Flunora
    email: contato@flunora.com.br
    url: https://docs.flunora.com
servers:
  - url: https://{instancia}
    description: A sua instância da Flunora.
    variables:
      instancia:
        default: crm.suaempresa.com
        description: O domínio da sua instância.
security:
  - chaveDeApi: []
tags:
  - name: Consultas
    description: Ficha cadastral de pessoa e de empresa. Cada consulta é cobrada.
  - name: Entrada de contatos
    description: Criar contato no funil a partir de um sistema externo.
paths:
  /api/v1/produtos:
    get:
      tags:
        - Consultas
      summary: Listar produtos
      description: >
        Devolve o catálogo que a sua chave pode consultar. Não toca no bureau e
        não custa nada, o que faz dela o jeito barato de descobrir o contrato em
        vez de chutar um id de produto e pagar para ver o erro.


        Produto que a chave não pode pedir não aparece na lista.
      operationId: listarProdutos
      responses:
        '200':
          description: Catálogo permitido para esta chave.
          content:
            application/json:
              schema:
                type: object
                properties:
                  escopos:
                    type: array
                    description: Tipos de documento que a chave cobre, ou `*` para todos.
                    items:
                      type: string
                    example:
                      - cpf
                      - cnpj
                  produtos:
                    type: array
                    items:
                      $ref: '#/components/schemas/Produto'
        '401':
          $ref: '#/components/responses/NaoAutenticado'
components:
  schemas:
    Produto:
      type: object
      properties:
        id:
          type: string
          description: O valor que vai no campo `produto` da consulta.
          example: search-pf
        nome:
          type: string
          example: Ficha completa
        descricao:
          type: string
        documento:
          type: string
          enum:
            - cpf
            - cnpj
            - cpf_cnpj
            - placa
            - email
        assunto:
          type: string
          enum:
            - pessoa
            - empresa
            - veiculo
        assuntoRotulo:
          type: string
        familia:
          type: string
          enum:
            - cadastral
            - credito
            - compliance
            - veicular
        familiaRotulo:
          type: string
        pesada:
          type: boolean
          description: Resposta grande. Vale pedir só quando for usar.
    Erro:
      type: object
      description: >
        O `codigo` é uma string estável nossa, não o número que o bureau
        devolveu. Trate por ele, para o seu `if` continuar valendo se o
        fornecedor mudar.
      properties:
        erro:
          type: object
          properties:
            codigo:
              type: string
              example: nao_encontrado
            mensagem:
              type: string
              example: Documento não localizado.
            detalhe:
              type: object
  responses:
    NaoAutenticado:
      description: Chave ausente, inválida, revogada, expirada ou desativada.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Erro'
  securitySchemes:
    chaveDeApi:
      type: http
      scheme: bearer
      description: >
        Chave de API criada em Configurações, Integrações, Chaves de API. Começa
        com `sk_live_` e aparece uma vez só. O cabeçalho `X-API-Key` também é
        aceito, com o mesmo valor.

````