Documentação da API
API REST em JSON, respostas e erros em português. Autenticação via header X-API-Key.
Ainda não tem key? Gere uma grátis.
⚡ Quickstart
Base URL:
https://southamerica-east1-no-api-br.cloudfunctions.net/apiMedicamentos Buscar medicamentos por nome:
curl -H "X-API-Key: SUA_KEY" \
"https://southamerica-east1-no-api-br.cloudfunctions.net/apiMedicamentos/v1/medicamentos?nome=dipirona&pagina=1" 🔐 Autenticação
Toda requisição deve enviar a key (32 caracteres hexadecimais) no header X-API-Key.
A key é gerada em /api e enviada por e-mail.
X-API-Key: SUA_KEY
Toda resposta inclui os headers X-RateLimit-Limit e X-RateLimit-Remaining
com o seu limite diário e o saldo restante.
📚 Endpoints
GET /v1/medicamentos Free+
Busca paginada de medicamentos por nome (20 resultados por página).
Parâmetros (query)
nome— termo de busca, mínimo 2 caracteres (ex.:dipirona)pagina— página do resultado, começa em 1 (opcional)
Exemplo de resposta
{
"total": 42,
"pagina": 1,
"totalPaginas": 3,
"porPagina": 20,
"referenciaDados": "2026-06",
"resultados": [
{
"registro": "1234567890123",
"nome": "Dipirona Sódica",
"fabricante": "laboratorio-x",
"principioAtivo": "dipirona-monoidratada",
"classe": "analgesico",
"categoria": "generico",
"tipo": "comprimido",
"precosCMED": { "pf": 12.34, "pmvg": 10.87, "referencia": "2026-06" },
"slug": "dipirona-sodica-laboratorio-x"
}
]
} GET /v1/medicamentos/{registro} Free+
Apresentações de um medicamento pelo número de registro ANVISA.
Parâmetros (path)
registro— número de registro ANVISA
Exemplo de resposta
{
"registro": "1234567890123",
"total": 2,
"referenciaDados": "2026-06",
"resultados": [
{
"registro": "1234567890123",
"nome": "Dipirona Sódica",
"fabricante": "laboratorio-x",
"principioAtivo": "dipirona-monoidratada",
"classe": "analgesico",
"categoria": "generico",
"tipo": "comprimido",
"precosCMED": { "pf": 12.34, "pmvg": 10.87, "referencia": "2026-06" },
"slug": "dipirona-sodica-laboratorio-x"
}
]
} GET /v1/principios-ativos/{slug} Pro+
Todos os medicamentos de um princípio ativo, com preços CMED — ideal para comparação de genéricos. Resposta paginada (20 por página).
Parâmetros
slug(path) — princípio ativo em slug (ex.:dipirona-monoidratada)pagina(query) — página do resultado, começa em 1 (opcional)
Exemplo de resposta
{
"total": 18,
"pagina": 1,
"totalPaginas": 1,
"porPagina": 20,
"referenciaDados": "2026-06",
"resultados": [
{
"registro": "1234567890123",
"nome": "Dipirona Sódica",
"fabricante": "laboratorio-x",
"principioAtivo": "dipirona-monoidratada",
"classe": "analgesico",
"categoria": "generico",
"tipo": "comprimido",
"precosCMED": { "pf": 12.34, "pmvg": 10.87, "referencia": "2026-06" },
"slug": "dipirona-sodica-laboratorio-x"
}
]
}
Notas: fabricante e principioAtivo são retornados como slugs.
precosCMED traz o preço fábrica (pf) e o preço máximo de venda ao
governo (pmvg) — pode ser null quando o item não consta na tabela CMED vigente.
GET /v1/medicamentos/{registro}/bula Pro+
Bula completa do medicamento, em seções estruturadas (JSON, não PDF), a partir do Bulário Eletrônico da ANVISA. Disponível nos planos Pro e Business.
Parâmetros
registro(path) — nº de registro ANVISA, só dígitos (ex.:102980568)
Exemplo de resposta
{
"registro": "102980568",
"bula": {
"paraQueServe": "…",
"comoTomar": "…",
"contraindicacoes": "…",
"efeitosColaterais": "…",
"composicao": "…",
"precaucoes": "…"
}
}
Retorna 404 bula_nao_encontrada quando não há bula para o registro.
GET /v1/ean/{codigo} Free+
Busca por código de barras (EAN-13) — ideal para PDV de farmácia e conferência de preço teto CMED no balcão. Resolve o EAN para o registro ANVISA e devolve o medicamento com preços CMED. Cobre ~25 mil EANs da tabela CMED vigente.
Parâmetros
codigo(path) — EAN-13, só dígitos (ex.:7891106000956)
Exemplo de resposta
{
"ean": "7891106000956",
"registro": "170560023",
"total": 1,
"referenciaDados": "2026-06",
"resultados": [ { "registro": "170560023", "nome": "…", "precosCMED": { … } } ]
}
Retorna 400 ean_invalido se o código não tiver 13 dígitos e
404 ean_nao_encontrado quando o EAN não consta na tabela CMED.
🚨 Códigos de erro
Erros são retornados em JSON, em português, no formato { "erro", "mensagem" }:
{
"erro": "limite_excedido",
"mensagem": "Limite diário de requisições atingido. Tente novamente após a meia-noite (horário de Brasília)."
} | HTTP | Campo erro | Quando ocorre |
|---|---|---|
400 | parametro_invalido | Parâmetro ausente ou inválido (ex.: nome com menos de 2 caracteres) |
401 | nao_autenticado / chave_invalida | Header X-API-Key ausente ou key inválida |
403 | tier_insuficiente | Endpoint não disponível no seu plano |
404 | nao_encontrado | Registro ou princípio ativo inexistente |
429 | limite_excedido | Limite diário atingido — resposta inclui header Retry-After |
📈 Limites por plano
| Plano | Limite | Endpoints |
|---|---|---|
| Free | 100 req/dia | Busca por nome, consulta por registro, busca por EAN |
| Pro | 10.000 req/dia | + princípio ativo, bula completa |
| Business | 100.000 req/dia | + webhook CMED mensal, export bulk |
O contador reinicia à meia-noite (horário de Brasília). Acompanhe seu saldo pelos headers
X-RateLimit-Limit e X-RateLimit-Remaining.
Estourou o limite? Veja os planos Pro e Business —
os 20 primeiros ganham 50% off vitalício.
Pronto para começar?
Gerar API key grátis →