Postmon

Tracking API · Brazilian CEP · Package tracking · Address lookup

TL;DR

Postmon is a free API for Brazilian postal services. Look up any CEP (Brazilian ZIP code) to get full address details including street, neighborhood, city, state, and IBGE code. Also supports package tracking for Correios (Brazilian postal service) orders. No API key required. An essential tool for any Brazilian e-commerce, delivery, or logistics application.

Quick start: http://postmon.com.br/cep/01001000

No API key needed — free Brazilian postal data!

How to Use This API

1. Look Up a CEP (ZIP Code)

Get address details for any Brazilian CEP (São Paulo — Praça da Sé):

http://postmon.com.br/cep/01001000

2. Track a Package

Track a Correios package by its tracking code:

http://postmon.com.br/track/PN123456789BR

3. JavaScript — Auto-fill Address Form

const cep = document.getElementById('cep').value.replace(/\D/g, '');
if (cep.length === 8) {
  fetch(`http://postmon.com.br/cep/${cep}`)
    .then(r => r.json())
    .then(addr => {
      document.getElementById('street').value = addr.logradouro;
      document.getElementById('neighborhood').value = addr.bairro;
      document.getElementById('city').value = addr.cidade;
      document.getElementById('state').value = addr.estado;
    })
    .catch(() => alert('CEP not found'));
}

4. Python — Bulk CEP Validation

import requests

ceps = ['01001000', '20040030', '30130010', 'invalid']
for cep in ceps:
    try:
        r = requests.get(f'http://postmon.com.br/cep/{cep}')
        if r.status_code == 200:
            addr = r.json()
            print(f"{cep}: {addr.get('logradouro', 'N/A')}, {addr['cidade']}/{addr['estado']}")
        else:
            print(f"{cep}: Not found")
    except:
        print(f"{cep}: Error")
Look up CEP 01001000: http://postmon.com.br/cep/01001000

Frequently Asked Questions

What address fields does the API return?
For each CEP, the API returns logradouro (street), bairro (neighborhood), cidade (city), estado (state), cep, and cidade_info (IBGE code and area code).
How do I format a CEP for the API?
Use 8 digits only (no dashes or dots). The API accepts 01001000 but not 01001-000. Strip formatting characters before making the request.
Does Postmon support package tracking?
Yes — use the /track/{code} endpoint with a Correios tracking code (usually starts with two letters followed by numbers and ending with BR). Returns tracking events with dates, locations, and status.
Is the data up to date?
The CEP database is derived from official Correios data and is regularly updated. New CEPs and address changes are reflected within a reasonable timeframe.
Are there any rate limits?
Postmon is free for reasonable use. If you need high-volume access, consider running your own instance — the project is open source.
Does it cover all Brazilian CEPs?
Yes — it covers the full range of Brazilian CEPs from 01000000 to 99999999, including all 26 states plus the Federal District.

API Details

API URL
http://postmon.com.br/
Documentation
postmon.com.br
Category
Tracking
Authentication
Not Required
Geographic Coverage
Brazil — all 26 states + Federal District

What You Can Build