medicamentos.api.br

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 →