API pública da contemplei
Catálogo de cartas de consórcio contempladas em JSON, somente leitura, sem autenticação e com CORS aberto a qualquer origem. Feito para agentes de IA, integrações e quem quer consumir os mesmos dados que o site mostra.
Especificação e recursos para agentes
Especificação OpenAPI 3 das sete operações públicas, em JSON.
A mesma especificação em YAML.
Resumo do site para LLMs: páginas, quando usar, empresa e API.
Versão completa do llms.txt, com glossário e limitações.
Endpoints
Sete operações GET sob https://contemplei.app/v1/. Os resumos abaixo são os mesmos publicados na especificação OpenAPI; parâmetros e schemas completos estão no spec.
| Método | Caminho | O que devolve |
|---|---|---|
| GET | /v1/anuncios/publico | Catálogo público de cartas contempladas |
| GET | /v1/anuncios/publico/arena | Arena: cartas à venda em formato de tabela comparativa |
| GET | /v1/anuncios/publico/indexaveis | Cartas com página pública própria |
| GET | /v1/anuncios/publico/carta/{seoSlug} | Detalhe de uma carta pelo slug da página |
| GET | /v1/anuncios/publico/mercado | Ágio de mercado de cartas comparáveis |
| GET | /v1/anuncios/publico/{externalId} | Resumo público de uma carta pelo identificador |
| GET | /v1/anuncios/compartilhado/{slug} | Carta por link compartilhado |
Exemplo de chamada
Cartas de imóvel com crédito a partir de R$ 200.000, primeira página com 20 itens. Valores monetários são inteiros em centavos (BRL).
curl "https://contemplei.app/v1/anuncios/publico?segmentos=imoveis&creditoMin=20000000&page=1&pageSize=20"Filtros mais usados
- segmentos — imoveis, moveis ou servicos; aceita lista separada por vírgula.
- creditoMin e creditoMax — faixa do crédito da carta, em centavos.
- entradaMin, entradaMax, parcelaMin e parcelaMax — faixas de entrada e parcela, em centavos.
- administradoraIds — identificadores das administradoras, separados por vírgula.
- ordenarPor e ordem — campo e direção (asc ou desc) da ordenação.
- page e pageSize — paginação; pageSize vai até 100 (padrão 20).
Envelope de resposta
Toda resposta 2xx vem no envelope com as chaves data e meta. Nas listas paginadas (publico, arena e indexaveis) o meta traz total, page e pageSize; nas demais operações traz só success.
Lista paginada
{
"data": [
{"id":"5f0c1d2e-3a4b-4c5d-8e6f-7a8b9c0d1e2f","codigo":"IM-1024","seoSlug":"carta-contemplada-imoveis-hs-consorcios-250-mil-1024","segmento":"imoveis","creditoCents":25000000,"entradaCents":6000000,"parcelaSemSeguroCents":185000,"prazoRestanteMeses":120,"administradoraId":"0b1c2d3e-4f5a-4b6c-9d7e-8f9a0b1c2d3e","administradoraNome":"HS Consórcios"}
],
"meta": { "success": true, "total": 42, "page": 1, "pageSize": 20 }
}Objeto único
{
"data": { "id": "5f0c1d2e-3a4b-4c5d-8e6f-7a8b9c0d1e2f", "segmento": "imoveis", "creditoCents": 25000000 },
"meta": { "success": true }
}Modelo de erro
Toda resposta 4xx ou 5xx usa o mesmo objeto, sem envelope. O campo code é estável e serve para tratar o erro; message é legível e pode mudar. Guarde o requestId ao reportar um problema — ele também vai no header X-Request-Id.
{
"statusCode": 400,
"code": "BAD_REQUEST",
"message": "pageSize must not be greater than 100",
"requestId": "9f1c2a4e-7b3d-4c58-a1e2-0d6f8b9c3e11"
}Códigos
- 400 BAD_REQUEST — filtro, paginação ou parâmetro inválido (a mensagem lista as violações).
- 404 NOT_FOUND — slug ou identificador sem carta publicada correspondente.
- 422 VALIDATION — regra de negócio violada.
- 429 TOO_MANY_REQUESTS — limite de requisições excedido; veja Retry-After.
- 500 INTERNAL — falha inesperada; tente de novo e informe o requestId ao suporte.
Limite de requisições
O limite é por endereço IP e por janela de tempo (por padrão, 120 requisições por minuto). O valor vigente vem em toda resposta, nos headers padrão do IETF e nos X-RateLimit-* legados:
- RateLimit-Limit — quantidade de requisições permitidas na janela.
- RateLimit-Remaining — quantas ainda cabem na janela atual.
- RateLimit-Reset — segundos até a janela zerar.
- RateLimit-Policy — a política no formato limite;w=segundos.
Ao exceder o limite a API responde 429 com o modelo de erro acima e o header Retry-After em segundos. Respeite o Retry-After e identifique o seu agente no User-Agent.
Versionamento e compatibilidade
A versão vai na URL: todas as operações vivem em /v1/. Dentro de uma versão só entram mudanças compatíveis — campos e filtros novos, opcionais, nunca a remoção ou a mudança de tipo de algo já publicado. Trate campos desconhecidos como opcionais.
Mudanças incompatíveis só entram em uma versão nova (/v2/), com a anterior mantida em paralelo. Antes de desligar uma versão, a contemplei anuncia nesta página e no spec, e envia os headers Deprecation e Sunset nas respostas, com antecedência mínima de 90 dias.
CORS e autenticação
As operações desta página não pedem chave nem token, e respondem Access-Control-Allow-Origin: * para GET, HEAD e OPTIONS, então podem ser chamadas direto do navegador. Fazer proposta, anunciar e acompanhar uma negociação exigem conta e ficam fora da API pública.