{"openapi": "3.1.0", "info": {"title": "Medalhas API", "version": "1.1.0", "description": "Medalhistas brasileiros em olimpíadas científicas (OBMEP, OBM, OBI, IMO, Ibero…). Sem autenticação. Limite por IP: {\"api_publica\": {\"consultas\": 60, \"a_cada_segundos\": 60, \"por_dia\": 2000}, \"exportacao\": {\"consultas\": 20, \"a_cada_segundos\": 3600, \"por_dia\": 100}, \"conexoes_simultaneas_por_ip\": 12, \"bloqueio_por_abuso\": {\"recusas\": 30, \"em_segundos\": 60, \"bloqueio_segundos\": 600}}"}, "servers": [{"url": "https://medalhas.online"}], "tags": [{"name": "Consulta"}, {"name": "Dados completos"}, {"name": "Referência"}], "paths": {"/api/v1/alunos": {"get": {"tags": ["Consulta"], "summary": "Buscar alunos pelo nome", "description": "Todas as palavras precisam aparecer no nome (em qualquer ordem; acentos ignorados). Quem tem exatamente o nome pesquisado vem primeiro.", "parameters": [{"name": "nome", "in": "query", "required": true, "description": "Nome ou parte do nome", "schema": {"type": "string"}, "example": "erick akira koga"}, {"name": "escola", "in": "query", "required": false, "description": "Só premiações por esta escola (aceita siglas)", "schema": {"type": "string"}}, {"name": "premiacoes", "in": "query", "required": false, "description": "1 (padrão) inclui a lista de premiações; 0 só o resumo", "schema": {"type": "string"}}, {"name": "metodo", "in": "query", "required": false, "description": "Método de pontuação que ordena os resultados: impa (padrão), impa3 ou site", "schema": {"type": "string"}}, {"name": "uf", "in": "query", "required": false, "description": "Sigla do estado (ex.: SP)", "schema": {"type": "string"}, "example": "SP"}, {"name": "municipio", "in": "query", "required": false, "description": "Município (acentos ignorados)", "schema": {"type": "string"}}, {"name": "competicao", "in": "query", "required": false, "description": "Uma ou mais olimpíadas separadas por vírgula (siglas em /olimpiadas)", "schema": {"type": "string"}, "example": "OBMEP,OBM"}, {"name": "area", "in": "query", "required": false, "description": "Área (Matemática, Informática…)", "schema": {"type": "string"}}, {"name": "medalha", "in": "query", "required": false, "description": "Ouro, Prata, Bronze ou Menção Honrosa", "schema": {"type": "string"}}, {"name": "nivel", "in": "query", "required": false, "description": "Um ou mais níveis separados por vírgula (ex.: 3 ou 1,2,3,Universitário)", "schema": {"type": "string"}, "example": "3"}, {"name": "ano", "in": "query", "required": false, "description": "Ano exato", "schema": {"type": "integer"}}, {"name": "ano_de", "in": "query", "required": false, "description": "A partir do ano", "schema": {"type": "integer"}}, {"name": "ano_ate", "in": "query", "required": false, "description": "Até o ano", "schema": {"type": "integer"}}, {"name": "rede", "in": "query", "required": false, "description": "publica ou privada", "schema": {"type": "string"}}, {"name": "limite", "in": "query", "required": false, "description": "Itens por página", "schema": {"type": "integer"}}, {"name": "offset", "in": "query", "required": false, "description": "Quantos itens pular", "schema": {"type": "integer"}}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"type": "object"}}}}, "400": {"description": "Parâmetro inválido", "content": {"application/json": {"schema": {"type": "object"}, "example": {"erro": "parâmetro inválido: informe o parâmetro 'nome'"}}}}, "404": {"description": "Aluno, escola ou rota não encontrados", "content": {"application/json": {"schema": {"type": "object"}, "example": {"erro": "aluno não encontrado"}}}}, "429": {"description": "Limite de consultas atingido; veja o cabeçalho Retry-After (segundos)", "headers": {"Retry-After": {"schema": {"type": "integer"}}}}, "503": {"description": "Servidor ocupado; tente de novo em alguns segundos"}}}}, "/api/v1/alunos/{id}": {"get": {"tags": ["Consulta"], "summary": "Um aluno e todas as premiações dele", "description": "Use o `id` devolvido pela busca. Aceita os mesmos filtros para restringir as premiações.", "parameters": [{"name": "id", "in": "path", "required": true, "description": "Id do aluno (campo `id` da busca), codificado na URL", "schema": {"type": "string"}, "example": "ERICK AKIRA KOGA|SP"}, {"name": "uf", "in": "query", "required": false, "description": "Sigla do estado (ex.: SP)", "schema": {"type": "string"}, "example": "SP"}, {"name": "municipio", "in": "query", "required": false, "description": "Município (acentos ignorados)", "schema": {"type": "string"}}, {"name": "competicao", "in": "query", "required": false, "description": "Uma ou mais olimpíadas separadas por vírgula (siglas em /olimpiadas)", "schema": {"type": "string"}, "example": "OBMEP,OBM"}, {"name": "area", "in": "query", "required": false, "description": "Área (Matemática, Informática…)", "schema": {"type": "string"}}, {"name": "medalha", "in": "query", "required": false, "description": "Ouro, Prata, Bronze ou Menção Honrosa", "schema": {"type": "string"}}, {"name": "nivel", "in": "query", "required": false, "description": "Um ou mais níveis separados por vírgula (ex.: 3 ou 1,2,3,Universitário)", "schema": {"type": "string"}, "example": "3"}, {"name": "ano", "in": "query", "required": false, "description": "Ano exato", "schema": {"type": "integer"}}, {"name": "ano_de", "in": "query", "required": false, "description": "A partir do ano", "schema": {"type": "integer"}}, {"name": "ano_ate", "in": "query", "required": false, "description": "Até o ano", "schema": {"type": "integer"}}, {"name": "rede", "in": "query", "required": false, "description": "publica ou privada", "schema": {"type": "string"}}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"type": "object"}}}}, "400": {"description": "Parâmetro inválido", "content": {"application/json": {"schema": {"type": "object"}, "example": {"erro": "parâmetro inválido: informe o parâmetro 'nome'"}}}}, "404": {"description": "Aluno, escola ou rota não encontrados", "content": {"application/json": {"schema": {"type": "object"}, "example": {"erro": "aluno não encontrado"}}}}, "429": {"description": "Limite de consultas atingido; veja o cabeçalho Retry-After (segundos)", "headers": {"Retry-After": {"schema": {"type": "integer"}}}}, "503": {"description": "Servidor ocupado; tente de novo em alguns segundos"}}}}, "/api/v1/escolas": {"get": {"tags": ["Consulta"], "summary": "Buscar escolas pelo nome", "description": "Aceita siglas (IFAL, ETEC, EEEFM…) e ignora acentos e ordem das palavras.", "parameters": [{"name": "nome", "in": "query", "required": true, "description": "Nome ou sigla da escola", "schema": {"type": "string"}, "example": "ifal"}, {"name": "metodo", "in": "query", "required": false, "description": "Método de pontuação que ordena os resultados: impa (padrão), impa3 ou site", "schema": {"type": "string"}}, {"name": "uf", "in": "query", "required": false, "description": "Sigla do estado (ex.: SP)", "schema": {"type": "string"}, "example": "SP"}, {"name": "municipio", "in": "query", "required": false, "description": "Município (acentos ignorados)", "schema": {"type": "string"}}, {"name": "competicao", "in": "query", "required": false, "description": "Uma ou mais olimpíadas separadas por vírgula (siglas em /olimpiadas)", "schema": {"type": "string"}, "example": "OBMEP,OBM"}, {"name": "area", "in": "query", "required": false, "description": "Área (Matemática, Informática…)", "schema": {"type": "string"}}, {"name": "medalha", "in": "query", "required": false, "description": "Ouro, Prata, Bronze ou Menção Honrosa", "schema": {"type": "string"}}, {"name": "nivel", "in": "query", "required": false, "description": "Um ou mais níveis separados por vírgula (ex.: 3 ou 1,2,3,Universitário)", "schema": {"type": "string"}, "example": "3"}, {"name": "ano", "in": "query", "required": false, "description": "Ano exato", "schema": {"type": "integer"}}, {"name": "ano_de", "in": "query", "required": false, "description": "A partir do ano", "schema": {"type": "integer"}}, {"name": "ano_ate", "in": "query", "required": false, "description": "Até o ano", "schema": {"type": "integer"}}, {"name": "rede", "in": "query", "required": false, "description": "publica ou privada", "schema": {"type": "string"}}, {"name": "limite", "in": "query", "required": false, "description": "Itens por página", "schema": {"type": "integer"}}, {"name": "offset", "in": "query", "required": false, "description": "Quantos itens pular", "schema": {"type": "integer"}}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"type": "object"}}}}, "400": {"description": "Parâmetro inválido", "content": {"application/json": {"schema": {"type": "object"}, "example": {"erro": "parâmetro inválido: informe o parâmetro 'nome'"}}}}, "404": {"description": "Aluno, escola ou rota não encontrados", "content": {"application/json": {"schema": {"type": "object"}, "example": {"erro": "aluno não encontrado"}}}}, "429": {"description": "Limite de consultas atingido; veja o cabeçalho Retry-After (segundos)", "headers": {"Retry-After": {"schema": {"type": "integer"}}}}, "503": {"description": "Servidor ocupado; tente de novo em alguns segundos"}}}}, "/api/v1/escolas/{id}": {"get": {"tags": ["Consulta"], "summary": "Resumo de uma escola", "description": "Medalhas, pontos, posições e grafias do nome.", "parameters": [{"name": "id", "in": "path", "required": true, "description": "Id da escola (campo `id` da busca), codificado na URL", "schema": {"type": "string"}}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"type": "object"}}}}, "400": {"description": "Parâmetro inválido", "content": {"application/json": {"schema": {"type": "object"}, "example": {"erro": "parâmetro inválido: informe o parâmetro 'nome'"}}}}, "404": {"description": "Aluno, escola ou rota não encontrados", "content": {"application/json": {"schema": {"type": "object"}, "example": {"erro": "aluno não encontrado"}}}}, "429": {"description": "Limite de consultas atingido; veja o cabeçalho Retry-After (segundos)", "headers": {"Retry-After": {"schema": {"type": "integer"}}}}, "503": {"description": "Servidor ocupado; tente de novo em alguns segundos"}}}}, "/api/v1/escolas/{id}/medalhistas": {"get": {"tags": ["Consulta"], "summary": "Todos os medalhistas de uma escola", "description": "Cada aluno premiado pela escola com as premiações por ela. Pagine com limite/offset (até 500).", "parameters": [{"name": "id", "in": "path", "required": true, "description": "Id da escola (campo `id` da busca), codificado na URL", "schema": {"type": "string"}}, {"name": "nome", "in": "query", "required": false, "description": "Filtra alunos pelo nome", "schema": {"type": "string"}}, {"name": "ordem", "in": "query", "required": false, "description": "pontos (padrão), nome ou recentes", "schema": {"type": "string"}}, {"name": "metodo", "in": "query", "required": false, "description": "Método de pontuação que ordena os resultados: impa (padrão), impa3 ou site", "schema": {"type": "string"}}, {"name": "uf", "in": "query", "required": false, "description": "Sigla do estado (ex.: SP)", "schema": {"type": "string"}, "example": "SP"}, {"name": "municipio", "in": "query", "required": false, "description": "Município (acentos ignorados)", "schema": {"type": "string"}}, {"name": "competicao", "in": "query", "required": false, "description": "Uma ou mais olimpíadas separadas por vírgula (siglas em /olimpiadas)", "schema": {"type": "string"}, "example": "OBMEP,OBM"}, {"name": "area", "in": "query", "required": false, "description": "Área (Matemática, Informática…)", "schema": {"type": "string"}}, {"name": "medalha", "in": "query", "required": false, "description": "Ouro, Prata, Bronze ou Menção Honrosa", "schema": {"type": "string"}}, {"name": "nivel", "in": "query", "required": false, "description": "Um ou mais níveis separados por vírgula (ex.: 3 ou 1,2,3,Universitário)", "schema": {"type": "string"}, "example": "3"}, {"name": "ano", "in": "query", "required": false, "description": "Ano exato", "schema": {"type": "integer"}}, {"name": "ano_de", "in": "query", "required": false, "description": "A partir do ano", "schema": {"type": "integer"}}, {"name": "ano_ate", "in": "query", "required": false, "description": "Até o ano", "schema": {"type": "integer"}}, {"name": "rede", "in": "query", "required": false, "description": "publica ou privada", "schema": {"type": "string"}}, {"name": "limite", "in": "query", "required": false, "description": "Itens por página", "schema": {"type": "integer"}}, {"name": "offset", "in": "query", "required": false, "description": "Quantos itens pular", "schema": {"type": "integer"}}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"type": "object"}}}}, "400": {"description": "Parâmetro inválido", "content": {"application/json": {"schema": {"type": "object"}, "example": {"erro": "parâmetro inválido: informe o parâmetro 'nome'"}}}}, "404": {"description": "Aluno, escola ou rota não encontrados", "content": {"application/json": {"schema": {"type": "object"}, "example": {"erro": "aluno não encontrado"}}}}, "429": {"description": "Limite de consultas atingido; veja o cabeçalho Retry-After (segundos)", "headers": {"Retry-After": {"schema": {"type": "integer"}}}}, "503": {"description": "Servidor ocupado; tente de novo em alguns segundos"}}}}, "/api/v1/premiacoes": {"get": {"tags": ["Dados completos"], "summary": "Todas as premiações (paginado)", "description": "Base inteira ou filtrada, uma premiação por item, em ordem estável. Até 1000 por página; siga `proxima_pagina`. Para baixar tudo de uma vez, use /exportar.", "parameters": [{"name": "nome", "in": "query", "required": false, "description": "Nome do aluno", "schema": {"type": "string"}}, {"name": "escola", "in": "query", "required": false, "description": "Nome ou sigla da escola", "schema": {"type": "string"}}, {"name": "busca", "in": "query", "required": false, "description": "Texto em nome, escola ou município", "schema": {"type": "string"}}, {"name": "aluno_id", "in": "query", "required": false, "description": "Só deste aluno", "schema": {"type": "string"}}, {"name": "escola_id", "in": "query", "required": false, "description": "Só desta escola", "schema": {"type": "string"}}, {"name": "uf", "in": "query", "required": false, "description": "Sigla do estado (ex.: SP)", "schema": {"type": "string"}, "example": "SP"}, {"name": "municipio", "in": "query", "required": false, "description": "Município (acentos ignorados)", "schema": {"type": "string"}}, {"name": "competicao", "in": "query", "required": false, "description": "Uma ou mais olimpíadas separadas por vírgula (siglas em /olimpiadas)", "schema": {"type": "string"}, "example": "OBMEP,OBM"}, {"name": "area", "in": "query", "required": false, "description": "Área (Matemática, Informática…)", "schema": {"type": "string"}}, {"name": "medalha", "in": "query", "required": false, "description": "Ouro, Prata, Bronze ou Menção Honrosa", "schema": {"type": "string"}}, {"name": "nivel", "in": "query", "required": false, "description": "Um ou mais níveis separados por vírgula (ex.: 3 ou 1,2,3,Universitário)", "schema": {"type": "string"}, "example": "3"}, {"name": "ano", "in": "query", "required": false, "description": "Ano exato", "schema": {"type": "integer"}}, {"name": "ano_de", "in": "query", "required": false, "description": "A partir do ano", "schema": {"type": "integer"}}, {"name": "ano_ate", "in": "query", "required": false, "description": "Até o ano", "schema": {"type": "integer"}}, {"name": "rede", "in": "query", "required": false, "description": "publica ou privada", "schema": {"type": "string"}}, {"name": "limite", "in": "query", "required": false, "description": "Itens por página", "schema": {"type": "integer"}}, {"name": "offset", "in": "query", "required": false, "description": "Quantos itens pular", "schema": {"type": "integer"}}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"type": "object"}}}}, "400": {"description": "Parâmetro inválido", "content": {"application/json": {"schema": {"type": "object"}, "example": {"erro": "parâmetro inválido: informe o parâmetro 'nome'"}}}}, "404": {"description": "Aluno, escola ou rota não encontrados", "content": {"application/json": {"schema": {"type": "object"}, "example": {"erro": "aluno não encontrado"}}}}, "429": {"description": "Limite de consultas atingido; veja o cabeçalho Retry-After (segundos)", "headers": {"Retry-After": {"schema": {"type": "integer"}}}}, "503": {"description": "Servidor ocupado; tente de novo em alguns segundos"}}}}, "/api/v1/ranking/{tipo}": {"get": {"tags": ["Dados completos"], "summary": "Ranking de alunos, escolas ou estados", "description": "Mesmos critérios do site; empates dividem a posição.", "parameters": [{"name": "tipo", "in": "path", "required": true, "description": "alunos, escolas ou estados", "schema": {"type": "string"}}, {"name": "metodo", "in": "query", "required": false, "description": "Método de pontuação que ordena os resultados: impa (padrão), impa3 ou site", "schema": {"type": "string"}}, {"name": "ordem", "in": "query", "required": false, "description": "xp (pontos, padrão), medalhas (quadro) ou total", "schema": {"type": "string"}}, {"name": "uf", "in": "query", "required": false, "description": "Sigla do estado (ex.: SP)", "schema": {"type": "string"}, "example": "SP"}, {"name": "municipio", "in": "query", "required": false, "description": "Município (acentos ignorados)", "schema": {"type": "string"}}, {"name": "competicao", "in": "query", "required": false, "description": "Uma ou mais olimpíadas separadas por vírgula (siglas em /olimpiadas)", "schema": {"type": "string"}, "example": "OBMEP,OBM"}, {"name": "area", "in": "query", "required": false, "description": "Área (Matemática, Informática…)", "schema": {"type": "string"}}, {"name": "medalha", "in": "query", "required": false, "description": "Ouro, Prata, Bronze ou Menção Honrosa", "schema": {"type": "string"}}, {"name": "nivel", "in": "query", "required": false, "description": "Um ou mais níveis separados por vírgula (ex.: 3 ou 1,2,3,Universitário)", "schema": {"type": "string"}, "example": "3"}, {"name": "ano", "in": "query", "required": false, "description": "Ano exato", "schema": {"type": "integer"}}, {"name": "ano_de", "in": "query", "required": false, "description": "A partir do ano", "schema": {"type": "integer"}}, {"name": "ano_ate", "in": "query", "required": false, "description": "Até o ano", "schema": {"type": "integer"}}, {"name": "rede", "in": "query", "required": false, "description": "publica ou privada", "schema": {"type": "string"}}, {"name": "limite", "in": "query", "required": false, "description": "Itens por página", "schema": {"type": "integer"}}, {"name": "offset", "in": "query", "required": false, "description": "Quantos itens pular", "schema": {"type": "integer"}}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"type": "object"}}}}, "400": {"description": "Parâmetro inválido", "content": {"application/json": {"schema": {"type": "object"}, "example": {"erro": "parâmetro inválido: informe o parâmetro 'nome'"}}}}, "404": {"description": "Aluno, escola ou rota não encontrados", "content": {"application/json": {"schema": {"type": "object"}, "example": {"erro": "aluno não encontrado"}}}}, "429": {"description": "Limite de consultas atingido; veja o cabeçalho Retry-After (segundos)", "headers": {"Retry-After": {"schema": {"type": "integer"}}}}, "503": {"description": "Servidor ocupado; tente de novo em alguns segundos"}}}}, "/api/v1/exportar": {"get": {"tags": ["Dados completos"], "summary": "Baixar dados em CSV ou JSON", "description": "Sem filtros, baixa a base inteira de premiações. Com filtros, só o que passar neles. conjunto=alunos|escolas|estados baixa o ranking completo. CSV em UTF-8 com BOM; separador=; para abrir direto no Excel em português. Respostas são compactadas (gzip) quando o cliente aceita. Limite próprio por IP (ver /api/v1).", "parameters": [{"name": "formato", "in": "query", "required": false, "description": "csv (padrão) ou json", "schema": {"type": "string"}}, {"name": "conjunto", "in": "query", "required": false, "description": "premiacoes (padrão), alunos, escolas ou estados", "schema": {"type": "string"}}, {"name": "separador", "in": "query", "required": false, "description": "',' (padrão) ou ';'", "schema": {"type": "string"}}, {"name": "aluno_id", "in": "query", "required": false, "description": "Só deste aluno", "schema": {"type": "string"}}, {"name": "escola_id", "in": "query", "required": false, "description": "Só desta escola", "schema": {"type": "string"}}, {"name": "nome", "in": "query", "required": false, "description": "Nome do aluno", "schema": {"type": "string"}}, {"name": "escola", "in": "query", "required": false, "description": "Nome ou sigla da escola", "schema": {"type": "string"}}, {"name": "metodo", "in": "query", "required": false, "description": "Método de pontuação que ordena os resultados: impa (padrão), impa3 ou site", "schema": {"type": "string"}}, {"name": "uf", "in": "query", "required": false, "description": "Sigla do estado (ex.: SP)", "schema": {"type": "string"}, "example": "SP"}, {"name": "municipio", "in": "query", "required": false, "description": "Município (acentos ignorados)", "schema": {"type": "string"}}, {"name": "competicao", "in": "query", "required": false, "description": "Uma ou mais olimpíadas separadas por vírgula (siglas em /olimpiadas)", "schema": {"type": "string"}, "example": "OBMEP,OBM"}, {"name": "area", "in": "query", "required": false, "description": "Área (Matemática, Informática…)", "schema": {"type": "string"}}, {"name": "medalha", "in": "query", "required": false, "description": "Ouro, Prata, Bronze ou Menção Honrosa", "schema": {"type": "string"}}, {"name": "nivel", "in": "query", "required": false, "description": "Um ou mais níveis separados por vírgula (ex.: 3 ou 1,2,3,Universitário)", "schema": {"type": "string"}, "example": "3"}, {"name": "ano", "in": "query", "required": false, "description": "Ano exato", "schema": {"type": "integer"}}, {"name": "ano_de", "in": "query", "required": false, "description": "A partir do ano", "schema": {"type": "integer"}}, {"name": "ano_ate", "in": "query", "required": false, "description": "Até o ano", "schema": {"type": "integer"}}, {"name": "rede", "in": "query", "required": false, "description": "publica ou privada", "schema": {"type": "string"}}], "responses": {"200": {"description": "Arquivo", "content": {"text/csv": {}, "application/json": {}}}, "400": {"description": "Parâmetro inválido", "content": {"application/json": {"schema": {"type": "object"}, "example": {"erro": "parâmetro inválido: informe o parâmetro 'nome'"}}}}, "404": {"description": "Aluno, escola ou rota não encontrados", "content": {"application/json": {"schema": {"type": "object"}, "example": {"erro": "aluno não encontrado"}}}}, "429": {"description": "Limite de consultas atingido; veja o cabeçalho Retry-After (segundos)", "headers": {"Retry-After": {"schema": {"type": "integer"}}}}, "503": {"description": "Servidor ocupado; tente de novo em alguns segundos"}}}}, "/api/v1/olimpiadas": {"get": {"tags": ["Referência"], "summary": "Olimpíadas e valores aceitos", "description": "Siglas, níveis, pontuação e valores dos filtros.", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"type": "object"}}}}, "400": {"description": "Parâmetro inválido", "content": {"application/json": {"schema": {"type": "object"}, "example": {"erro": "parâmetro inválido: informe o parâmetro 'nome'"}}}}, "404": {"description": "Aluno, escola ou rota não encontrados", "content": {"application/json": {"schema": {"type": "object"}, "example": {"erro": "aluno não encontrado"}}}}, "429": {"description": "Limite de consultas atingido; veja o cabeçalho Retry-After (segundos)", "headers": {"Retry-After": {"schema": {"type": "integer"}}}}, "503": {"description": "Servidor ocupado; tente de novo em alguns segundos"}}}}, "/api/v1": {"get": {"tags": ["Referência"], "summary": "Índice da API", "description": "Rotas, exemplos e limites atuais.", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"type": "object"}}}}, "400": {"description": "Parâmetro inválido", "content": {"application/json": {"schema": {"type": "object"}, "example": {"erro": "parâmetro inválido: informe o parâmetro 'nome'"}}}}, "404": {"description": "Aluno, escola ou rota não encontrados", "content": {"application/json": {"schema": {"type": "object"}, "example": {"erro": "aluno não encontrado"}}}}, "429": {"description": "Limite de consultas atingido; veja o cabeçalho Retry-After (segundos)", "headers": {"Retry-After": {"schema": {"type": "integer"}}}}, "503": {"description": "Servidor ocupado; tente de novo em alguns segundos"}}}}}}