PontoFato Cep API

The Cep API from PontoFato — 2 operation(s) for cep.

Operations 2

GET /api/cep/{cep} Pontos CNEFE de um CEP, com lat/lon IBGE — não é chute de mapa #
GET /api/cep/{cep}/unidades Unidades CNEFE de um CEP, com complemento, espécie e id — paginado #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/pontofato-cep-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

pontofato-cep-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: PontoFato Cep API
  version: 2d690e87
  description: 'Ponto e fato de um lugar no Brasil. Índice: GET /api/.'
servers:
- url: https://pontofato.com
tags:
- name: Cep
paths:
  /api/cep/{cep}:
    get:
      operationId: cep
      summary: Pontos CNEFE de um CEP, com lat/lon IBGE — não é chute de mapa
      description: 'Devolve: { cep, pontos[{cep,logradouro,numero,complemento,bairro,cidade,uf,lat,lon,ibge,especie,especie_label,tipo_edificacao,tipo_edificacao_codigo,estabelecimento,estabelecimentos,especies,setor,distrito,subdistrito,quadra,face,nv_geo,nv_geo_label,finalidade,indicador_estab,indicador_const,id_cnefe,tipo_logradouro,titulo_logradouro,nome_logradouro,modificador,unidades,complementos,_links,_origem}], resumo{address_count,edificios,bairro,cidade,uf,ibge,lat,lon,especies}, fonte, cobertura{ufs,completa}, _links }'
      parameters:
      - name: cep
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: '{ cep, pontos[{cep,logradouro,numero,complemento,bairro,cidade,uf,lat,lon,ibge,especie,especie_label,tipo_edificacao,tipo_edificacao_codigo,estabelecimento,estabelecimentos,especies,setor,distrito,subdistrito,quadra,face,nv_geo,nv_geo_label,finalidade,indicador_estab,indicador_const,id_cnefe,tipo_logradouro,titulo_logradouro,nome_logradouro,modificador,unidades,complementos,_links,_origem}], resumo{address_count,edificios,bairro,cidade,uf,ibge,lat,lon,especies}, fonte, cobertura{ufs,completa}, _links }'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Cep'
        '400':
          description: CEP inválido (tamanho ou `00000000`).
        '404':
          description: CEP bem-formado fora da base; `cobertura` diz quais UFs já existem.
        '503':
          description: Origem sqlite fora.
      tags:
      - Cep
  /api/cep/{cep}/unidades:
    get:
      operationId: unidades
      summary: Unidades CNEFE de um CEP, com complemento, espécie e id — paginado
      description: 'O lookup do CEP agrupa por logradouro+número. Esta rota devolve cada unidade (apartamento, loja) com o fato CNEFE. Sem `logradouro`/`numero`, pagina o CEP inteiro.

        Devolve: { cep, items[{cep,logradouro,numero,complemento,bairro,cidade,uf,lat,lon,ibge,especie,especie_label,tipo_edificacao,tipo_edificacao_codigo,estabelecimento,estabelecimentos,especies,setor,distrito,subdistrito,quadra,face,nv_geo,nv_geo_label,finalidade,indicador_estab,indicador_const,id_cnefe,tipo_logradouro,titulo_logradouro,nome_logradouro,modificador,unidades,complementos,_links,_origem}], total, limit, offset, hasMore, cobertura{ufs,completa}, _links }'
      parameters:
      - name: cep
        in: path
        required: true
        schema:
          type: string
      - name: logradouro
        in: query
        required: false
        schema:
          type: string
        description: Logradouro exatamente como no lookup (tipo + nome).
      - name: numero
        in: query
        required: false
        schema:
          type: string
        description: Número do edifício no CNEFE.
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          default: 50
        description: Itens por página, teto 50.
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          default: 0
        description: Deslocamento 0-based.
      responses:
        '200':
          description: '{ cep, items[{cep,logradouro,numero,complemento,bairro,cidade,uf,lat,lon,ibge,especie,especie_label,tipo_edificacao,tipo_edificacao_codigo,estabelecimento,estabelecimentos,especies,setor,distrito,subdistrito,quadra,face,nv_geo,nv_geo_label,finalidade,indicador_estab,indicador_const,id_cnefe,tipo_logradouro,titulo_logradouro,nome_logradouro,modificador,unidades,complementos,_links,_origem}], total, limit, offset, hasMore, cobertura{ufs,completa}, _links }'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unidades'
        '400':
          description: CEP inválido.
        '404':
          description: CEP fora da malha, ou o logradouro+número não existe nele.
      tags:
      - Cep
components:
  schemas:
    Unidades:
      type: object
      properties:
        cep:
          type: string
          description: CEP formatado.
        items:
          type: array
          items:
            $ref: '#/components/schemas/Ponto'
          description: Unidades desta página (complemento, espécie, id CNEFE).
        total:
          type: integer
          description: Quantas unidades batem o filtro.
        limit:
          type: integer
          description: Teto desta página.
        offset:
          type: integer
          description: Deslocamento pedido.
        hasMore:
          type: boolean
          description: '`true` se ainda há unidade depois desta página.'
        cobertura:
          allOf:
          - $ref: '#/components/schemas/Cobertura'
          description: UFs ingeridas agora.
        _links:
          type: object
          description: '`self` desta página e `cep` do lookup.'
      required:
      - cep
      - items
      - total
      - limit
      - offset
      - hasMore
      - cobertura
      - _links
      description: Unidades CNEFE de um CEP (ou de um logradouro+número), paginadas.
    Cobertura:
      type: object
      properties:
        ufs:
          type: array
          items:
            type: string
          description: Siglas presentes no disco, em ordem.
        completa:
          type: boolean
          description: '`true` só com as 27 UFs.'
      required:
      - ufs
      - completa
      description: Quais UFs já têm sqlite na origem.
    Ponto:
      type: object
      properties:
        cep:
          type: string
          description: CEP formatado da unidade ou do edifício.
          nullable: true
        logradouro:
          type: string
          description: Tipo + nome do logradouro, já juntados.
        numero:
          type: string
          description: Número no logradouro.
          nullable: true
        complemento:
          type: string
          description: Complementos do CNEFE, se houver.
          nullable: true
        bairro:
          type: string
          description: Localidade/bairro no cadastro.
        cidade:
          type: string
          description: Município IBGE.
        uf:
          type: string
          description: Sigla da unidade da federação.
        lat:
          type: number
          description: Latitude WGS84 do ponto.
          nullable: true
        lon:
          type: number
          description: Longitude WGS84 do ponto.
          nullable: true
        ibge:
          type: string
          description: Código IBGE do município.
          nullable: true
        especie:
          type: string
          description: Código da espécie CNEFE (`1`–`8`).
          nullable: true
        especie_label:
          type: string
          description: Rótulo IBGE da espécie.
          nullable: true
        tipo_edificacao:
          type: string
          description: Casa, apartamento, vila — `COD_TIPO_ESPECIE`.
          nullable: true
        tipo_edificacao_codigo:
          type: string
          description: Código `101`–`104`.
          nullable: true
        estabelecimento:
          type: string
          description: Nome do estabelecimento, quando a espécie tem.
          nullable: true
        estabelecimentos:
          type: array
          items:
            type: string
          description: Nomes distintos no edifício (amostra).
          nullable: true
        especies:
          type: array
          items:
            $ref: '#/components/schemas/EspecieContagem'
          description: Mistura de espécies neste logradouro+número.
          nullable: true
        setor:
          type: string
          description: Setor censitário.
          nullable: true
        distrito:
          type: string
          description: Código de distrito IBGE.
          nullable: true
        subdistrito:
          type: string
          description: Código de subdistrito IBGE.
          nullable: true
        quadra:
          type: string
          description: Número da quadra no setor.
          nullable: true
        face:
          type: string
          description: Número da face da quadra.
          nullable: true
        nv_geo:
          type: string
          description: Nível de geocodificação (`1`–`6`).
          nullable: true
        nv_geo_label:
          type: string
          description: O que o nível de geo significa.
          nullable: true
        finalidade:
          type: string
          description: Residencial, não residencial, misto ou indeterminado.
          nullable: true
        indicador_estab:
          type: string
          description: Único ou múltiplo estabelecimento no endereço.
          nullable: true
        indicador_const:
          type: string
          description: Único ou múltiplo em construção/reforma.
          nullable: true
        id_cnefe:
          type: string
          description: '`COD_UNICO_ENDERECO` da unidade (só no detalhe).'
          nullable: true
        tipo_logradouro:
          type: string
          description: Tipo (RUA, AVENIDA…).
          nullable: true
        titulo_logradouro:
          type: string
          description: Título (DOUTOR…), se houver.
          nullable: true
        nome_logradouro:
          type: string
          description: Nome do logradouro sem o tipo.
          nullable: true
        modificador:
          type: string
          description: Modificador do número (SN, KM…).
          nullable: true
        unidades:
          type: integer
          description: Quantas unidades CNEFE neste logradouro+número (apartamentos, salas).
        complementos:
          type: integer
          description: Complementos distintos no edifício.
          nullable: true
        _links:
          type: object
          description: '`unidades` absoluto para o detalhe paginado.'
          nullable: true
        _origem:
          type: string
          description: UF do sqlite que respondeu.
      required:
      - cep
      - logradouro
      - numero
      - complemento
      - bairro
      - cidade
      - uf
      - lat
      - lon
      - ibge
      - especie
      - especie_label
      - tipo_edificacao
      - tipo_edificacao_codigo
      - estabelecimento
      - estabelecimentos
      - especies
      - setor
      - distrito
      - subdistrito
      - quadra
      - face
      - nv_geo
      - nv_geo_label
      - finalidade
      - indicador_estab
      - indicador_const
      - id_cnefe
      - tipo_logradouro
      - titulo_logradouro
      - nome_logradouro
      - modificador
      - unidades
      - complementos
      - _links
      - _origem
      description: 'Um endereço CNEFE: número, coordenada IBGE e o fato que veio no CSV.'
    EspecieContagem:
      type: object
      properties:
        codigo:
          type: string
          description: Código IBGE da espécie (`1`–`8`).
          nullable: true
        label:
          type: string
          description: 'Rótulo: domicílio particular, ensino, saúde…'
          nullable: true
        n:
          type: integer
          description: Quantas unidades nesta espécie.
      required:
      - codigo
      - label
      - n
      description: Quantas unidades CNEFE de uma espécie no recorte.
    Cep:
      type: object
      properties:
        cep:
          type: string
          description: CEP formatado `NNNNN-NNN`.
        pontos:
          type: array
          items:
            $ref: '#/components/schemas/Ponto'
          description: Endereços distintos neste CEP (teto na origem).
        resumo:
          allOf:
          - $ref: '#/components/schemas/Resumo'
          description: Unidades, edifícios, espécies, bairro, cidade, UF e centroide.
        fonte:
          type: string
          description: Sempre `cnefe-2022` neste produto.
        cobertura:
          allOf:
          - $ref: '#/components/schemas/Cobertura'
          description: UFs ingeridas agora.
        _links:
          type: object
          description: '`self`, `empresas` e `unidades` absolutos.'
      required:
      - cep
      - pontos
      - resumo
      - fonte
      - cobertura
      - _links
      description: Pontos CNEFE de um CEP, com resumo e cobertura.
    Resumo:
      type: object
      properties:
        address_count:
          type: integer
          description: Unidades CNEFE no CEP (não é o número de prédios).
        edificios:
          type: integer
          description: Logradouro+número distintos no CEP.
        bairro:
          type: string
          description: Bairro mais frequente na amostra.
        cidade:
          type: string
          description: Município IBGE.
        uf:
          type: string
          description: Sigla da unidade da federação.
        ibge:
          type: string
          description: Código IBGE do município.
          nullable: true
        lat:
          type: number
          description: Latitude média dos edifícios devolvidos.
          nullable: true
        lon:
          type: number
          description: Longitude média dos edifícios devolvidos.
          nullable: true
        especies:
          type: array
          items:
            $ref: '#/components/schemas/EspecieContagem'
          description: Unidades por espécie no CEP inteiro.
      required:
      - address_count
      - edificios
      - bairro
      - cidade
      - uf
      - ibge
      - lat
      - lon
      - especies
      description: 'Síntese do CEP: quantos pontos, quantos edifícios, onde fica.'