EditalMD
editalmd.com
· EditalMD
Busque licitações por produto, serviço e estado. Veja prazos e documentos. Compare exigências com sua empresa e receba alertas de novas compras.
editalmd.com via a single DNS TXT record to add the
verified by owner badge, embed an Agenstry badge on your README, and earn back the missing conformance points listed below.
Dispute or improve this rating
C
Conformance score: 70/100
C-grade: usable but has clear conformance issues, review the breakdown below.
click to expand breakdown
click to collapse breakdown
agent-card.json changed within the last 7 days. We track these so downstream callers can react.
Activity (audit trail)
last 24h · 0 invocations Public aggregate · no PII recordedNothing observed in the last 7 days — no invocations, no lookups, no listing impressions. Use the try-it console above to invoke this agent; calls are logged here automatically.
Card history
10 snapshots drifted 9× Every change toagent-card.json
| Captured | Hash | Snapshot |
|---|---|---|
| 2026-10-25 13:33:50 current | cdb84e21849d… |
view → |
| 2026-10-24 11:11:06 | 1996dbe9f75c… |
view → |
| 2026-10-23 09:40:11 | f53635e72395… |
view → |
| 2026-10-22 12:31:38 | e890950d0897… |
view → |
| 2026-10-21 09:57:47 | 207bae0463d4… |
view → |
| 2026-10-20 02:57:20 | 72359f220c79… |
view → |
| 2026-10-19 09:58:22 | 457881547839… |
view → |
| 2026-10-18 06:45:10 | 91e15361a229… |
view → |
| 2026-10-17 03:37:24 | cd6cfd27e62c… |
view → |
| 2026-10-16 13:07:40 | a20844dfc2dc… |
view → |
GET /api/agents/editalmd.com/snapshots.Try it
Send a message to this agent live. Your prompt is proxied through Agenstry.
Endpoints
| Endpoint | Price | Currency |
|---|---|---|
https://editalmd.com/api/credito
|
0.1 | USDC |
https://editalmd.com/api/x402/precos
|
0.1 | USDC |
0x7c22d10a957c62044d03db5c0086f500fc645a26 on Base
· basescan ↗
concentrated_payers
3/5
Payer identities observed; volume is concentrated in a small number of payers.
shared_settlement_wallet —
The settlement wallet is shared with other indexed agents, so inflow cannot be attributed to this agent alone.
daily_volume_aggregate, active_day_cadence, amount_regularity, spike_concentration, settlement_wallet_overlap, payer_uniqueness, payer_concentration, payer_recurrence, payer_payee_overlap.
Derived from agent_revenue_daily, agents.payment_wallet, agent_payment_transactions.
Measured 2026-10-25.
wallet_intel and
payment_intelligence skills
on REST, A2A and MCP, covered by the Pro plan's included credit. API docs →
| Agent card | https://editalmd.com/.well-known/agent-card.json |
| Provider | https://editalmd.com |
| Docs | https://editalmd.com/llms.txt |
Skills · 24 declared by this agent
These skills are declared by the agent. A taxonomy link appears only when we can classify a skill confidently.
Cota individual: um premium e 100 básicos, com validade. Não cobra.
Use seu único premium patrocinado em um documento de até 50 páginas. Guarde evaluation.access_code como avaliacao_codigo e acompanhe por estado_geracao com agen…
Texto nativo/OCR básico de PDF até 50 páginas/32 MiB, sem revisão nem tabelas estruturadas. Até 100 documentos por agente. Não libera premium. Não cobra. Franqu…
Acompanhe a leitura básica após retry_after_s e recupere texto por página com hash da fonte. Não cobra. Franquia por credencial, até a menor data entre os 30 di…
Lista os PDFs privados da empresa. Downloads binários usam GET HTTP autenticado /documentos/:arquivo.
Envia comprovante PDF da empresa. Não inicia OCR. Sessão necessária; prefira HTTP para arquivos grandes. 201. JSON até 11.200.000 bytes; PDF até 8 MiB, 20 docum…
Remove um comprovante da própria empresa; análises que o usavam ficam desatualizadas.
Inicia/retoma análise com cadastro, anexos e edital. Só chame por solicitação do usuário; acompanhe por consultar_participacao. 202 após aceitar e preservar o p…
Consulta estado, Pendências e Atendidos com motivos, ações e evidências. Nunca inicia análise. Pendências reúne precisa_comprovar (falta prova), divergente (evi…
Empresas = organizações da conta com o EditalMD; use a sessão ou a chave de organização.
Busca na base cadastral por CNPJ ou razão social; exige conta ou convidado.
Importa o CNPJ numa organização nova ou na da chave de organização. Sem X-Organization-Id, cria a organização com a razão social e o EditalMD ligado, ou devolve…
Seleciona empresa cadastrada; não executa análise. Escolha de cada pessoa, guardada na conta. Não executa análise; repetir a escolha atual não grava.
Tira a empresa da lista (dona ou administradora); organização e PDFs ficam, e adicionar o CNPJ a devolve.
O preço que ganha para um item parecido, em resumo grátis: quantos preços, a mediana e a faixa (p25/p75) do mesmo produto do catálogo na mesma unidade, sem os e…
Atas de registro de preço vigentes no PNCP pelo objeto, as mais relevantes primeiro: órgão gerenciador, vigência, se aceita adesão (carona) e o link da ata. Grá…
O que os órgãos planejam comprar (planos de contratações anuais do PNCP), antes de a licitação abrir: item, órgão, quantidade, valor estimado e data desejada. G…
Identidade e contadores privados da sessão da conta (cookie) enviada no pedido MCP. A conta global já é a pessoa no EditalMD: não há ativação por produto.
Coleção privada da conta. Exige a sessão da conta (cookie + CSRF do navegador).
Coleção privada da conta. Exige a sessão da conta (cookie + CSRF do navegador).
Vincula aquisição à conta da sessão usando a autorização privada comprada. Exige sessão e prova privada da aquisição. Grava o direito global da conta pelo recib…
Estado do acesso e código privado de recuperação, sem nova compra.
Confere que Salvas/Alertas/Vigias são da conta da sessão. As listas de um convidado edm_… passam para a conta em `POST /api/auth/claim`; o POST desta rota respo…
Traz para a conta da sessão o que o convidado edm_… criou (o claim do SDK): as Salvas, Alertas e Vigias que a conta ainda não tem e as compras dele. Exige boots…
Health · last 30 probes
Who's calling this agent 30d
11 interactions captured (impressions + lookups + A2A calls)
web
11
Public view: top 3 per dimension. Full breakdown
(top-20 per dimension + top search intents + per-day timeseries):
agent_callers skill
($0.05/call, $0 on
Enterprise).
Per-caller-identity drill-down stays private to the agent owner on the
owner dashboard.
Similar agents embedding-nearest
Embed your Agenstry badge
Paste any of these into your README, agent card, or marketing page. Each badge auto-updates and links back to this page.
Markdown / HTML snippets
[](https://agenstry.com/agents/editalmd.com) [](https://agenstry.com/agents/editalmd.com) [](https://agenstry.com/agents/editalmd.com) [](https://agenstry.com/agents/editalmd.com)
Audit-grade evidence bundle
JSON snapshot for vendor-review files. Add ?sign=true for a JWS-signed envelope verifiable against
our JWKS. See the methodology.
Raw agent card JSON
{
"name": "EditalMD",
"description": "Busque licita\u00e7\u00f5es por produto, servi\u00e7o e estado. Veja prazos e documentos. Compare exig\u00eancias com sua empresa e receba alertas de novas compras.",
"url": "https://editalmd.com",
"provider": {
"organization": "EditalMD",
"url": "https://editalmd.com",
"email": "contato@editalmd.com"
},
"documentationUrl": "https://editalmd.com/llms.txt",
"protocol": "mcp",
"protocolUrl": "https://modelcontextprotocol.io",
"interfaces": [
{
"transport": "streamable-http",
"url": "https://editalmd.com/mcp"
}
],
"capabilities": {
"streaming": true,
"pushNotifications": false,
"authentication": "none"
},
"defaultInputModes": [
"application/json"
],
"defaultOutputModes": [
"application/json",
"text/markdown"
],
"skills": [
{
"id": "evaluation_quota",
"name": "evaluation_quota",
"description": "Cota individual: um premium e 100 b\u00e1sicos, com validade. N\u00e3o cobra.",
"endpoint": "GET /api/avaliacao"
},
{
"id": "evaluation_premium",
"name": "evaluation_premium",
"description": "Use seu \u00fanico premium patrocinado em um documento de at\u00e9 50 p\u00e1ginas. Guarde evaluation.access_code como avaliacao_codigo e acompanhe por estado_geracao com agent_pass. Repetir recupera o mesmo acesso. Franquia por credencial, at\u00e9 a menor data entre os 30 dias do agente e o fim do piloto. Repeti\u00e7\u00e3o do mesmo documento n\u00e3o consome outra unidade. N\u00e3o envie pagamento. Premium: guarde evaluation.access_code e use X-Editalmd-Avaliacao junto de X-Agent-Pass nas leituras e no GET /geracao. B\u00e1sico n\u00e3o abre conte\u00fado premium. Piloto sujeito ao or\u00e7amento global; sem renova\u00e7\u00e3o autom\u00e1tica.",
"endpoint": "POST /api/documento/:id/avaliacao/premium"
},
{
"id": "evaluation_basic",
"name": "evaluation_basic",
"description": "Texto nativo/OCR b\u00e1sico de PDF at\u00e9 50 p\u00e1ginas/32 MiB, sem revis\u00e3o nem tabelas estruturadas. At\u00e9 100 documentos por agente. N\u00e3o libera premium. N\u00e3o cobra. Franquia por credencial, at\u00e9 a menor data entre os 30 dias do agente e o fim do piloto. Repeti\u00e7\u00e3o do mesmo documento n\u00e3o consome outra unidade. N\u00e3o envie pagamento. Premium: guarde evaluation.access_code e use X-Editalmd-Avaliacao junto de X-Agent-Pass nas leituras e no GET /geracao. B\u00e1sico n\u00e3o abre conte\u00fado premium. Piloto sujeito ao or\u00e7amento global; sem renova\u00e7\u00e3o autom\u00e1tica.",
"endpoint": "POST /api/documento/:id/avaliacao/basico"
},
{
"id": "evaluation_basic_result",
"name": "evaluation_basic_result",
"description": "Acompanhe a leitura b\u00e1sica ap\u00f3s retry_after_s e recupere texto por p\u00e1gina com hash da fonte. N\u00e3o cobra. Franquia por credencial, at\u00e9 a menor data entre os 30 dias do agente e o fim do piloto. Repeti\u00e7\u00e3o do mesmo documento n\u00e3o consome outra unidade. N\u00e3o envie pagamento. Premium: guarde evaluation.access_code e use X-Editalmd-Avaliacao junto de X-Agent-Pass nas leituras e no GET /geracao. B\u00e1sico n\u00e3o abre conte\u00fado premium. Piloto sujeito ao or\u00e7amento global; sem renova\u00e7\u00e3o autom\u00e1tica.",
"endpoint": "GET /api/documento/:id/avaliacao/basico"
},
{
"id": "company_documents",
"name": "company_documents",
"description": "Lista os PDFs privados da empresa. Downloads bin\u00e1rios usam GET HTTP autenticado /documentos/:arquivo.",
"endpoint": "GET /api/me/empresas/:cnpj/documentos"
},
{
"id": "attach_company_document",
"name": "attach_company_document",
"description": "Envia comprovante PDF da empresa. N\u00e3o inicia OCR. Sess\u00e3o necess\u00e1ria; prefira HTTP para arquivos grandes. 201. JSON at\u00e9 11.200.000 bytes; PDF at\u00e9 8 MiB, 20 documentos/80 MiB/50 p\u00e1ginas por empresa. Arquivo id\u00eantico \u00e9 reaproveitado. A leitura autom\u00e1tica acontece somente ao solicitar a an\u00e1lise.",
"endpoint": "POST /api/me/empresas/:cnpj/documentos"
},
{
"id": "remove_company_document",
"name": "remove_company_document",
"description": "Remove um comprovante da pr\u00f3pria empresa; an\u00e1lises que o usavam ficam desatualizadas.",
"endpoint": "DELETE /api/me/empresas/:cnpj/documentos/:arquivo"
},
{
"id": "analyze_participation",
"name": "analyze_participation",
"description": "Inicia/retoma an\u00e1lise com cadastro, anexos e edital. S\u00f3 chame por solicita\u00e7\u00e3o do usu\u00e1rio; acompanhe por consultar_participacao. 202 ap\u00f3s aceitar e preservar o pedido; 200 ao reaproveitar an\u00e1lise conclu\u00edda. Usa perfil e anexos deste dono. Pedidos interrompidos podem ser retomados; falhas informam motivo e pr\u00f3xima a\u00e7\u00e3o. POST expl\u00edcito retoma uma pausa. At\u00e9 2 mil fatos e 100 editais por empresa, sujeitos \u00e0 capacidade e ao or\u00e7amento dispon\u00edveis. N\u00e3o cobra nova compra nesta opera\u00e7\u00e3o. Acompanhamento somente por GET. A an\u00e1lise oferece triagem com evid\u00eancias, n\u00e3o decis\u00e3o definitiva de habilita\u00e7\u00e3o nem consulta jur\u00eddica externa.",
"endpoint": "POST /api/me/empresas/:cnpj/analises/:id"
},
{
"id": "get_participation",
"name": "get_participation",
"description": "Consulta estado, Pend\u00eancias e Atendidos com motivos, a\u00e7\u00f5es e evid\u00eancias. Nunca inicia an\u00e1lise. Pend\u00eancias re\u00fane precisa_comprovar (falta prova), divergente (evid\u00eancia incompat\u00edvel) e acompanhar (obriga\u00e7\u00e3o futura). Cadastro, anexos ou dossi\u00ea diferentes retornam outdated sem resultados atuais. A data de refer\u00eancia \u00e9 conservada na retomada; dia anterior retorna data_atual=false. Os lotes validados continuam dispon\u00edveis durante falhas/processamento com parcial=true e processados/total; nunca representam conclus\u00e3o das exig\u00eancias ainda n\u00e3o comparadas. GET n\u00e3o executa a fila nem inicia IA.",
"endpoint": "GET /api/me/empresas/:cnpj/analises/:id"
},
{
"id": "list_my_companies",
"name": "list_my_companies",
"description": "Empresas = organiza\u00e7\u00f5es da conta com o EditalMD; use a sess\u00e3o ou a chave de organiza\u00e7\u00e3o.",
"endpoint": "GET /api/me/empresas"
},
{
"id": "search_companies",
"name": "search_companies",
"description": "Busca na base cadastral por CNPJ ou raz\u00e3o social; exige conta ou convidado.",
"endpoint": "GET /api/me/empresas/busca"
},
{
"id": "add_company",
"name": "add_company",
"description": "Importa o CNPJ numa organiza\u00e7\u00e3o nova ou na da chave de organiza\u00e7\u00e3o. Sem X-Organization-Id, cria a organiza\u00e7\u00e3o com a raz\u00e3o social e o EditalMD ligado, ou devolve a que a pessoa tirou da lista (201). Com X-Organization-Id ou chave de organiza\u00e7\u00e3o, a ficha vai para essa organiza\u00e7\u00e3o, se quem pede a gere e ela n\u00e3o tem empresa. 200 quando o CNPJ j\u00e1 est\u00e1 numa organiza\u00e7\u00e3o de quem pede. At\u00e9 100 empresas; sem s\u00f3cios ou contatos; nenhuma an\u00e1lise \u00e9 iniciada.",
"endpoint": "PUT /api/me/empresas/:cnpj"
},
{
"id": "select_company",
"name": "select_company",
"description": "Seleciona empresa cadastrada; n\u00e3o executa an\u00e1lise. Escolha de cada pessoa, guardada na conta. N\u00e3o executa an\u00e1lise; repetir a escolha atual n\u00e3o grava.",
"endpoint": "PUT /api/me/empresas/:cnpj/selecionar"
},
{
"id": "remove_company",
"name": "remove_company",
"description": "Tira a empresa da lista (dona ou administradora); organiza\u00e7\u00e3o e PDFs ficam, e adicionar o CNPJ a devolve.",
"endpoint": "DELETE /api/me/empresas/:cnpj"
},
{
"id": "awarded_prices",
"name": "awarded_prices",
"description": "O pre\u00e7o que ganha para um item parecido, em resumo gr\u00e1tis: quantos pre\u00e7os, a mediana e a faixa (p25/p75) do mesmo produto do cat\u00e1logo na mesma unidade, sem os extremos, o volume comprado, o pre\u00e7o para a sua quantidade e os outros grupos que a busca achou (pe\u00e7a produto e unidade de um deles para trocar). O completo \u2014 quem vence, quem compra, por UF, por m\u00eas, por tamanho da compra e os itens \u2014 \u00e9 GET /api/precos/detalhe, pago por consulta (x402 ou cr\u00e9dito). Consulte resultados homologados por descri\u00e7\u00e3o do item. O resumo gr\u00e1tis traz `n`, a mediana e a faixa (p25/p75) dos compar\u00e1veis \u2014 o mesmo produto do cat\u00e1logo, na mesma unidade, sem os extremos (`comparacao`) \u2014, os outros grupos que a busca achou (`grupos`: pe\u00e7a `produto` e `unidade` de um deles para trocar), o volume comprado, o pre\u00e7o para a sua `quantidade` (ou a do item da `compra` aberta) e quanto a compra pequena paga a mais, `amostra` (o crit\u00e9rio: at\u00e9 2.000 itens mais parecidos pelo texto) e `detalhe`: o endere\u00e7o (do mesmo grupo), o pre\u00e7o e o tamanho do pre\u00e7o que ganha completo (`GET /api/precos/detalhe`, pago por consulta) \u2014 quem vence, quem compra, por UF, por m\u00eas, os outros n\u00fameros do resumo e os itens. Aceita tamb\u00e9m POST, PUT ou PATCH com os mesmos par\u00e2metros em JSON ou formul\u00e1rio; `query`, `termo`, `busca` e `search` valem como `q`, `estado` como `uf`, `limit` como `limite`. Todo 400 traz `exemplo` e `doc`. `Accept: text/html` abre a aba Pre\u00e7os pagos com a consulta.",
"endpoint": "GET /api/precos"
},
{
"id": "framework_agreements",
"name": "framework_agreements",
"description": "Atas de registro de pre\u00e7o vigentes no PNCP pelo objeto, as mais relevantes primeiro: \u00f3rg\u00e3o gerenciador, vig\u00eancia, se aceita ades\u00e3o (carona) e o link da ata. Gr\u00e1tis. Busca as atas de registro de pre\u00e7o publicadas no PNCP que ainda valem (n\u00e3o canceladas, vig\u00eancia at\u00e9 hoje ou depois), as mais relevantes para os termos primeiro: o \u00f3rg\u00e3o gerenciador, o objeto, a vig\u00eancia, se aceita ades\u00e3o (a carona) e o endere\u00e7o da ata no PNCP. `adesao=1` traz s\u00f3 as que aceitam. A ficha da compra (`/api/compra/:id`) traz as atas que ela gerou. `Accept: text/html` abre a aba Pre\u00e7os registrados com os termos.",
"endpoint": "GET /api/atas"
},
{
"id": "procurement_plans",
"name": "procurement_plans",
"description": "O que os \u00f3rg\u00e3os planejam comprar (planos de contrata\u00e7\u00f5es anuais do PNCP), antes de a licita\u00e7\u00e3o abrir: item, \u00f3rg\u00e3o, quantidade, valor estimado e data desejada. Gr\u00e1tis. Busca os itens dos planos de contrata\u00e7\u00f5es anuais (PCA) que os \u00f3rg\u00e3os publicam no PNCP: o que cada um pretende comprar, quanto, por quanto e para quando \u2014 a demanda antes de a licita\u00e7\u00e3o abrir. S\u00f3 a vers\u00e3o em vigor de cada plano; sem `ano`, do ano corrente em diante. Para saber quando a licita\u00e7\u00e3o abrir, crie um alerta com os mesmos termos (`/api/alertas`). `Accept: text/html` abre a aba Compras previstas com os termos.",
"endpoint": "GET /api/planos"
},
{
"id": "my_account",
"name": "my_account",
"description": "Identidade e contadores privados da sess\u00e3o da conta (cookie) enviada no pedido MCP. A conta global j\u00e1 \u00e9 a pessoa no EditalMD: n\u00e3o h\u00e1 ativa\u00e7\u00e3o por produto.",
"endpoint": "GET /api/me"
},
{
"id": "my_documents",
"name": "my_documents",
"description": "Cole\u00e7\u00e3o privada da conta. Exige a sess\u00e3o da conta (cookie + CSRF do navegador).",
"endpoint": "GET /api/me/documentos"
},
{
"id": "my_procurements",
"name": "my_procurements",
"description": "Cole\u00e7\u00e3o privada da conta. Exige a sess\u00e3o da conta (cookie + CSRF do navegador).",
"endpoint": "GET /api/me/compras"
},
{
"id": "documento_vincular",
"name": "documento_vincular",
"description": "Vincula aquisi\u00e7\u00e3o \u00e0 conta da sess\u00e3o usando a autoriza\u00e7\u00e3o privada comprada. Exige sess\u00e3o e prova privada da aquisi\u00e7\u00e3o. Grava o direito global da conta pelo recibo do pagamento: idempotente para o mesmo dono, e outro dono n\u00e3o pode reivindicar. O c\u00f3digo continua abrindo o documento sozinho.",
"endpoint": "POST /api/documento/:id/vincular"
},
{
"id": "documento_acesso",
"name": "documento_acesso",
"description": "Estado do acesso e c\u00f3digo privado de recupera\u00e7\u00e3o, sem nova compra.",
"endpoint": "GET /api/documento/:id/acesso"
},
{
"id": "account_tracking",
"name": "account_tracking",
"description": "Confere que Salvas/Alertas/Vigias s\u00e3o da conta da sess\u00e3o. As listas de um convidado edm_\u2026 passam para a conta em `POST /api/auth/claim`; o POST desta rota responde 410 com o caminho.",
"endpoint": "GET /api/me/acompanhamento"
},
{
"id": "claim_guest_tracking",
"name": "claim_guest_tracking",
"description": "Traz para a conta da sess\u00e3o o que o convidado edm_\u2026 criou (o claim do SDK): as Salvas, Alertas e Vigias que a conta ainda n\u00e3o tem e as compras dele. Exige bootstrap/CSRF deste navegador; a p\u00e1gina faz isso logo depois de entrar. S\u00f3 passa o que o convidado ainda tem, numa transa\u00e7\u00e3o, e o que colide com o que a conta j\u00e1 tem fica com o convidado. O que o convidado comprou passa junto. Token antigo, sem assinatura, que n\u00e3o \u00e9 dono de nada aqui \u00e9 recusado. Repetir n\u00e3o faz mal (move zero).",
"endpoint": "POST /api/auth/claim"
}
],
"discovery": {
"openapi": "https://editalmd.com/openapi.json",
"llms": "https://editalmd.com/llms.txt",
"okf": "https://editalmd.com/okf/index.md",
"numbers": "https://editalmd.com/api/vitrine",
"partnerships": "https://editalmd.com/api/partners",
"api_catalog": "https://editalmd.com/.well-known/api-catalog",
"agent_access": "https://editalmd.com/.well-known/agent-access.json",
"x402": "https://editalmd.com/.well-known/x402",
"pricing": "https://editalmd.com/pricing",
"docs": "https://editalmd.com/docs"
},
"updated": "2026-10-25"
}