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

# Presença digital

> Retorna sites, segmento informado, atividade, segurança de conexão, redes sociais e avaliações disponíveis para o CNPJ. Os dois conjuntos de dados são cobrados separadamente.



## OpenAPI

````yaml /api-reference/openapi.json post /v3/web-presence
openapi: 3.1.2
info:
  title: API Base39
  version: 3.0.0
  description: >-
    Contratos canônicos Base39 compartilhados entre API e MCP. Campos de negócio
    em snake_case. Valores financeiros em centavos de BRL; montantes de dados
    consultados são textos decimais que preservam a precisão informada. Datas
    cadastrais usam YYYY-MM-DD. As consultas podem debitar o saldo; a repetição
    equivalente na organização é gratuita até meia-noite de São Paulo. O extrato
    informa o consumo. Campos ausentes não significam zero nem aprovação de
    crédito.
servers:
  - url: https://mcp.base39.com.br
    description: API pública Base39, independente do caminho do protocolo MCP.
security:
  - bearer_auth: []
tags:
  - name: Consultas
    description: Consultas canônicas de dados.
  - name: Monitoramento e notificações
    description: Monitoramento recorrente e destinos de notificações da organização.
  - name: Modelos de relatórios
    description: Modelos de relatório e seus recursos na organização autenticada.
  - name: Saldo e pagamentos
    description: Saldo e extrato da organização autenticada.
paths:
  /v3/web-presence:
    post:
      tags:
        - Consultas
      summary: Presença digital
      description: >-
        Retorna sites, segmento informado, atividade, segurança de conexão,
        redes sociais e avaliações disponíveis para o CNPJ. Os dois conjuntos de
        dados são cobrados separadamente.
      operationId: get_web_presence
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/get_web_presence_request'
            examples:
              requisicao:
                summary: Parâmetros da consulta.
                value:
                  document: '00000000000191'
      responses:
        '200':
          description: >-
            Objeto ou página de dados Base39; next_cursor ausente indica o fim
            da coleção.
          headers:
            Request-Id:
              description: Identificador da requisição para suporte e rastreamento.
              schema:
                type: string
              example: req_example
            Cache-Control:
              description: >-
                As respostas autenticadas não devem ser armazenadas por serviços
                HTTP compartilhados.
              schema:
                type: string
                const: no-store
              example: no-store
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/get_web_presence_response'
              examples:
                resposta:
                  summary: Exemplo de resposta Base39.
                  value:
                    object: web_presence
                    document: '00000000000191'
                    sites:
                      - domain: empresa.example.com
                        industry: COMÉRCIO
                        active: true
                        has_ssl: true
                    total_reviews: 1
                    reviews:
                      - name: Empresa Exemplo
                        rating: 4.5
                        count: 1
                        entries:
                          - text: Atendimento recebido.
                            date: '2026-11-01'
        '400':
          $ref: '#/components/responses/error_400'
        '401':
          $ref: '#/components/responses/error_401'
        '402':
          $ref: '#/components/responses/error_402'
        '403':
          $ref: '#/components/responses/error_403'
        '404':
          $ref: '#/components/responses/error_404'
        '405':
          $ref: '#/components/responses/error_405'
        '409':
          $ref: '#/components/responses/error_409'
        '413':
          $ref: '#/components/responses/error_413'
        '415':
          $ref: '#/components/responses/error_415'
        '422':
          $ref: '#/components/responses/error_422'
        '425':
          $ref: '#/components/responses/error_425'
        '502':
          $ref: '#/components/responses/error_502'
        '503':
          $ref: '#/components/responses/error_503'
        '504':
          $ref: '#/components/responses/error_504'
components:
  schemas:
    get_web_presence_request:
      $schema: https://json-schema.org/draft/2020-12/schema
      type: object
      properties:
        document:
          description: CNPJ completo da empresa consultada.
          type: string
          pattern: >-
            ^(?:\d{11}|\d{3}\.\d{3}\.\d{3}-\d{2}|[0-9A-Za-z]{12}\d{2}|[0-9A-Za-z]{2}\.[0-9A-Za-z]{3}\.[0-9A-Za-z]{3}\/[0-9A-Za-z]{4}-\d{2})$
      required:
        - document
      additionalProperties: false
    get_web_presence_response:
      $schema: https://json-schema.org/draft/2020-12/schema
      type: object
      properties:
        object:
          type: string
          const: web_presence
          description: Presença digital da empresa.
        document:
          type: string
          minLength: 1
          description: CPF ou CNPJ informado pela fonte; pode estar mascarado.
        sites:
          type: array
          items:
            type: object
            properties:
              domain:
                type: string
                description: Domínio associado à empresa.
              category:
                type: string
                description: Classificação do site.
              industry:
                type: string
                description: Segmento de atividade informado.
              active:
                type: boolean
                description: Indica se o site está ativo.
              has_ssl:
                type: boolean
                description: Indica a existência de certificado de conexão segura.
              social_networks:
                type: string
                description: Redes sociais identificadas no site.
              visitor_range:
                type: string
                description: Faixa de visitantes informada.
            additionalProperties: false
          description: Sites disponíveis para o documento.
        total_reviews:
          type: number
          description: Quantidade total de avaliações informada.
        reviews:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
                description: Nome da empresa no perfil de avaliações.
              description:
                type: string
                description: Descrição da empresa no perfil.
              rating:
                type: number
                description: Pontuação de avaliação informada.
              count:
                type: number
                description: Quantidade de avaliações do perfil.
              entries:
                type: array
                items:
                  type: object
                  properties:
                    text:
                      type: string
                      description: Texto da avaliação.
                    date:
                      type: string
                      format: date
                      pattern: >-
                        ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                      description: Data da avaliação.
                  additionalProperties: false
                description: Avaliações disponibilizadas.
            required:
              - entries
            additionalProperties: false
          description: Perfis de avaliação disponíveis.
      required:
        - object
        - document
        - sites
        - reviews
      additionalProperties: false
    error:
      $schema: https://json-schema.org/draft/2020-12/schema
      type: object
      properties:
        error:
          type: object
          properties:
            type:
              type: string
              enum:
                - invalid_request_error
                - authentication_error
                - permission_error
                - balance_error
                - api_error
              description: Categoria estável da falha.
            code:
              type: string
              pattern: ^[a-z][a-z0-9_]*$
              description: Código estável da falha para tratamento pela aplicação.
            message:
              type: string
              description: Descrição da falha em português brasileiro.
            param:
              description: Parâmetro relacionado à falha, quando aplicável.
              type: string
          required:
            - type
            - code
            - message
          additionalProperties: false
          description: Falha que impediu a operação.
      required:
        - error
      additionalProperties: false
  responses:
    error_400:
      description: Parâmetros inválidos.
      headers:
        Request-Id:
          description: Identificador da requisição para suporte e rastreamento.
          schema:
            type: string
          example: req_example
        Cache-Control:
          description: >-
            As respostas autenticadas não devem ser armazenadas por serviços
            HTTP compartilhados.
          schema:
            type: string
            const: no-store
          example: no-store
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
          examples:
            erro:
              summary: Parâmetros inválidos.
              value:
                error:
                  type: invalid_request_error
                  code: invalid_request
                  message: Revise os parâmetros da requisição.
    error_401:
      description: Autenticação ausente ou inválida.
      headers:
        Request-Id:
          description: Identificador da requisição para suporte e rastreamento.
          schema:
            type: string
          example: req_example
        Cache-Control:
          description: >-
            As respostas autenticadas não devem ser armazenadas por serviços
            HTTP compartilhados.
          schema:
            type: string
            const: no-store
          example: no-store
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
          examples:
            erro:
              summary: Autenticação ausente ou inválida.
              value:
                error:
                  type: authentication_error
                  code: unauthorized
                  message: Autenticação necessária.
    error_402:
      description: Saldo insuficiente para a consulta.
      headers:
        Request-Id:
          description: Identificador da requisição para suporte e rastreamento.
          schema:
            type: string
          example: req_example
        Cache-Control:
          description: >-
            As respostas autenticadas não devem ser armazenadas por serviços
            HTTP compartilhados.
          schema:
            type: string
            const: no-store
          example: no-store
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
          examples:
            erro:
              summary: Saldo insuficiente para a consulta.
              value:
                error:
                  type: balance_error
                  code: insufficient_balance
                  message: Saldo insuficiente para realizar a consulta.
    error_403:
      description: Acesso não permitido.
      headers:
        Request-Id:
          description: Identificador da requisição para suporte e rastreamento.
          schema:
            type: string
          example: req_example
        Cache-Control:
          description: >-
            As respostas autenticadas não devem ser armazenadas por serviços
            HTTP compartilhados.
          schema:
            type: string
            const: no-store
          example: no-store
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
          examples:
            erro:
              summary: Acesso não permitido.
              value:
                error:
                  type: permission_error
                  code: forbidden
                  message: Acesso não permitido.
    error_404:
      description: Operação ou resultado não encontrado.
      headers:
        Request-Id:
          description: Identificador da requisição para suporte e rastreamento.
          schema:
            type: string
          example: req_example
        Cache-Control:
          description: >-
            As respostas autenticadas não devem ser armazenadas por serviços
            HTTP compartilhados.
          schema:
            type: string
            const: no-store
          example: no-store
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
          examples:
            erro:
              summary: Operação ou resultado não encontrado.
              value:
                error:
                  type: invalid_request_error
                  code: resource_not_found
                  message: Nenhum registro encontrado.
    error_405:
      description: Método HTTP não permitido.
      headers:
        Request-Id:
          description: Identificador da requisição para suporte e rastreamento.
          schema:
            type: string
          example: req_example
        Cache-Control:
          description: >-
            As respostas autenticadas não devem ser armazenadas por serviços
            HTTP compartilhados.
          schema:
            type: string
            const: no-store
          example: no-store
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
          examples:
            erro:
              summary: Método HTTP não permitido.
              value:
                error:
                  type: invalid_request_error
                  code: method_not_allowed
                  message: Método HTTP não permitido para esta operação.
    error_409:
      description: Consulta equivalente em andamento.
      headers:
        Request-Id:
          description: Identificador da requisição para suporte e rastreamento.
          schema:
            type: string
          example: req_example
        Cache-Control:
          description: >-
            As respostas autenticadas não devem ser armazenadas por serviços
            HTTP compartilhados.
          schema:
            type: string
            const: no-store
          example: no-store
        Retry-After:
          description: Tempo em segundos antes de uma nova tentativa.
          schema:
            type: integer
            minimum: 1
          example: 2
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
          examples:
            erro:
              summary: Consulta equivalente em andamento.
              value:
                error:
                  type: invalid_request_error
                  code: query_in_progress
                  message: Uma consulta equivalente está em andamento.
    error_413:
      description: Corpo da requisição acima do limite permitido para a operação.
      headers:
        Request-Id:
          description: Identificador da requisição para suporte e rastreamento.
          schema:
            type: string
          example: req_example
        Cache-Control:
          description: >-
            As respostas autenticadas não devem ser armazenadas por serviços
            HTTP compartilhados.
          schema:
            type: string
            const: no-store
          example: no-store
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
          examples:
            erro:
              summary: Corpo da requisição acima do limite permitido para a operação.
              value:
                error:
                  type: invalid_request_error
                  code: request_too_large
                  message: A requisição excedeu o limite permitido.
    error_415:
      description: O corpo deve usar application/json.
      headers:
        Request-Id:
          description: Identificador da requisição para suporte e rastreamento.
          schema:
            type: string
          example: req_example
        Cache-Control:
          description: >-
            As respostas autenticadas não devem ser armazenadas por serviços
            HTTP compartilhados.
          schema:
            type: string
            const: no-store
          example: no-store
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
          examples:
            erro:
              summary: O corpo deve usar application/json.
              value:
                error:
                  type: invalid_request_error
                  code: unsupported_media_type
                  message: Envie o corpo como application/json.
    error_422:
      description: Integração ou parâmetros específicos indisponíveis.
      headers:
        Request-Id:
          description: Identificador da requisição para suporte e rastreamento.
          schema:
            type: string
          example: req_example
        Cache-Control:
          description: >-
            As respostas autenticadas não devem ser armazenadas por serviços
            HTTP compartilhados.
          schema:
            type: string
            const: no-store
          example: no-store
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
          examples:
            erro:
              summary: Integração ou parâmetros específicos indisponíveis.
              value:
                error:
                  type: invalid_request_error
                  code: integration_not_configured
                  message: A integração necessária não está configurada na organização.
    error_425:
      description: Resultado temporariamente indisponível para leitura.
      headers:
        Request-Id:
          description: Identificador da requisição para suporte e rastreamento.
          schema:
            type: string
          example: req_example
        Cache-Control:
          description: >-
            As respostas autenticadas não devem ser armazenadas por serviços
            HTTP compartilhados.
          schema:
            type: string
            const: no-store
          example: no-store
        Retry-After:
          description: Tempo em segundos antes de uma nova tentativa.
          schema:
            type: integer
            minimum: 1
          example: 2
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
          examples:
            erro:
              summary: Resultado temporariamente indisponível para leitura.
              value:
                error:
                  type: invalid_request_error
                  code: cache_propagating
                  message: O resultado está sendo disponibilizado. Tente novamente.
    error_502:
      description: Resposta inválida ao executar a consulta.
      headers:
        Request-Id:
          description: Identificador da requisição para suporte e rastreamento.
          schema:
            type: string
          example: req_example
        Cache-Control:
          description: >-
            As respostas autenticadas não devem ser armazenadas por serviços
            HTTP compartilhados.
          schema:
            type: string
            const: no-store
          example: no-store
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
          examples:
            erro:
              summary: Resposta inválida ao executar a consulta.
              value:
                error:
                  type: api_error
                  code: query_unavailable
                  message: Não foi possível concluir a consulta.
    error_503:
      description: Serviço temporariamente indisponível.
      headers:
        Request-Id:
          description: Identificador da requisição para suporte e rastreamento.
          schema:
            type: string
          example: req_example
        Cache-Control:
          description: >-
            As respostas autenticadas não devem ser armazenadas por serviços
            HTTP compartilhados.
          schema:
            type: string
            const: no-store
          example: no-store
        Retry-After:
          description: Tempo em segundos antes de uma nova tentativa.
          schema:
            type: integer
            minimum: 1
          example: 2
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
          examples:
            erro:
              summary: Serviço temporariamente indisponível.
              value:
                error:
                  type: api_error
                  code: query_unavailable
                  message: Não foi possível concluir a consulta.
    error_504:
      description: Prazo de execução excedido.
      headers:
        Request-Id:
          description: Identificador da requisição para suporte e rastreamento.
          schema:
            type: string
          example: req_example
        Cache-Control:
          description: >-
            As respostas autenticadas não devem ser armazenadas por serviços
            HTTP compartilhados.
          schema:
            type: string
            const: no-store
          example: no-store
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
          examples:
            erro:
              summary: Prazo de execução excedido.
              value:
                error:
                  type: api_error
                  code: query_timeout
                  message: A consulta excedeu o prazo de execução.
  securitySchemes:
    bearer_auth:
      type: http
      scheme: bearer
      description: >-
        Credencial OAuth da Base39 com os escopos profile e user:org:read, ou
        chave de API pertencente à organização. A organização e o autor são
        obtidos da autenticação.

````

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