# contém. > Veja se alimentos, suplementos, produtos de limpeza, cosméticos, remédios e dispositivos médicos estão liberados pela ANVISA. Busque pela marca, pelo nome, pela empresa, pelo CNPJ ou pelo número do rótulo. Consulta independente aos dados abertos da ANVISA, sem vínculo com a ANVISA: para qualquer decisão, confira a consulta oficial. A busca do site roda em JavaScript no navegador. Sem JavaScript, use as páginas de empresa ou os arquivos de dados abaixo. ## Páginas sem JavaScript - [Página de empresa](https://contem.abelhaninja.de/empresa/84684620000187/): https://contem.abelhaninja.de/empresa//. Lista os alimentos e suplementos, os produtos de limpeza, os cosméticos (até 100, liberados primeiro), os remédios e os dispositivos médicos da empresa com situação (Liberado ou Encerrado), tipo (Registrado ou Notificado; nos cosméticos também Isento de registro e Descartável), datas, nº do processo e registro, quem envasa os alimentos da empresa e para quem ela envasa, com link para cada empresa (a envasadora sem produto próprio também tem página), os fabricantes no exterior, os fabricantes dos dispositivos médicos dela (com link para a página do fabricante), os certificados de boas práticas de fabricação (CBPF e CBPDA) por fábrica inspecionada e os que outras empresas pediram para a fábrica dela (quem só tem certificado também tem página) e as medidas de fiscalização da ANVISA contra a empresa. As que valem indexar estão no [sitemap](https://contem.abelhaninja.de/sitemap-index.xml). - Página de fabricante: https://contem.abelhaninja.de/fabricante/-/. Quem fabrica dispositivos médicos para duas empresas ou mais, com a lista delas e quantos dispositivos cada uma registra. é o nome em minúsculas, sem acento e só com [a-z0-9] (a coluna chave de produtos_saude_fabricacao); é o país em minúsculas, sem acento, com hífen entre as palavras. A página de um dispositivo liga a ela. - [Página inicial](https://contem.abelhaninja.de/): os cinco corredores com uma busca em cada um, que sem JavaScript só abre o corredor - [Empresas de A a Z](https://contem.abelhaninja.de/empresas/): o link da página de cada uma - [Sobre](https://contem.abelhaninja.de/sobre/): o site e os dados - [Dicionário de dados](https://contem.abelhaninja.de/dicionario/): as colunas de cada tabela A página de um produto (https://contem.abelhaninja.de/alimentos/?p=, https://contem.abelhaninja.de/limpeza/?p=, https://contem.abelhaninja.de/cosmeticos/?p=, https://contem.abelhaninja.de/remedios/?p=, https://contem.abelhaninja.de/dispositivos/?p=) precisa de JavaScript; glúten, lactose, alergênicos, ingredientes e preços da CMED só aparecem nela. ## Dados Arquivos Parquet do build 20261027T000805Z, com os dados abertos da ANVISA. O [manifest](https://vasfvitor.github.io/anvisa-api/manifest.json) lista os arquivos atuais. - [alimentos_por_produto](https://vasfvitor.github.io/anvisa-api/data/20261027T000805Z/alimentos_por_produto.parquet): 50.723 linhas, dados de 13/10/2026 - [alimentos_fabricacao](https://vasfvitor.github.io/anvisa-api/data/20261027T000805Z/alimentos_fabricacao.parquet): 1.482 linhas, dados de 13/10/2026 - [saneantes](https://vasfvitor.github.io/anvisa-api/data/20261027T000805Z/saneantes.parquet): 144.548 linhas, dados de 12/10/2026 - [cosmeticos](https://vasfvitor.github.io/anvisa-api/data/20261027T000805Z/cosmeticos.parquet): 1.206.757 linhas, dados de 12/10/2026 - [medicamentos_por_produto](https://vasfvitor.github.io/anvisa-api/data/20261027T000805Z/medicamentos_por_produto.parquet): 36.427 linhas, dados de 09/10/2026 - [produtos_saude_por_produto](https://vasfvitor.github.io/anvisa-api/data/20261027T000805Z/produtos_saude_por_produto.parquet): 100.681 linhas, dados de 12/10/2026 - [produtos_saude_fabricacao](https://vasfvitor.github.io/anvisa-api/data/20261027T000805Z/produtos_saude_fabricacao.parquet): 16.725 linhas, dados de 12/10/2026 - [cmed](https://vasfvitor.github.io/anvisa-api/data/20261027T000805Z/cmed.parquet): 26.635 linhas, dados de 09/10/2026 - [certificados](https://vasfvitor.github.io/anvisa-api/data/20261027T000805Z/certificados.parquet): 35.610 linhas, dados de 13/10/2026 - [medidas](https://vasfvitor.github.io/anvisa-api/data/20261027T000805Z/medidas.parquet): 14.093 linhas, dados de 13/10/2026 - alimentos_por_produto: uma linha por produto (co_seq_produto), com as apresentações agrupadas e o resumo de alergênicos (gluten, lactose, contem, pode_conter, nao_contem). ativo é liberado, marcas separadas por ";"; registros são os números das apresentações. A tabela por apresentação é alimentos; a de detalhe (ingredientes, embalagens, alergênicos por apresentação), alimentos_resultado. - alimentos_fabricacao: quem envasa ou fabrica os alimentos de cada empresa, uma linha por empresa detentora (cnpj, empresa) e fabricante: a envasadora brasileira (fabricante_cnpj, cidade) ou o fabricante no exterior (fabricante_codigo, o código da ANVISA). vinculo é propria (o mesmo CNPJ), grupo (outra filial da mesma raiz de 8 dígitos), terceira ou exterior; produtos e produtos_ativos contam os produtos da detentora com aquele fabricante. - saneantes: produtos de limpeza, uma linha por processo; o produto é nu_expediente. st_produto_ativo é liberado, dt_vencimento_produto é o fim da liberação. - cosmeticos: cosméticos, perfumes e produtos de higiene, uma linha por processo e st_registrado (11 mil processos registrados aparecem duas vezes). st_situacao_produto é liberado, ds_tipo_peticao o tipo (REGISTRO, Notificado, ISENTO DE REGISTRO, DESCARTAVEL; vazio nas linhas de registro). Os mesmos dados também em 3.206 pedaços por palavra do nome, CNPJ e número, com [índice](https://vasfvitor.github.io/anvisa-api/data/20261027T000805Z/cosmeticos/indice.json). - medicamentos_por_produto: remédios, uma linha por registro de 9 dígitos (registro_produto; os 13 dígitos da caixa são o registro mais a apresentação), com principio_ativo, classe_terapeutica, categoria_regulatoria (Genérico, Similar, Novo…), ativo e vencimento. A tabela como a ANVISA publica, com repetições, é medicamentos. - produtos_saude_por_produto: dispositivos médicos (produtos para saúde), uma linha por registro ou cadastro, com nome_tecnico, classe_risco (I a IV), tipo (Registrado ou Cadastrado), ativo, vencimento e a lista fabricantes. A tabela por fabricante é produtos_saude. - produtos_saude_fabricacao: quem fabrica os dispositivos médicos de cada empresa, uma linha por detentora (cnpj, empresa), chave do fabricante e pais; fabricante é a grafia mais frequente do nome, vinculo é propria (a própria detentora), terceira (outro fabricante no Brasil) ou exterior; registros e registros_ativos contam os registros e cadastros da detentora com aquele fabricante. Em produtos_saude_por_produto, fabricantes_chaves e fabricantes_paises trazem a chave e o país na ordem de fabricantes. - cmed: a lista de preços da CMED, uma linha por apresentação (ggrem), preços em centavos por alíquota de ICMS (pf_18, pmc_18, pmvg_18…), junta aos remédios por registro_produto. - medidas: medidas de fiscalização (suspensão, proibição, recolhimento, interdição, apreensão, inutilização), uma linha por dossiê e produto, com acoes e atividades em lista e cnpj da empresa fiscalizada. area_codigo 6 é alimento, 3 é saneante, 2 é cosmético, 1 é medicamento, 8 é dispositivo médico. - certificados: certificados de boas práticas de fabricação (CBPF) e de distribuição e armazenagem (CBPDA), um por linha: a empresa que pediu (cnpj, empresa), a fábrica inspecionada (inspecionada_cnpj no Brasil, inspecionada_codigo no exterior, inspecionada, pais; vinculo propria, grupo, terceira, exterior ou desconhecida, quando a ANVISA não informa a fábrica), area (produtos_saude, insumos, medicamentos, cosmeticos, saneantes, alimentos, outros), validade, vigente (dentro da validade em dados_de), cancelado e dados_de, a data dos dados (a lista de medicamentos parou em 2025-09-08). ## Consultas (DuckDB) Um produto pelo id da URL (`?p=`), a mesma consulta que a página mostra a quem não roda JavaScript; troque `

` pelo valor: Alimentos e suplementos (https://contem.abelhaninja.de/alimentos/?p=…, troque

pelo número do produto): ```sql SELECT id, nome, marcas, empresa, cnpj, processo, registro, ativo, tipo, categoria, desde, vencimento, gluten, lactose, contem, pode_conter, nao_contem, apresentacoes FROM read_parquet('https://vasfvitor.github.io/anvisa-api/data/20261027T000805Z/alimentos_por_produto.parquet') WHERE id =

; ``` Produtos de limpeza (https://contem.abelhaninja.de/limpeza/?p=…, troque

pelo número do expediente): ```sql SELECT nu_expediente, no_produto, no_razao_social_empresa, nu_cnpj_empresa, nu_processo, nu_registro_produto, st_produto_ativo, is_registrado, dt_vencimento_produto FROM read_parquet('https://vasfvitor.github.io/anvisa-api/data/20261027T000805Z/saneantes.parquet') WHERE nu_expediente = '

' QUALIFY row_number() OVER (PARTITION BY nu_expediente ORDER BY is_registrado DESC, dt_vencimento_produto DESC NULLS LAST) = 1; ``` Cosméticos (https://contem.abelhaninja.de/cosmeticos/?p=…, troque

pelo número do processo): ```sql SELECT nu_processo, no_produto, no_razao_social_empresa, nu_cnpj_empresa, nu_registro, st_situacao_produto, ds_tipo_peticao, st_registrado, dt_vencimento FROM read_parquet('https://vasfvitor.github.io/anvisa-api/data/20261027T000805Z/cosmeticos.parquet') WHERE nu_processo = '

' QUALIFY row_number() OVER (PARTITION BY nu_processo ORDER BY st_registrado) = 1; ``` Remédios (https://contem.abelhaninja.de/remedios/?p=…, troque

pelo registro de 9 dígitos): ```sql SELECT id, registro_produto, nome, principio_ativo, categoria_regulatoria, classe_terapeutica, empresa, cnpj, processo, ativo, desde, vencimento FROM read_parquet('https://vasfvitor.github.io/anvisa-api/data/20261027T000805Z/medicamentos_por_produto.parquet') WHERE id = '

'; ``` Dispositivos médicos (https://contem.abelhaninja.de/dispositivos/?p=…, troque

pelo registro ou cadastro): ```sql SELECT id, registro, nome, nome_tecnico, classe_risco, tipo, empresa, cnpj, processo, ativo, publicacao, vencimento, fabricantes FROM read_parquet('https://vasfvitor.github.io/anvisa-api/data/20261027T000805Z/produtos_saude_por_produto.parquet') WHERE id = '

'; ``` Alimentos de uma marca, um produto por linha: ```sql SELECT id, nome, marcas, empresa, ativo, processo, contem FROM read_parquet('https://vasfvitor.github.io/anvisa-api/data/20261027T000805Z/alimentos_por_produto.parquet') WHERE lower(strip_accents(marcas)) LIKE '%whey%'; ``` Quem envasa para uma empresa, e para quem ela envasa: ```sql SELECT vinculo, empresa, fabricante, fabricante_cnpj, cidade, produtos FROM read_parquet('https://vasfvitor.github.io/anvisa-api/data/20261027T000805Z/alimentos_fabricacao.parquet') WHERE cnpj = '45569555000197' OR fabricante_cnpj = '45569555000197' ORDER BY produtos DESC; ``` Quem registra os dispositivos médicos de um fabricante: ```sql SELECT empresa, cnpj, pais, registros, registros_ativos FROM read_parquet('https://vasfvitor.github.io/anvisa-api/data/20261027T000805Z/produtos_saude_fabricacao.parquet') WHERE chave LIKE 'yangzhoumedline%' AND vinculo <> 'propria' ORDER BY registros DESC; ``` Certificados de boas práticas de uma empresa (os que ela pediu e os pedidos para a fábrica dela): ```sql SELECT tipo, area, empresa, inspecionada, pais, vinculo, validade, vigente, dados_de FROM read_parquet('https://vasfvitor.github.io/anvisa-api/data/20261027T000805Z/certificados.parquet') WHERE cnpj = '45569555000197' OR inspecionada_cnpj = '45569555000197' ORDER BY vigente DESC, validade DESC; ``` Produtos de limpeza de uma empresa: ```sql SELECT nu_expediente, no_produto, st_produto_ativo, is_registrado, dt_vencimento_produto, nu_processo FROM read_parquet('https://vasfvitor.github.io/anvisa-api/data/20261027T000805Z/saneantes.parquet') WHERE nu_cnpj_empresa = '33122466000704'; ``` Cosméticos liberados de uma empresa, um por processo: ```sql SELECT nu_processo, any_value(no_produto) AS nome, any_value(nu_registro) AS registro, any_value(dt_vencimento) AS vencimento FROM read_parquet('https://vasfvitor.github.io/anvisa-api/data/20261027T000805Z/cosmeticos.parquet') WHERE nu_cnpj_empresa = '33306929000100' AND st_situacao_produto GROUP BY nu_processo; ``` Preço máximo de um remédio por apresentação (o registro de 9 dígitos é o da caixa sem os 4 últimos): ```sql SELECT m.nome, c.apresentacao, c.pf_18 / 100.0 AS pf, c.pmc_18 / 100.0 AS pmc, c.publicado_em FROM read_parquet('https://vasfvitor.github.io/anvisa-api/data/20261027T000805Z/medicamentos_por_produto.parquet') m JOIN read_parquet('https://vasfvitor.github.io/anvisa-api/data/20261027T000805Z/cmed.parquet') c USING (registro_produto) WHERE m.registro_produto = '186200018'; ``` Medidas contra uma empresa: ```sql SELECT ultima, produto, area, acoes FROM read_parquet('https://vasfvitor.github.io/anvisa-api/data/20261027T000805Z/medidas.parquet') WHERE cnpj = '29822523000103' ORDER BY ultima DESC; ```