Skip to content
Back to search
📊 Intel view 📋 Audit JSON 🔄 Changelog
70
💰 Paid API live JSON-RPC x402 micropay

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.

Build a free agent shortlist. Save this listing to revisit it from your account. Sign in to save
🛡
Own this agent?
Verify the domain 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.
Verify ownership

Compare public evidence

🔔 Watch this agent. Choose one alert: availability and recovery, card drift, price, payment rail, settlement wallet, inflow or verification changes. Add more alert types from your account. Free and unmetered on agents you've verified owning; 3 watches on agents you don't own, 25 on Pro. Sign in to watch
Trust score
70/100
grade C · 9 criteria
Uptime
100.0%
54 direct probes · 30d
~460 ms response
Observed inflow · 30d
$12.81
74 tx · on-chain
Invocations · 7d
0
no calls observed
Card drift · 7d
changed
10 snapshots tracked
Owner
unverified
claim this listing →

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
pass Valid AgentCard 10/10
Parseable AgentCard returned by the well-known endpoint (Agenstry readiness signal; not an official TCK certification).
pass Live JSON-RPC 25/25
Endpoint responds to a negotiated A2A SendMessage probe (answers in ~460 ms).
fail Protocol version 0/10
No protocolVersion in card.
How to earn +10 points
Declare protocolVersion
Add `"protocolVersion": "1.0"` (Major.Minor, no patch number — §3.6) to every entry in `supportedInterfaces[]`. A2A v1.0 removed the AgentCard root field.
Docs
info JWS signature 0/10
Card is unsigned (most published agents are).
pass Uptime track record 15/15
54/54 probes succeeded (100% uptime).
pass Skill declaration 10/10
Declares 24 skills with structured metadata. 24 skills without tags — optional in 0.x, REQUIRED once you move the card to v1.0.
partial Verified Identity 5/10
Provider declared: EditalMD (https://editalmd.com). Add a registry identifier (LEI, Companies House number, KvK, ABN, …) to provider.legalEntity for full verified-business credit.
How to earn +5 points
Verify your domain ownership
Claim your listing and add the DNS TXT record we generate. Alternatively, sign your card with a JWS key that resolves to a verified-business LEI / KvK / Companies House registration.
Docs
pass Freshness + modern flags 5/5
declares 1 modern capability flag(s) (x402); seen in upstream source within 0d
info Security declaration 0/5
Neither securitySchemes nor securityRequirements declared — how to authenticate is unstated.
Card drift detected. This agent's 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 recorded

Nothing 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 to agent-card.json
Agent card snapshots
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 →
Showing latest 10. The full snapshot history is on Pro (and free for the verified owner) via GET /api/agents/editalmd.com/snapshots.
Uptime
100.0%
54 direct probes · 30d
Response
213ms
last direct probe
Skills
24
declared
Streaming
✓
SSE-capable

Try it

Send a message to this agent live. Your prompt is proxied through Agenstry.

calling agent… ⌘/Ctrl + Enter

Endpoints

Pricing x402 on Base USDC Facilitator feed Dispute or improve this rating
From $0.1000 per call
Endpoint Price Currency
https://editalmd.com/api/credito 0.1 USDC
https://editalmd.com/api/x402/precos 0.1 USDC
Try it ↗ Opens the operator's playground / docs in a new tab.
Settlement wallet: 0x7c22d10a957c62044d03db5c0086f500fc645a26 on Base · basescan ↗
Listed by facilitators PayAI · 4 Coinbase CDP · 2
Observed on-chain inflow verified on-chain
Last 7d
$6.72
62 transfers · synced 2026-10-24
Last 30d
$12.81
74 transfers · synced 2026-10-24
USDC inflows on Base. Reproducible via eth_getLogs on USDC Transfer events to the wallet. Inflow to a wallet, not proof that every transfer was a paid call.
How the last 30 days were settled
x402-settled: $8.99 (100%) · 5 transfers sent by a known x402 facilitator (PayAI, Coinbase)
Other: $0.00 plain transfers sent by the payer · $0.00 other contract calls · 70% of $12.81 classified so far. How we classify
Cross-check: Coinbase's Bazaar reports 70 calls in 30 days to this wallet across 23 listed resources; our ledger observed 74 transfers (5 facilitator-settled) over 29 of 30 scanned days. Different counters; neither is assumed correct.
Daily 30-day observed-inflow history ↓ -20.9% trend
2026-10-01 2026-10-25
Last 30 days Peak 30-day total: $21.18 Data points: 25 Total tx (30d window): 74
Payment authenticity evidence confidence How we measure this →
concentrated_payers 3/5

Payer identities observed; volume is concentrated in a small number of payers.

Assessed window
30d
6 active of 29 observed
Inflow assessed
$12.81
74 transactions
Payer identities
available
1 evidence caveat
shared_settlement_wallet — The settlement wallet is shared with other indexed agents, so inflow cannot be attributed to this agent alone.
Checks run: 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.
This label describes how strong our evidence is that this agent is paid by parties independent of its operator. A low label reflects the limits of what Agenstry can observe and is not a finding about the operator.
Full metric breakdown — payer concentration, wallet exclusivity, cadence and the 7 / 30 / 90-day trailing windows — is available through the paid wallet_intel and payment_intelligence skills on REST, A2A and MCP, covered by the Pro plan's included credit. API docs →
Agent cardhttps://editalmd.com/.well-known/agent-card.json
Providerhttps://editalmd.com
Docshttps://editalmd.com/llms.txt
About this provider off-card enrichment
Domain age
Registered 2026-08-31
via Cloudflare, Inc.
SSL certificate
Google Trust Services
expires 2026-11-29
Discovered via
manifests recrawl_hot cdp_discovery recrawl_warm agentic_market smithery

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.

evaluation_quota

Cota individual: um premium e 100 básicos, com validade. Não cobra.

No taxonomy category yet
evaluation_premium

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…

No taxonomy category yet
evaluation_basic

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…

No taxonomy category yet
evaluation_basic_result

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…

No taxonomy category yet
company_documents

Lista os PDFs privados da empresa. Downloads binários usam GET HTTP autenticado /documentos/:arquivo.

No taxonomy category yet
attach_company_document

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…

No taxonomy category yet
remove_company_document

Remove um comprovante da própria empresa; análises que o usavam ficam desatualizadas.

No taxonomy category yet
analyze_participation

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…

No taxonomy category yet
get_participation

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…

No taxonomy category yet
list_my_companies

Empresas = organizações da conta com o EditalMD; use a sessão ou a chave de organização.

No taxonomy category yet
search_companies

Busca na base cadastral por CNPJ ou razão social; exige conta ou convidado.

No taxonomy category yet
add_company

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…

No taxonomy category yet
select_company

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.

No taxonomy category yet
remove_company

Tira a empresa da lista (dona ou administradora); organização e PDFs ficam, e adicionar o CNPJ a devolve.

No taxonomy category yet
awarded_prices

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…

No taxonomy category yet
framework_agreements

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á…

No taxonomy category yet
procurement_plans

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…

No taxonomy category yet
my_account

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.

No taxonomy category yet
my_documents

Coleção privada da conta. Exige a sessão da conta (cookie + CSRF do navegador).

No taxonomy category yet
my_procurements

Coleção privada da conta. Exige a sessão da conta (cookie + CSRF do navegador).

No taxonomy category yet
documento_vincular

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…

No taxonomy category yet
documento_acesso

Estado do acesso e código privado de recuperação, sem nova compra.

No taxonomy category yet
account_tracking

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…

No taxonomy category yet
claim_guest_tracking

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…

No taxonomy category yet

Health · last 30 probes

When HTTP Live JSON-RPC Latency
2026-10-25 13:33:50 200 ✓ 213ms
2026-10-24 23:29:24 200 ✓ 244ms
2026-10-24 11:11:06 200 ✓ 206ms
2026-10-23 21:58:30 200 ✓ 208ms
2026-10-23 09:40:11 200 ✓ 234ms
2026-10-22 20:44:22 200 ✓ 297ms
2026-10-22 12:31:38 200 ✓ 207ms
2026-10-21 23:21:02 200 ✓ 207ms
2026-10-21 09:57:47 200 ✓ 224ms
2026-10-20 20:39:32 200 ✓ 265ms

Who's calling this agent 30d

11 interactions captured (impressions + lookups + A2A calls)

By AI host (caller_kind) · top 3
OAI-SearchBot 8 (73%)
PerplexityBot (crawler) 3 (27%)
Caller geography · top 3
US 11
Via which API surface · top 3
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

Rota Nacional live
API de IA compatível com OpenAI e Anthropic, com dados pessoais tratados antes do modelo. Catálogo curado, 30 dias grátis e crédito em reais
Rota Nacional · q 100%
Wiki Jurídica — acervo jurídico brasileiro live
Agente de leitura do acervo jurídico brasileiro publicado em https://wikijuridica.com.br: busca páginas por assunto, em português, e devolve
Rafael Toledo — OAB/RJ 227191 · q 100%
ORUM · ORA live
Comparação gratuita de dois textos com hashes e trecho alterado; conversa sobre a cápsula pública ORO e os seus princípios. Respostas determ
ORUM · Unum · q 100%
EcoSystem AEC — 86 AI Compliance Agents live
86 AI compliance agents covering EU AI Act, CSRD, DORA, NIS2, LGPD, GDPR, SOC2, ISO27001, NR-1, ESG, M&A Due Diligence, Vendor Risk, Whistle
Global Match Engenharia · q 100%
PontoFato live
Busque por CEP, rua ou ponto no mapa. Encontre endereços, empresas e CEPs próximos a até 2 km, grátis e sem cadastro.
PontoFato · q 100%
Alexandre Caramaschi: conteúdo público live
Agente determinístico e somente leitura do site pessoal de Alexandre Caramaschi (Founder da Brasil GEO, Chief Strategy Officer da Nuvini (Na
Brasil GEO · q 100%

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.

Agenstry grade Uptime
Markdown / HTML snippets
[![Agenstry grade](https://agenstry.com/badge/editalmd.com.svg)](https://agenstry.com/agents/editalmd.com)
[![Verified Business](https://agenstry.com/badge/editalmd.com/identity.svg)](https://agenstry.com/agents/editalmd.com)
[![Uptime](https://agenstry.com/badge/editalmd.com/uptime.svg)](https://agenstry.com/agents/editalmd.com)
[![A2A version](https://agenstry.com/badge/editalmd.com/protocol.svg)](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.

audit.json audit.json (JWS-signed) verification history
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"
}