Acessando o webservice de CEP

Para acessar o webservice, um CEP no formato de {8} dígitos deve ser fornecido, por exemplo: "01001000".
Após o CEP, deve ser fornecido o tipo de retorno desejado, por enquanto apenas "json".

Exemplo de pesquisa por CEP:
https://wscep.df.gov.br/ws/01001000/json

Validação do CEP

Quando consultado um CEP de formato inválido, por exemplo: "950100100" (9 dígitos), "95010A10" (alfanumérico), "95010 10" (espaço), o código de retorno da consulta será um 400 (Bad Request). Antes de acessar o webservice, valide o formato do CEP e certifique-se que o mesmo possua {8} dígitos. Exemplo de como validar o formato do CEP em javascript está disponível nos exemplos abaixo.

Quando consultado um CEP de formato válido, porém inexistente, por exemplo: "99999999", o retorno conterá um valor de "erro" igual a "true". Isso significa que o CEP consultado não foi encontrado na base de dados. Veja como manipular este "erro" em javascript nos exemplos abaixo.

Formatos de Retorno

Veja exemplos de acesso ao webservice e os diferentes tipos de retorno:

JSON

URL: https://wscep.df.gov.br/ws/01001000/json

      
    {
        "cep": "01001-000",
        "logradouro": "Praça da Sé",
        "complemento": "lado ímpar",
        "bairro": "Sé",
        "localidade": "São Paulo",
        "uf": "SP",
        "unidade": "",
        "ibge": "3550308",
        "gia": "1004"
    }

Limite de acesso

Este webservice está limitado a 60requisições/minuto/IP.

Toda resposta terá os seguintes headers HTTP:
X-RateLimit-Limit: Limite de requisições por minuto (60)
X-RateLimit-Remaining: Quantidade de requisições restantes

Caso o limite seja excedido, toda resposta retornará com o status 429 Too Many Requests, e os seguintes headers:
Retry-After: Tempo restante para que o limite seja resetado
X-RateLimit-Reset: Tempo em segundos desde o epoch em que o limite será resetado