{"openapi":"3.1.0","info":{"title":"CEP-XRay — Busca CEP","description":"API de consulta de CEP compatível com a Busca CEP dos Correios:\nmesmos caminhos, mesmos nomes de campo, mesmos códigos de retorno.\n\n**Três diferenças que nenhuma implementação fecha**, porque são da fonte e não\ndo código:\n\n* a base é um **retrato de uma competência** do extrato DNEC, não o DNE ao vivo;\n* **seis campos saem sempre nulos** — `abreviatura`, `numeroLocalidade`,\n  `cepUnidadeOperacional`, `numeroInicial`, `numeroFinal` e, fora de grande\n  usuário, `nomeUnidade`. O extrato não os traz, e preenchê-los exigiria\n  inventar dado. Ver a descrição de cada um no schema;\n* **três recursos devolvem 501** — cliques, caixas postais e agências modulares\n  respondem sobre cobertura de serviço por localidade, e o extrato não tem\n  atributo de serviço.\n","version":"2.0"},"paths":{"/saude":{"get":{"tags":["operação"],"summary":"Estado do pod e competência dos dados servidos","description":"**Não faz parte do contrato dos Correios** — é nossa, e fica fora de `/cep/` para não colidir com nenhum caminho futuro deles.\n\nSem autenticação: serve de sonda de vivacidade, e a competência é o oposto de informação sensível — quem consome precisa dela para saber a idade do dado.","operationId":"saude_saude_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Saude"}}}}}}},"/token/v1/autentica":{"post":{"tags":["autenticação"],"summary":"Emite o token de acesso","description":"Envie `Authorization: Basic base64(usuario:codigoAcesso)`. Devolve **201**, como os Correios.","operationId":"autentica_token_v1_autentica_post","responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Token"}}}},"401":{"description":"Houve falha na autenticação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}},"security":[{"HTTPBasic":[]}]}},"/cep/v2/enderecos/{cep}":{"get":{"tags":["endereços"],"summary":"Endereço por CEP","description":"Aceita com ou sem pontuação. **CEP não tem dígito verificador**: 400 é só para o que não tem forma de CEP; um CEP bem formado que não existe na base devolve 404.\n\nCEP sem logradouro próprio é resolvido pela faixa do município e sai com `tipoCEP: 2`.","operationId":"endereco_cep_v2_enderecos__cep__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"cep","in":"path","required":true,"schema":{"type":"string","title":"Cep"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Endereco"}}}},"400":{"description":"O CEP informado não é válido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Houve falha na autenticação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Acesso negado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"404":{"description":"Nenhum registro encontrado para o CEP informado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"500":{"description":"Erro interno inesperado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/cep/v2/enderecos":{"get":{"tags":["endereços"],"summary":"Listagem paginada de endereços","description":"Exige ao menos um filtro entre `uf`, `localidade`, `bairro` e `logradouro` — sem filtro, a resposta seria uma paginação sobre 1,72 milhão de linhas.\n\nA comparação por nome ignora acento e caixa (collation `WIN_PTBR`): `localidade=sao paulo` acha *São Paulo*. `logradouro` casa por **prefixo**; busca por trecho no meio do nome não existe no Firebird 3.0.","operationId":"listar_enderecos_cep_v2_enderecos_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"uf","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Uf"}},{"name":"localidade","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"id da localidade","title":"Localidade"},"description":"id da localidade"},{"name":"bairro","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bairro"}},{"name":"logradouro","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logradouro"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Page"}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":50,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginaEnderecos"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Houve falha na autenticação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"404":{"description":"Nenhum registro encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"500":{"description":"Erro interno inesperado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"501":{"description":"A base construída a partir do extrato DNEC não tem o dado que alimenta este recurso. A rota existe no contrato e devolve 501 em vez de um resultado inventado.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NaoImplementado"}}}}}}},"/cep/v1/localidades/cliques":{"get":{"tags":["não implementado"],"summary":"Localidades com Clique e Retire (501)","description":"O extrato DNEC não tem atributo de serviço por localidade. O texto 'Clique e Retire Correios' aparece em 8.481 complementos, mas descreve aquele CEP, não a cobertura do município — derivar a lista dali seria um palpite com aparência de resposta.","operationId":"_handler_cep_v1_localidades_cliques_get","responses":{"501":{"description":"A base construída a partir do extrato DNEC não tem o dado que alimenta este recurso. A rota existe no contrato e devolve 501 em vez de um resultado inventado.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NaoImplementado"}}}},"401":{"description":"Houve falha na autenticação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}},"security":[{"HTTPBearer":[]}]}},"/cep/v1/localidades/caixas-postais":{"get":{"tags":["não implementado"],"summary":"Localidades com caixa postal (501)","description":"O extrato DNEC não tem atributo de serviço por localidade. 'caixa postal' aparece em 4 complementos de 241.725 — número que por si só mostra que não é a cobertura do serviço.","operationId":"_handler_cep_v1_localidades_caixas_postais_get","responses":{"501":{"description":"A base construída a partir do extrato DNEC não tem o dado que alimenta este recurso. A rota existe no contrato e devolve 501 em vez de um resultado inventado.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NaoImplementado"}}}},"401":{"description":"Houve falha na autenticação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}},"security":[{"HTTPBearer":[]}]}},"/cep/v1/localidades/agencias-modulares":{"get":{"tags":["não implementado"],"summary":"Localidades com agência modular (501)","description":"O extrato DNEC não tem atributo de serviço por localidade, e 'agência modular' não aparece em nenhum complemento.","operationId":"_handler_cep_v1_localidades_agencias_modulares_get","responses":{"501":{"description":"A base construída a partir do extrato DNEC não tem o dado que alimenta este recurso. A rota existe no contrato e devolve 501 em vez de um resultado inventado.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NaoImplementado"}}}},"401":{"description":"Houve falha na autenticação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}},"security":[{"HTTPBearer":[]}]}},"/cep/v1/localidades":{"get":{"tags":["localidades"],"summary":"Municípios","operationId":"listar_localidades_cep_v1_localidades_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"uf","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Uf"}},{"name":"nome","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"casa por prefixo","title":"Nome"},"description":"casa por prefixo"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Page"}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":50,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginaLocalidades"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Houve falha na autenticação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"404":{"description":"Nenhum registro encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"500":{"description":"Erro interno inesperado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"501":{"description":"A base construída a partir do extrato DNEC não tem o dado que alimenta este recurso. A rota existe no contrato e devolve 501 em vez de um resultado inventado.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NaoImplementado"}}}}}}},"/cep/v1/localidades/{uf}":{"get":{"tags":["localidades"],"summary":"Municípios de uma UF","operationId":"localidades_da_uf_cep_v1_localidades__uf__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"uf","in":"path","required":true,"schema":{"type":"string","title":"Uf"}},{"name":"nome","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nome"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Page"}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":50,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginaLocalidades"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Houve falha na autenticação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"404":{"description":"Nenhum registro encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"500":{"description":"Erro interno inesperado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"501":{"description":"A base construída a partir do extrato DNEC não tem o dado que alimenta este recurso. A rota existe no contrato e devolve 501 em vez de um resultado inventado.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NaoImplementado"}}}}}}},"/cep/v1/bairros/{uf}/localidades/{localidade}":{"get":{"tags":["localidades"],"summary":"Bairros de um município","operationId":"listar_bairros_cep_v1_bairros__uf__localidades__localidade__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"uf","in":"path","required":true,"schema":{"type":"string","title":"Uf"}},{"name":"localidade","in":"path","required":true,"schema":{"type":"integer","title":"Localidade"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Page"}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":50,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginaBairros"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Houve falha na autenticação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"404":{"description":"Nenhum registro encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"500":{"description":"Erro interno inesperado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/cep/v1/ufs":{"get":{"tags":["localidades"],"summary":"Unidades federativas e suas faixas de CEP","operationId":"listar_ufs_cep_v1_ufs_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/UF"},"type":"array","title":"Response Listar Ufs Cep V1 Ufs Get"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Houve falha na autenticação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"404":{"description":"Nenhum registro encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"500":{"description":"Erro interno inesperado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}},"security":[{"HTTPBearer":[]}]}},"/cep/v1/ufs/{uf}":{"get":{"tags":["localidades"],"summary":"Uma unidade federativa","operationId":"uma_uf_cep_v1_ufs__uf__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"uf","in":"path","required":true,"schema":{"type":"string","title":"Uf"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UF"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Houve falha na autenticação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"404":{"description":"Nenhum registro encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"500":{"description":"Erro interno inesperado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/cep/v1/atualizacao":{"get":{"tags":["operação"],"summary":"Competência do extrato que este pod está servindo","operationId":"atualizacao_cep_v1_atualizacao_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Atualizacao"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Houve falha na autenticação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"404":{"description":"Nenhum registro encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"500":{"description":"Erro interno inesperado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}},"security":[{"HTTPBearer":[]}]}}},"components":{"schemas":{"Atualizacao":{"properties":{"competencia":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Competencia","examples":["2026-10"]},"atualizadoEm":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Atualizadoem","examples":["2026-09-21T15:53:47+00:00"]},"totalRegistros":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Totalregistros","examples":[2171508]}},"type":"object","title":"Atualizacao"},"Bairro":{"properties":{"id":{"type":"integer","title":"Id"},"nome":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nome"},"uf":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Uf"},"idLocalidade":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Idlocalidade"},"latitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Latitude"},"longitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Longitude"}},"type":"object","required":["id"],"title":"Bairro"},"Endereco":{"properties":{"cep":{"type":"string","title":"Cep","examples":["01001000"]},"uf":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Uf","examples":["SP"]},"localidade":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Localidade","examples":["São Paulo"]},"numeroLocalidade":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Numerolocalidade","description":"SEMPRE NULO. É o código de localidade dos Correios (LOC_NU do DNE), que este extrato não traz. NÃO é o código do IBGE — esse sai em `codigoIbge`, no recurso de localidade, sob o seu próprio nome."},"logradouro":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logradouro","examples":["da Sé"]},"tipoLogradouro":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tipologradouro","examples":["Praça"]},"complemento":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Complemento","examples":["lado ímpar"]},"abreviatura":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Abreviatura","description":"SEMPRE NULO. É LOG_NO_ABREV do DNE; o extrato não a traz."},"bairro":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bairro","examples":["Sé"]},"tipoCEP":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Tipocep","description":"1 logradouro, 2 localidade (CEP geral de município, sem logradouro próprio), 3 grande usuário. Os valores 4 (unidade operacional) e 5 (caixa postal comunitária) NUNCA são emitidos: nada no extrato os distingue.","examples":[1]},"cepUnidadeOperacional":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cepunidadeoperacional","description":"SEMPRE NULO. Não existe no extrato."},"lado":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lado","description":"'P' ou 'I', derivado do texto do complemento. Nulo quando o complemento não diz, ou quando diz os dois (51 casos medidos de faixa composta).","examples":["I"]},"numeroInicial":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Numeroinicial","description":"SEMPRE NULO. Seria parcialmente inferível por regex sobre a prosa do complemento ('até 318 lado par'), e não é: 'ao fim' não é número, e o cliente receberia um intervalo que a fonte nunca afirmou. O texto cru fica em `complemento`."},"numeroFinal":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Numerofinal","description":"SEMPRE NULO."},"nomeUnidade":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nomeunidade","description":"Nome do grande usuário dono do CEP. Preenchido em 20.508 dos CEPs da base; nulo nos demais.","examples":["Empresa Brasileira de Correios e Telégrafos (ECT)"]}},"type":"object","required":["cep"],"title":"Endereco"},"Erro":{"properties":{"message":{"type":"string","title":"Message","examples":["O CEP informado não é válido"]}},"type":"object","required":["message"],"title":"Erro"},"Faixa":{"properties":{"faixaInicial":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Faixainicial","examples":["01000000"]},"faixaFinal":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Faixafinal","examples":["19999999"]}},"type":"object","title":"Faixa"},"Localidade":{"properties":{"id":{"type":"integer","title":"Id"},"nome":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nome"},"uf":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Uf"},"numeroLocalidade":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Numerolocalidade","description":"SEMPRE NULO. Ver `Endereco.numeroLocalidade`."},"codigoIbge":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Codigoibge","examples":["3550308"]},"ddd":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ddd","examples":["11"]},"latitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Latitude"},"longitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Longitude"},"faixaInicial":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Faixainicial"},"faixaFinal":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Faixafinal"}},"type":"object","required":["id"],"title":"Localidade"},"NaoImplementado":{"properties":{"message":{"type":"string","title":"Message","examples":["A base não tem o atributo de serviço por localidade"]},"recurso":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recurso","examples":["/cep/v1/localidades/cliques"]}},"type":"object","required":["message"],"title":"NaoImplementado","description":"Corpo do 501.\n\nNomeia o que falta e por quê, em vez de devolver 501 mudo: quem integra\nprecisa saber se é uma rota que nunca vai existir aqui ou um filtro que a\nbase não alimenta."},"Pagina":{"properties":{"number":{"type":"integer","title":"Number"},"size":{"type":"integer","title":"Size"},"totalElements":{"type":"integer","title":"Totalelements"},"totalPages":{"type":"integer","title":"Totalpages"}},"type":"object","required":["number","size","totalElements","totalPages"],"title":"Pagina"},"PaginaBairros":{"properties":{"itens":{"items":{"$ref":"#/components/schemas/Bairro"},"type":"array","title":"Itens"},"page":{"$ref":"#/components/schemas/Pagina"}},"type":"object","required":["itens","page"],"title":"PaginaBairros"},"PaginaEnderecos":{"properties":{"itens":{"items":{"$ref":"#/components/schemas/Endereco"},"type":"array","title":"Itens"},"page":{"$ref":"#/components/schemas/Pagina"}},"type":"object","required":["itens","page"],"title":"PaginaEnderecos"},"PaginaLocalidades":{"properties":{"itens":{"items":{"$ref":"#/components/schemas/Localidade"},"type":"array","title":"Itens"},"page":{"$ref":"#/components/schemas/Pagina"}},"type":"object","required":["itens","page"],"title":"PaginaLocalidades"},"Saude":{"properties":{"status":{"type":"string","title":"Status","examples":["ok"]},"competencia":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Competencia","description":"Competência do extrato DNEC de onde vieram os dados.","examples":["2026-10"]},"construidaEm":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Construidaem","description":"Quando a base foi construída — distinto da competência: reconstruir uma competência antiga produz arquivo novo com dado velho.","examples":["2026-09-21T15:53:47+00:00"]},"linhas":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Linhas"},"baseSomenteLeitura":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Basesomenteleitura"}},"type":"object","required":["status"],"title":"Saude","description":"Estado do pod e **proveniência do dado que ele está servindo**.\n\n`competencia` é o campo que importa. Sem ele, quem recebe uma resposta não\ntem como saber se o dado é de outubro ou de março — e a diferença aparece\njustamente onde dói: um CEP novo que ainda não entrou, uma rua que mudou\nde nome."},"Token":{"properties":{"token":{"type":"string","title":"Token","examples":["eyJhbGciOiJIUzI1NiJ9..."]},"expiraEm":{"type":"string","title":"Expiraem","examples":["2026-10-01T12:00:00+00:00"]},"emissao":{"type":"string","title":"Emissao","examples":["2026-10-01T11:00:00+00:00"]},"ambiente":{"type":"string","title":"Ambiente","examples":["PRODUCAO"]},"apis":{"items":{"type":"string"},"type":"array","title":"Apis","examples":[["cep"]]}},"type":"object","required":["token","expiraEm","emissao","ambiente","apis"],"title":"Token"},"UF":{"properties":{"uf":{"type":"string","title":"Uf","examples":["SP"]},"nome":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nome","examples":["São Paulo"]},"capital":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Capital","examples":["São Paulo"]},"regiao":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Regiao","examples":["Sudeste"]},"faixaInicial":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Faixainicial"},"faixaFinal":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Faixafinal"},"latitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Latitude"},"longitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Longitude"},"faixas":{"items":{"$ref":"#/components/schemas/Faixa"},"type":"array","title":"Faixas","description":"Extensão nossa, não campo do manual: a base tem até 3 faixas por UF (Goiás tem a da capital destacada), e devolver só uma daria resposta que parece completa e não é."}},"type":"object","required":["uf"],"title":"UF"}},"securitySchemes":{"HTTPBasic":{"type":"http","description":"Usuário e código de acesso","scheme":"basic"},"HTTPBearer":{"type":"http","description":"Token obtido em POST /token/v1/autentica","scheme":"bearer"}}}}