ENEMHUB_API_KEY e a base
https://api.enemhub.com.br.
Listar os exames
É por aqui que se começa:/exams devolve o catálogo inteiro, sem paginação, e
é dele que saem os examId usados como filtro.
institution e type podem vir null para exames sem essa classificação.
Não assuma que estão preenchidos.Filtrar questões
GET /v1/vestibulares/questions aceita cinco filtros, todos opcionais e
combináveis:
Biológicas difíceis da FUVEST
examId, a listagem cobre todos os exames do produto, ENEM incluído.
Paginar até o fim
meta.total é a contagem do conjunto filtrado inteiro, então dá para calcular o
número de páginas antes de começar:
Espelhar o catálogo por exame
O caso mais comum de carga inicial: varrer exame a exame, para poder retomar de onde parou se algo falhar no meio.Buscar uma questão específica
Diferente da listagem, esta rota devolve a questão sem envelope:404:
Montar uma prova
Correta e alternativas vêm juntas na resposta, então embaralhar e esconder o gabarito é trabalho do seu lado:Lidar com limites
Toda resposta de/v1/* traz dois headers:
Ao estourar, a resposta é
429 com Retry-After: 60. São três limites
independentes:
- Por minuto — definido pelo plano.
- Por dia — 10.000 requisições, igual para todos os planos.
- Por mês — a cota do plano. Ao estourar, a mensagem pede upgrade.
Retry com backoff
Tratar erros
Um wrapper que cobre o caso comum: