Documentação da API
Referência completa dos endpoints PharmaDB
Visão geral
A PharmaDB é uma API REST que retorna dados em JSON. Todas as informações estão em português brasileiro, incluindo nomes DCB, descrições de interações e textos de bulas. Não é necessário instalar SDK — basta fazer requisições HTTP com qualquer linguagem ou ferramenta.
https://api.pharmadb.com.brAutenticação
Todos os endpoints da API requerem autenticação via JWT (JSON Web Token). O fluxo funciona em dois passos:
- 1Obtenha uma API key (formato
pdb_xxxxxxxx...) ao criar sua conta - 2Troque a API key por um JWT via
POST /auth/token - 3Use o JWT no header
Authorization: Bearer <token>em todas as requisições
Obter JWT
Envie sua API key no header x-api-key ou no body como {"api_key": "pdb_..."}:
curl -X POST https://api.pharmadb.com.br/auth/token \
-H "x-api-key: pdb_a1b2c3d4e5f6..."{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"token_type": "bearer",
"expires_in": 3600,
"tier": "pro"
}O token expira em 60 minutos. Ao expirar, gere um novo com a mesma API key.
Usar JWT nas requisições
Inclua o token no header Authorization:
curl -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \
https://api.pharmadb.com.br/produtos/busca?q=dorflexConsultar sua key
Use GET /auth/me para verificar tier, limites e dados da sua API key:
curl -H "Authorization: Bearer eyJhbGciOi..." \
https://api.pharmadb.com.br/auth/me{
"key_prefix": "pdb_a1b2",
"tier": "pro",
"daily_limit": 10000,
"email": "dev@empresa.com.br",
"label": "App Mobile"
}Tiers e campos premium
O tier da sua API key define quais campos são retornados e o limite diário de requisições. No tier Free, campos premium retornam null junto com um array premium_fields indicando quais campos estão indisponíveis.
Endpoints
Produtos
Busca produtos por nome comercial. Retorna composição, tarja e apresentações com preço.
curl -H "Authorization: Bearer $TOKEN" \
https://api.pharmadb.com.br/produtos/busca?q=dorflex1{
2 "total": 5,
3 "items": [
4 {
5 "id": 1284,
6 "nome": "DORFLEX",
7 "laboratorio": "SANOFI MEDLEY",
8 "tarja": "sem_tarja",
9 "composicao": [
10 {
11 "nome_dcb": "dipirona",
12 "concentracao": "300mg"
13 },
14 {
15 "nome_dcb": "citrato de orfenadrina",
16 "concentracao": "35mg"
17 },
18 {
19 "nome_dcb": "cafeína",
20 "concentracao": "50mg"
21 }
22 ],
23 "apresentacoes": [
24 {
25 "descricao": "Comprimido - 10 unid.",
26 "pmc_0": 8.42
27 }
28 ]
29 }
30 ]
31}Interações
Retorna todas as interações medicamentosas de um produto. O campo gravidade pode ser: grave, moderada ou leve.
curl -H "Authorization: Bearer $TOKEN" \
https://api.pharmadb.com.br/interacoes/produto/12841{
2 "produto": {
3 "nome": "DORFLEX"
4 },
5 "total_interacoes": 847,
6 "interacoes": [
7 {
8 "nome_outro": "varfarina",
9 "gravidade": "grave",
10 "efeito_clinico": "Aumento do risco de sangramento."
11 },
12 {
13 "nome_outro": "ácido acetilsalicílico",
14 "gravidade": "moderada",
15 "efeito_clinico": "Potencialização de efeitos adversos gastrointestinais."
16 }
17 ]
18}Bulas
Retorna a bula completa de um produto com campos de texto extraídos: indicações, posologia, contraindicações, reações adversas e outros.
curl -H "Authorization: Bearer $TOKEN" \
https://api.pharmadb.com.br/bulas/11{
2 "produto": {
3 "nome": "DORFLEX"
4 },
5 "tipo": "paciente",
6 "texto_indicacoes": "Dores musculares, cefaleia tensional...",
7 "texto_posologia": "Adultos: 1 a 2 comprimidos, 3 a 4 vezes ao dia.",
8 "texto_contraindicacoes": "Hipersensibilidade aos componentes da fórmula...",
9 "texto_reacoes_adversas": "Reações alérgicas, náuseas, sonolência...",
10 "extraido_em": "2026-02-20T14:30Z"
11}Princípios Ativos
Busca princípios ativos pela nomenclatura DCB (Denominação Comum Brasileira).
curl -H "Authorization: Bearer $TOKEN" \
https://api.pharmadb.com.br/principios-ativos/busca?q=dipirona1{
2 "total": 3,
3 "items": [
4 {
5 "id": 1042,
6 "nome_dcb": "dipirona",
7 "total_interacoes": 312,
8 "total_produtos": 87
9 },
10 {
11 "id": 1043,
12 "nome_dcb": "dipirona sódica",
13 "total_interacoes": 98,
14 "total_produtos": 34
15 }
16 ]
17}Erros
A API usa códigos HTTP padrão. Respostas de erro incluem um campo detail com a descrição do problema.
{
"detail": "Produto não encontrado"
}Limites
Cada plano possui um limite de requisições diário. Ao atingir o limite, a API retorna 429.
Precisa de mais? Veja os planos disponíveis.