{"openapi":"3.1.0","info":{"title":"API da BNCC (bncc.dev)","version":"1.0.0-beta (dados dados-2026.07)","description":"A Base Nacional Comum Curricular como serviço REST aberto: as 1.580 aprendizagens (EI, EF e EM) com nomes resolvidos, estrutura e decodificador de códigos. Sem cadastro e sem API key; limite de requisições por IP. Dados rastreáveis às fontes oficiais do MEC; divergências documentadas em github.com/bncc-dev/bncc-dados/blob/main/DECISOES.md.","license":{"name":"Dados CC BY 4.0, código MIT","url":"https://github.com/bncc-dev/bncc-dados/blob/main/LICENSE"},"contact":{"url":"https://bncc.dev"}},"servers":[{"url":"https://api.bncc.dev"}],"paths":{"/v1/aprendizagens/{codigo}":{"get":{"summary":"Registro completo de uma aprendizagem pelo código","parameters":[{"name":"codigo","in":"path","required":true,"schema":{"type":"string"},"example":"EF67LP08"}],"responses":{"200":{"description":"Aprendizagem com nomes resolvidos.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Aprendizagem"}}}},"400":{"description":"Código fora da gramática da BNCC.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"404":{"description":"Código bem formado, mas inexistente (a numeração da BNCC tem lacunas legítimas).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/v1/habilidades":{"get":{"summary":"Habilidades do Ensino Fundamental e do Ensino Médio","parameters":[{"name":"etapa","in":"query","schema":{"type":"string","enum":["EF","EM"]}},{"name":"componente","in":"query","schema":{"type":"string"},"description":"EF: id (ef-comp-lp) ou sigla (LP).","example":"LP"},{"name":"ano","in":"query","schema":{"type":"integer","minimum":1,"maximum":9},"description":"EF: ano do 1 ao 9."},{"name":"pratica","in":"query","schema":{"type":"string"},"description":"EF/LP: nome da prática de linguagem."},{"name":"unidade_tematica","in":"query","schema":{"type":"string"},"description":"EF: nome exato da unidade temática."},{"name":"campo_atuacao","in":"query","schema":{"type":"string"},"description":"EF/LP: nome do campo de atuação."},{"name":"area","in":"query","schema":{"type":"string"},"description":"EM: id (em-area-lgg) ou sigla (LGG)."},{"name":"competencia","in":"query","schema":{"type":"integer"},"description":"EM: número da competência específica da área."},{"name":"limite","in":"query","schema":{"type":"integer","default":50,"maximum":200},"description":"Itens por página."},{"name":"pagina","in":"query","schema":{"type":"integer","default":1},"description":"Página (a partir de 1)."}],"responses":{"200":{"description":"Listagem paginada.","content":{"application/json":{"schema":{"type":"object","properties":{"total":{"type":"integer"},"pagina":{"type":"integer"},"limite":{"type":"integer"},"itens":{"type":"array","items":{"$ref":"#/components/schemas/Aprendizagem"}}}}}}},"400":{"description":"Filtro inválido.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/v1/objetivos":{"get":{"summary":"Objetivos de aprendizagem da Educação Infantil","parameters":[{"name":"campo","in":"query","schema":{"type":"string"},"description":"Id (ei-campo-ts) ou sigla (TS) do campo de experiências."},{"name":"grupo_etario","in":"query","schema":{"type":"string"},"description":"Grupo etário: 01, 02 ou 03."},{"name":"limite","in":"query","schema":{"type":"integer","default":50,"maximum":200},"description":"Itens por página."},{"name":"pagina","in":"query","schema":{"type":"integer","default":1},"description":"Página (a partir de 1)."}],"responses":{"200":{"description":"Listagem paginada.","content":{"application/json":{"schema":{"type":"object","properties":{"total":{"type":"integer"},"pagina":{"type":"integer"},"limite":{"type":"integer"},"itens":{"type":"array","items":{"$ref":"#/components/schemas/Aprendizagem"}}}}}}}}}},"/v1/busca":{"get":{"summary":"Busca textual normalizada nos enunciados","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string"},"example":"fake news"},{"name":"etapa","in":"query","schema":{"type":"string","enum":["EI","EF","EM"]}},{"name":"componente","in":"query","schema":{"type":"string"}},{"name":"ano","in":"query","schema":{"type":"integer"}},{"name":"limite","in":"query","schema":{"type":"integer","default":50,"maximum":200},"description":"Itens por página."},{"name":"pagina","in":"query","schema":{"type":"integer","default":1},"description":"Página (a partir de 1)."}],"responses":{"200":{"description":"Listagem paginada.","content":{"application/json":{"schema":{"type":"object","properties":{"total":{"type":"integer"},"pagina":{"type":"integer"},"limite":{"type":"integer"},"itens":{"type":"array","items":{"$ref":"#/components/schemas/Aprendizagem"}}}}}}},"400":{"description":"Parâmetro q ausente ou etapa inválida.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/v1/decodificar/{codigo}":{"get":{"summary":"Anatomia de um código BNCC (etapa, anos, componente, sequência)","parameters":[{"name":"codigo","in":"path","required":true,"schema":{"type":"string"},"example":"EF67LP08"}],"responses":{"200":{"description":"Código decodificado.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Código fora da gramática.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/v1/estrutura":{"get":{"summary":"A espinha estrutural completa da BNCC","responses":{"200":{"description":"Etapas, áreas, componentes, campos, competências e recortes.","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/estrutura/{colecao}":{"get":{"summary":"Uma coleção da estrutura (ex.: componentes_curriculares)","parameters":[{"name":"colecao","in":"path","required":true,"schema":{"type":"string"},"example":"competencias_gerais"}],"responses":{"200":{"description":"A coleção pedida.","content":{"application/json":{"schema":{"type":"array"}}}},"404":{"description":"Coleção inexistente (a dica lista as disponíveis).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/v1/estatisticas":{"get":{"summary":"Contagens do dataset e versão dos dados","responses":{"200":{"description":"Totais por etapa, competências e data_version.","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/openapi.json":{"get":{"summary":"Esta especificação","responses":{"200":{"description":"OpenAPI 3.1."}}}}},"components":{"schemas":{"Aprendizagem":{"type":"object","description":"Habilidade (EF/EM) ou objetivo (EI) com nomes resolvidos. Campos variam por etapa; todos trazem codigo, etapa, texto, vigencia e fonte.","required":["codigo","etapa","texto","vigencia","fonte"],"properties":{"codigo":{"type":"string","example":"EF67LP08"},"etapa":{"type":"string","enum":["EI","EF","EM"]},"texto":{"type":"string"},"vigencia":{"type":"object"},"fonte":{"type":"object","description":"Proveniência: planilha oficial e página do PDF homologado."}}},"Erro":{"type":"object","required":["erro"],"properties":{"erro":{"type":"string"},"dica":{"type":"string","description":"Orientação pedagógica: o que fazer em vez disso."}}}}}}