Documentacao da API
Referencia completa dos endpoints PharmaDB
Visao geral
A PharmaDB e uma API REST que retorna dados em JSON. Todas as informacoes estao em portugues brasileiro, incluindo nomes DCB, descricoes de interacoes e textos de bulas. Nao e necessario instalar SDK — basta fazer requisicoes HTTP com qualquer linguagem ou ferramenta.
https://api.pharmadb.com.br/v1Autenticacao
Todos os endpoints da API requerem autenticacao 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 requisicoes
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 requisicoes
Inclua o token no header Authorization:
curl -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \
https://api.pharmadb.com.br/v1/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": "[email protected]",
"label": "App Mobile"
}Tiers e campos clinicos
A diferenca entre planos e o volume de requisicoes — todos os campos clinicos sao iguais. Todos os tiers (incluindo Free) recebem: efeito_clinico, mecanismo, manejo_clinico, descricao_estendida_pt e referencias.
Endpoints
Paginacao
Endpoints de listagem suportam paginacao via query parameters. O campo total retorna o numero total de registros para calcular o numero de paginas.
curl -H "Authorization: Bearer $TOKEN" \
"https://api.pharmadb.com.br/v1/produtos/busca?q=dipirona&page=2&per_page=10"Filtros de busca
Os endpoints de busca aceitam filtros opcionais via query params. Combine livremente — todos sao AND. Sem filtros, o comportamento e o mesmo de antes.
/v1/produtos/busca — filtros disponiveis
# Lista comercializados, controlados, Tarja Preta:
curl -H "Authorization: Bearer $TOKEN" \
"https://api.pharmadb.com.br/v1/produtos/busca?q=alprazolam\
&tarja=Preta&controlado=true&comercializado=true"
# Filtra por classe terapeutica (match parcial):
curl -H "Authorization: Bearer $TOKEN" \
"https://api.pharmadb.com.br/v1/produtos/busca?q=dipirona\
&classe_terapeutica=analgesico"
# Filtra por laboratorio:
curl -H "Authorization: Bearer $TOKEN" \
"https://api.pharmadb.com.br/v1/produtos/busca?q=ibuprofeno&laboratorio=EMS"
# Apenas produtos cujos PAs tem interacao cadastrada:
curl -H "Authorization: Bearer $TOKEN" \
"https://api.pharmadb.com.br/v1/produtos/busca?q=omeprazol&has_interactions=true"/v1/principios-ativos/busca — filtros disponiveis
# Filtra por tipo de entidade:
curl -H "Authorization: Bearer $TOKEN" \
"https://api.pharmadb.com.br/v1/principios-ativos/busca?q=cafeina&tipo_entidade=farmaco"
# Prefix match em codigo ATC (N02 = Analgesicos):
curl -H "Authorization: Bearer $TOKEN" \
"https://api.pharmadb.com.br/v1/principios-ativos/busca?q=dipirona&codigo_atc=N02"
# Apenas PAs com interacoes:
curl -H "Authorization: Bearer $TOKEN" \
"https://api.pharmadb.com.br/v1/principios-ativos/busca?q=para&has_interactions=true"Produtos
Busca por nome
GET /v1/produtos/busca
Busca produtos por nome comercial. Retorna resumo com laboratorio, tarja e lista de principios ativos. Parametro q obrigatorio (min 3 caracteres).
curl -H "Authorization: Bearer $TOKEN" \
"https://api.pharmadb.com.br/v1/produtos/busca?q=dorflex&page=1&per_page=20"1{
2 "total": 5,
3 "page": 1,
4 "per_page": 20,
5 "items": [
6 {
7 "id": 1284,
8 "nome": "DORFLEX",
9 "registro_anvisa": "1130003780014",
10 "categoria": "medicamento",
11 "categoria_regulatoria": "Similar",
12 "tarja": "sem_tarja",
13 "laboratorio": "SANOFI MEDLEY FARMACEUTICA LTDA",
14 "principios_ativos": ["dipirona", "citrato de orfenadrina", "cafeina"]
15 }
16 ]
17}Detalhes de um produto
GET /v1/produtos/{id}
Retorna dados completos: composicao com concentracoes, apresentacoes com EAN e preco (PMC em centavos), classe terapeutica e status de comercializacao.
curl -H "Authorization: Bearer $TOKEN" \
https://api.pharmadb.com.br/v1/produtos/12841{
2 "id": 1284,
3 "nome": "DORFLEX",
4 "registro_anvisa": "1130003780014",
5 "categoria": "medicamento",
6 "categoria_regulatoria": "Similar",
7 "tarja": "sem_tarja",
8 "laboratorio": "SANOFI MEDLEY FARMACEUTICA LTDA",
9 "principios_ativos": ["dipirona", "citrato de orfenadrina", "cafeina"],
10 "classe_terapeutica": "ANALGESICOS NAO NARCOTICOS",
11 "controlado": false,
12 "comercializado": true,
13 "composicao": [
14 {
15 "pa_id": 1, "nome_dcb": "dipirona",
16 "concentracao": "300 MG",
17 "concentracao_valor": 300.0,
18 "concentracao_unidade": "mg",
19 "ordem": 0
20 },
21 {
22 "pa_id": 42, "nome_dcb": "citrato de orfenadrina",
23 "concentracao": "35 MG",
24 "concentracao_valor": 35.0,
25 "concentracao_unidade": "mg",
26 "ordem": 1
27 },
28 {
29 "pa_id": 89, "nome_dcb": "cafeina",
30 "concentracao": "50 MG",
31 "concentracao_valor": 50.0,
32 "concentracao_unidade": "mg",
33 "ordem": 2
34 }
35 ],
36 "apresentacoes": [
37 { "id": 501, "descricao": "Comprimido - 10 unid.", "ean_1": "7891058002008", "pmc_0": 842 },
38 { "id": 502, "descricao": "Comprimido - 36 unid.", "ean_1": "7891058002015", "pmc_0": 2490 }
39 ]
40}Produto por EAN (codigo de barras)
GET /v1/produtos/ean/{ean}
Busca um produto pelo codigo de barras EAN-13 (13 digitos). Retorna os mesmos campos de /v1/produtos/{id}. Ideal para apps que escaneiam codigos de barras.
curl -H "Authorization: Bearer $TOKEN" \
https://api.pharmadb.com.br/v1/produtos/ean/7891058002008Batch — ate 100 produtos por chamada
POST /v1/produtos/batch
Lookup massivo de produtos por produto_ids ou eans (ate 100 itens, nao ambos). Conta como 1 unica requisicao no seu rate limit. Retorna os mesmos campos de /v1/produtos/{id} para cada produto encontrado, mais um array nao_encontrados com os IDs/EANs que nao retornaram nada — util pra rastrear gaps no seu catalogo.
# Por IDs (ate 100):
curl -X POST -H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"produto_ids": [1284, 5678, 9012]}' \
https://api.pharmadb.com.br/v1/produtos/batch
# Por EANs (ate 100):
curl -X POST -H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"eans": ["7891058002008", "7896004711515"]}' \
https://api.pharmadb.com.br/v1/produtos/batch1{
2 "produtos": [
3 {
4 "id": 1284,
5 "nome": "DORFLEX",
6 "registro_anvisa": "1130003780014",
7 "tarja": "sem_tarja",
8 "controlado": false,
9 "comercializado": true,
10 "composicao": [
11 { "pa_id": 1, "nome_dcb": "dipirona",
12 "concentracao_valor": 300.0, "concentracao_unidade": "mg", "ordem": 0 }
13 ],
14 "apresentacoes": [...]
15 },
16 {
17 "id": 5678,
18 "nome": "MAREVAN",
19 "composicao": [
20 { "pa_id": 9100, "nome_dcb": "varfarina",
21 "concentracao_valor": 5.0, "concentracao_unidade": "mg", "ordem": 0 }
22 ],
23 ...
24 }
25 ],
26 "nao_encontrados": ["7891234567890"],
27 "total": 2
28}Tipo de receita exigido
GET /v1/produtos/{id}/receita
Classifica o regime de dispensacao do produto conforme a Portaria SVS/MS 344/98 (controle especial), RDC 471/2021 (receita branca comum) e RDC 96/2008 (MIP). Retorna o tipo (A1, A2, A3, B1, B2, C1, C2, comum, sem_receita), cor da receita, se exige retencao, numero de vias, validade em dias e a base legal. Util para farmacias digitais e prescricao eletronica informarem o regime antes da compra ou da prescricao.
curl -H "Authorization: Bearer $TOKEN" \
https://api.pharmadb.com.br/v1/produtos/9012/receita1{
2 "produto_id": 9012,
3 "produto_nome": "RIVOTRIL",
4 "tarja": "preta",
5 "classe_terapeutica": "N5B1 - HIPNOTICOS E SEDATIVOS",
6 "tipo": "B1",
7 "cor_receita": "azul",
8 "requer_receita": true,
9 "retencao": true,
10 "vias": 2,
11 "validade_dias": 30,
12 "lista_controle": "B1 (psicotropicos)",
13 "base_legal": "Portaria SVS/MS 344/98",
14 "observacao": "Notificacao de Receita 'B' (azul). Retencao obrigatoria."
15}Genericos e similares intercambiaveis
GET /v1/produtos/{id}/genericos
Lista genericos e similares intercambiaveis a partir de um produto de referencia, pelo criterio da RDC 31/2010: mesma forma farmaceutica + mesma composicao quali-quantitativa + comercializado. Cada item traz o preco (PMC) e a economia_pct vs a referencia — ideal para e-commerce de medicamento mostrar "esta versao generica custa 79% menos".
curl -H "Authorization: Bearer $TOKEN" \
https://api.pharmadb.com.br/v1/produtos/1284/genericos1{
2 "produto_id": 1284,
3 "produto_nome": "TYLENOL",
4 "categoria_regulatoria": "novo",
5 "forma_farmaceutica": "comprimido_revestido",
6 "composicao_resumo": ["paracetamol 750 mg"],
7 "pmc_referencia_centavos": 1850,
8 "total_genericos": 7,
9 "total_similares": 4,
10 "genericos": [
11 {
12 "id": 8821,
13 "nome": "PARACETAMOL",
14 "laboratorio": "EMS S/A",
15 "categoria_regulatoria": "generico",
16 "apresentacao_descricao": "750 MG COM REV CT BL AL PLAS INC X 20",
17 "ean_1": "7891234560011",
18 "pmc_centavos": 380,
19 "economia_centavos": 1470,
20 "economia_pct": 79.46
21 }
22 ],
23 "similares_intercambiaveis": [ "..." ]
24}Historico de comercializacao
GET /v1/produtos/{id}/historico-comercializacao
Linha do tempo de descontinuacao e restauracao comercial do produto. Diferente do campo estatico comercializado, retorna cada evento datado (saiu do mercado, registro cancelado/caduco, voltou a ser comercializado), com a fonte da deteccao. Util para auditoria regulatoria e para decidir manter ou nao um item no catalogo.
curl -H "Authorization: Bearer $TOKEN" \
https://api.pharmadb.com.br/v1/produtos/5742/historico-comercializacao1{
2 "produto_id": 5742,
3 "produto_nome": "PARACETAMOL + CARISOPRODOL + DICLOFENACO",
4 "atualmente_comercializado": false,
5 "situacao_registro": "ativo",
6 "total_eventos": 2,
7 "primeira_deteccao_em": "2026-06-09",
8 "ultima_deteccao_em": "2026-09-14",
9 "eventos": [
10 {
11 "detectado_em": "2026-09-14",
12 "motivo": "comercializado_false",
13 "fonte": "crawler_anvisa",
14 "detalhes": { "comercializado": false },
15 "restaurado_em": null
16 },
17 {
18 "detectado_em": "2026-06-09",
19 "motivo": "baseline",
20 "fonte": "baseline",
21 "detalhes": { "comercializado": false, "situacao_registro": "ativo" },
22 "restaurado_em": null
23 }
24 ]
25}Interacoes
Todas as interacoes incluem os campos clinicos completos. O campo gravidade pode ser: grave, moderada ou leve. Use o parametro gravidade para filtrar por nivel.
Por produto
GET /v1/interacoes/produto/{id}
Retorna todas as interacoes de todos os principios ativos de um produto, com contagem por gravidade. Suporta filtro opcional ?gravidade=grave e paginacao.
curl -H "Authorization: Bearer $TOKEN" \
"https://api.pharmadb.com.br/v1/interacoes/produto/1284?gravidade=grave&page=1&per_page=50"1{
2 "produto": {
3 "id": 1284,
4 "nome": "DORFLEX",
5 "principios_ativos": ["dipirona", "citrato de orfenadrina", "cafeina"]
6 },
7 "principios_ativos": [
8 { "id": 1, "nome_dcb": "dipirona" },
9 { "id": 42, "nome_dcb": "citrato de orfenadrina" },
10 { "id": 89, "nome_dcb": "cafeina" }
11 ],
12 "total_interacoes": 42,
13 "interacoes_graves": 42,
14 "interacoes_moderadas": 318,
15 "interacoes_leves": 487,
16 "page": 1,
17 "per_page": 50,
18 "interacoes": [
19 {
20 "id": 1042,
21 "pa_a": { "id": 1, "nome_dcb": "dipirona" },
22 "pa_b": { "id": 5, "nome_dcb": "varfarina" },
23 "gravidade": "grave",
24 "tipo_interacao": "farmacodinamica",
25 "efeito_clinico": "Aumento do risco de sangramento.",
26 "mecanismo": "Dipirona inibe a agregacao plaquetaria e potencializa o efeito anticoagulante.",
27 "manejo_clinico": "Evitar uso concomitante ou monitorar INR frequentemente.",
28 "descricao_estendida_pt": "A dipirona pode aumentar significativamente o risco de sangramento...",
29 "referencias": [
30 {
31 "url": "https://pubmed.ncbi.nlm.nih.gov/19187002",
32 "text": "Metamizole (dipyrone)-associated adverse effects on platelet aggregation..."
33 }
34 ]
35 }
36 ]
37}Por principio ativo
GET /v1/interacoes/pa/{id}
Interacoes de um principio ativo especifico. Suporta filtro ?gravidade= e paginacao.
curl -H "Authorization: Bearer $TOKEN" \
"https://api.pharmadb.com.br/v1/interacoes/pa/1?page=1&per_page=50"1{
2 "principio_ativo": { "id": 1, "nome_dcb": "dipirona" },
3 "total": 312,
4 "page": 1,
5 "per_page": 50,
6 "interacoes": [
7 {
8 "id": 1042,
9 "pa_a": { "id": 1, "nome_dcb": "dipirona" },
10 "pa_b": { "id": 5, "nome_dcb": "varfarina" },
11 "gravidade": "grave",
12 "efeito_clinico": "Aumento do risco de sangramento.",
13 "mecanismo": "Dipirona inibe a agregacao plaquetaria.",
14 "manejo_clinico": "Monitorar INR frequentemente.",
15 "descricao_estendida_pt": "...",
16 "referencias": []
17 }
18 ]
19}Por EAN
GET /v1/interacoes/ean/{ean}
Mesmo que /v1/interacoes/produto/{id}, mas via codigo de barras EAN-13.
curl -H "Authorization: Bearer $TOKEN" \
"https://api.pharmadb.com.br/v1/interacoes/ean/7891058002008"Cruzamento entre 2 produtos
GET /v1/interacoes/cruzadas?produto_a=&produto_b=
Verifica interacoes entre os principios ativos de dois produtos especificos. Util para verificar se dois medicamentos podem ser tomados juntos.
curl -H "Authorization: Bearer $TOKEN" \
"https://api.pharmadb.com.br/v1/interacoes/cruzadas?produto_a=1284&produto_b=5678"1{
2 "produto_a": { "id": 1284, "nome": "DORFLEX", "principios_ativos": ["dipirona", "citrato de orfenadrina", "cafeina"] },
3 "produto_b": { "id": 5678, "nome": "MAREVAN", "principios_ativos": ["varfarina sodica"] },
4 "pas_a": [{ "id": 1, "nome_dcb": "dipirona" }, { "id": 42, "nome_dcb": "citrato de orfenadrina" }],
5 "pas_b": [{ "id": 5, "nome_dcb": "varfarina sodica" }],
6 "total": 2,
7 "page": 1,
8 "per_page": 50,
9 "interacoes": [
10 {
11 "id": 1042,
12 "pa_a": { "id": 1, "nome_dcb": "dipirona" },
13 "pa_b": { "id": 5, "nome_dcb": "varfarina sodica" },
14 "gravidade": "grave",
15 "efeito_clinico": "Aumento do risco de sangramento.",
16 "mecanismo": "Dipirona inibe a agregacao plaquetaria.",
17 "manejo_clinico": "Monitorar INR frequentemente.",
18 "descricao_estendida_pt": "...",
19 "referencias": []
20 }
21 ]
22}Batch — N produtos de uma vez
POST /v1/interacoes/batch
Verifica todas as interacoes cruzadas entre ate 20 produtos em uma unica requisicao. Aceita produto_ids ou eans (nao ambos). Retorna apenas interacoes entre PAs de produtos diferentes (ignora interacoes intra-produto).
curl -X POST -H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"produto_ids": [1284, 5678, 9012]}' \
https://api.pharmadb.com.br/v1/interacoes/batchcurl -X POST -H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"eans": ["7891058002008", "7896004711515"]}' \
https://api.pharmadb.com.br/v1/interacoes/batch1{
2 "produtos": [
3 { "id": 1284, "nome": "DORFLEX", "principios_ativos": ["dipirona", "citrato de orfenadrina"] },
4 { "id": 5678, "nome": "MAREVAN", "principios_ativos": ["varfarina sodica"] },
5 { "id": 9012, "nome": "RIVOTRIL", "principios_ativos": ["clonazepam"] }
6 ],
7 "total_interacoes": 5,
8 "interacoes_graves": 2,
9 "interacoes_moderadas": 2,
10 "interacoes_leves": 1,
11 "interacoes": [
12 {
13 "id": 1042,
14 "pa_a": { "id": 1, "nome_dcb": "dipirona" },
15 "pa_b": { "id": 5, "nome_dcb": "varfarina sodica" },
16 "gravidade": "grave",
17 "efeito_clinico": "Aumento do risco de sangramento.",
18 "mecanismo": "Dipirona inibe a agregacao plaquetaria.",
19 "manejo_clinico": "Monitorar INR frequentemente.",
20 "descricao_estendida_pt": "...",
21 "referencias": []
22 }
23 ]
24}Detalhe de uma interacao
GET /v1/interacoes/{id}
Retorna todos os campos de uma interacao especifica, incluindo referencias bibliograficas.
curl -H "Authorization: Bearer $TOKEN" \
https://api.pharmadb.com.br/v1/interacoes/10421{
2 "id": 1042,
3 "pa_a": { "id": 1, "nome_dcb": "dipirona" },
4 "pa_b": { "id": 5, "nome_dcb": "varfarina" },
5 "gravidade": "grave",
6 "tipo_interacao": "farmacodinamica",
7 "efeito_clinico": "Aumento do risco de sangramento.",
8 "mecanismo": "Dipirona inibe a agregacao plaquetaria e potencializa o efeito anticoagulante.",
9 "manejo_clinico": "Evitar uso concomitante ou monitorar INR frequentemente.",
10 "descricao_estendida_pt": "A dipirona pode aumentar significativamente o risco de sangramento...",
11 "referencias": [
12 {
13 "url": "https://pubmed.ncbi.nlm.nih.gov/19187002",
14 "text": "Metamizole (dipyrone)-associated adverse effects on platelet aggregation..."
15 }
16 ]
17}Campos de uma interacao
Bulas
Textos de bulas extraidos do Bulario Eletronico da ANVISA. Incluem indicacoes, contraindicacoes, posologia, interacoes e reacoes adversas.
Busca por nome
GET /v1/bulas/busca?q=
Busca bulas pelo nome do produto. Retorna resumo indicando quais secoes estao disponiveis. Parametro q obrigatorio (min 3 caracteres).
curl -H "Authorization: Bearer $TOKEN" \
"https://api.pharmadb.com.br/v1/bulas/busca?q=dorflex&page=1&per_page=20"1{
2 "total": 2,
3 "page": 1,
4 "per_page": 20,
5 "items": [
6 {
7 "id": 101,
8 "tipo": "paciente",
9 "produto_id": 1284,
10 "produto_nome": "DORFLEX",
11 "tem_indicacoes": true,
12 "tem_interacoes": true,
13 "extraido": true
14 }
15 ]
16}Bula completa
GET /v1/bulas/{id}
Retorna a bula completa com todas as secoes de texto extraidas.
curl -H "Authorization: Bearer $TOKEN" \
https://api.pharmadb.com.br/v1/bulas/1011{
2 "id": 101,
3 "tipo": "paciente",
4 "produto": {
5 "id": 1284,
6 "nome": "DORFLEX",
7 "registro_anvisa": "1130003780014",
8 "laboratorio": "SANOFI MEDLEY FARMACEUTICA LTDA",
9 "principios_ativos": ["dipirona", "citrato de orfenadrina", "cafeina"]
10 },
11 "texto_indicacoes": "Dores musculares, cefaleia tensional...",
12 "texto_contraindicacoes": "Hipersensibilidade aos componentes da formula...",
13 "texto_interacoes": "Pode interagir com anticoagulantes orais...",
14 "texto_posologia": "Adultos: 1 a 2 comprimidos, 3 a 4 vezes ao dia.",
15 "texto_reacoes_adversas": "Reacoes alergicas, nauseas, sonolencia...",
16 "extraido_em": "2026-02-20T14:30:00"
17}Secao de interacoes
GET /v1/bulas/{id}/interacoes
Retorna apenas a secao de interacoes medicamentosas da bula — util para cruzar com dados estruturados.
curl -H "Authorization: Bearer $TOKEN" \
https://api.pharmadb.com.br/v1/bulas/101/interacoes{
"produto_nome": "DORFLEX",
"texto": "Pode interagir com anticoagulantes orais, aumentando o risco de sangramento..."
}Bulas de um produto
GET /v1/bulas/produto/{produto_id}
Lista todas as bulas de um produto (paciente e profissional). Suporta paginacao.
curl -H "Authorization: Bearer $TOKEN" \
"https://api.pharmadb.com.br/v1/bulas/produto/1284?page=1&per_page=20"Principios Ativos
Busca por nome
GET /v1/principios-ativos/busca?q=
Busca principios ativos pela nomenclatura DCB (Denominacao Comum Brasileira). Parametro q obrigatorio (min 3 caracteres). Suporta paginacao.
curl -H "Authorization: Bearer $TOKEN" \
"https://api.pharmadb.com.br/v1/principios-ativos/busca?q=dipirona"1{
2 "total": 3,
3 "page": 1,
4 "per_page": 20,
5 "items": [
6 { "id": 1, "nome_dcb": "dipirona" },
7 { "id": 2, "nome_dcb": "dipirona sodica" }
8 ]
9}Detalhes de um principio ativo
GET /v1/principios-ativos/{id}
Retorna detalhes completos: nome DCB, nome INN (internacional), codigo ATC, categoria, descricao e total de interacoes conhecidas.
curl -H "Authorization: Bearer $TOKEN" \
https://api.pharmadb.com.br/v1/principios-ativos/11{
2 "id": 1,
3 "nome_dcb": "dipirona",
4 "categoria_dcb": "substancia quimica",
5 "tipo_entidade": "SmallMoleculeDrug",
6 "inn_nome": "metamizole",
7 "codigo_atc": "N02BB02",
8 "descricao": "Analgesico e antipiretico do grupo das pirazolonas...",
9 "total_interacoes": 312
10}Uso da API
GET /v1/usage
Retorna o consumo atual da sua API key — uso do dia, do mes e breakdown por endpoint nos ultimos N dias. Use no seu dashboard para acompanhar consumo sem precisar abrir ticket. Aceita query param opcional ?days=7 (default 7, max 90).
curl -H "Authorization: Bearer $TOKEN" \
"https://api.pharmadb.com.br/v1/usage?days=7"1{
2 "api_key": { "id": 169, "tier": "pro" },
3 "daily": {
4 "used": 432,
5 "limit": 2000,
6 "remaining": 1568,
7 "reset_at": "2026-05-29T03:00:00+00:00"
8 },
9 "monthly": {
10 "used": 8721,
11 "limit": 60000,
12 "remaining": 51279,
13 "reset_at": "2026-06-01T00:00:00+00:00",
14 "period_start": "2026-05-01"
15 },
16 "by_endpoint": [
17 { "endpoint": "/v1/produtos/{id}", "method": "GET", "count": 5421, "last_called_at": "..." },
18 { "endpoint": "/v1/interacoes/cruzadas", "method": "GET", "count": 1023, "last_called_at": "..." },
19 { "endpoint": "/v1/produtos/batch", "method": "POST", "count": 87, "last_called_at": "..." }
20 ],
21 "_meta": {
22 "period_days": 7,
23 "period_start": "2026-05-21",
24 "period_end": "2026-05-28"
25 }
26}Headers HTTP & Cache
Toda resposta da API inclui headers padronizados para rate limit, performance e cache HTTP. Aproveita-los reduz banda e custo.
Headers retornados
curl -i -H "Authorization: Bearer $TOKEN" \
https://api.pharmadb.com.br/v1/produtos/1284
HTTP/2 200
content-type: application/json
etag: "a3f5c8d2e1b9f7c4..."
cache-control: private, max-age=300, must-revalidate
server-timing: total;dur=423.1, sql;dur=185.4;desc="3q", app;dur=237.7
x-ratelimit-limit-day: 2000
x-ratelimit-remaining-day: 1567
x-ratelimit-reset-day: 1779926400
x-ratelimit-limit-month: 60000
x-ratelimit-remaining-month: 51278Cache via ETag (economiza banda)
Endpoints GET de detalhe (/v1/produtos/{id}, /v1/principios-ativos/{id}, /v1/interacoes/{id}) retornam um ETag. Guarde-o e envie em If-None-Match na proxima chamada. Se o conteudo nao mudou, a API retorna 304 Not Modified sem body — perfeito para apps que fazem polling ou recarregam paginas.
# Primeira requisicao — guarda o ETag
curl -i -H "Authorization: Bearer $TOKEN" \
https://api.pharmadb.com.br/v1/produtos/1284
# < etag: "a3f5c8d2..."
# Segunda requisicao com If-None-Match
curl -i -H "Authorization: Bearer $TOKEN" \
-H 'If-None-Match: "a3f5c8d2..."' \
https://api.pharmadb.com.br/v1/produtos/1284
# < HTTP/2 304 Not Modified (sem body — economiza banda)Erros
A API usa codigos HTTP padrao. Respostas de erro incluem um campo detail com a descricao do problema.
{
"detail": "Produto nao encontrado"
}Limites
Cada plano possui um limite de requisicoes diario. Ao atingir o limite, a API retorna 429. O contador reseta a meia-noite UTC.
Precisa de mais? Veja os planos disponiveis.