{"audit":{"version":"1.5","generated_at":"2026-09-11T13:29:36.887119+00:00","generated_by":"Agenstry","report_url":"https://agenstry.com/agents/editalmd.com","methodology_url":"https://agenstry.com/methodology","verifier_jwks_url":"https://agenstry.com/.well-known/jwks.json","subject":{"domain":"editalmd.com","name":"EditalMD","url":"https://editalmd.com/.well-known/agent-card.json"}},"identity":{"provider":{"organization":"EditalMD","url":"https://editalmd.com"},"registry_verification":null,"signature":{"signed":false,"signature_valid":null}},"protocol":{"version":null,"supports_streaming":true,"supports_push_notifications":false},"operational":{"live_state":"wrong_response","live_responds":false,"last_status_code":200,"last_elapsed_ms":30,"last_error":null},"track_record":{"first_seen":"2026-09-11T04:07:07.326430+00:00","last_checked":"2026-09-11T04:07:07.326430+00:00","last_seen_ok":"2026-09-11T04:07:07.326430+00:00","checks_total":1,"checks_ok":1,"uptime_pct":100.0,"uptime_window_days":30,"uptime_probes":1,"archived":false,"archived_reason":null},"conformance":{"score":35,"grade":"F","summary":"F-grade: card is reachable but fails most operational signals.","criteria":[{"key":"valid_card","label":"Valid AgentCard","points":10,"max_points":10,"status":"pass","detail":"Parseable AgentCard returned by the well-known endpoint (Agenstry readiness signal; not an official TCK certification)."},{"key":"live_responds","label":"Live JSON-RPC","points":5,"max_points":25,"status":"fail","detail":"Endpoint replies but body isn't a valid JSON-RPC 2.0 A2A response."},{"key":"protocol_version","label":"Protocol version","points":0,"max_points":10,"status":"fail","detail":"No protocolVersion in card."},{"key":"signature","label":"JWS signature","points":0,"max_points":10,"status":"info","detail":"Card is unsigned (most published agents are)."},{"key":"uptime","label":"Uptime track record","points":0,"max_points":15,"status":"info","detail":"Only 1 probe so far, need ≥5 for an uptime grade."},{"key":"skills","label":"Skill declaration","points":10,"max_points":10,"status":"pass","detail":"Declares 24 skills with structured metadata."},{"key":"verified_identity","label":"Verified Identity","points":5,"max_points":10,"status":"partial","detail":"Provider declared: EditalMD (https://editalmd.com). Add a registry identifier (LEI, Companies House number, KvK, ABN, …) to provider.legalEntity for full verified-business credit."},{"key":"freshness","label":"Freshness + modern flags","points":5,"max_points":5,"status":"pass","detail":"declares 1 modern capability flag(s) (x402); seen in upstream source within 0d"},{"key":"security","label":"Security declaration","points":0,"max_points":5,"status":"info","detail":"Neither securitySchemes nor securityRequirements declared — how to authenticate is unstated."}]},"card_read":{"findings":[],"clean":true,"source_url":"https://editalmd.com/.well-known/agent-card.json"},"skills":[{"id":"gerar_markdown","name":"gerar_markdown","description":"Solicita geração por US$ 0,02/página (x402 ou crédito). Obtenha cotacao por estado_geracao, confira páginas/total e envie com o pagamento. Depois acompanhe por GET; não repita POST como polling.","tags":[],"examples":[],"inputModes":[],"outputModes":[],"endpoint":"POST /api/documento/:id/geracao"},{"id":"estado_geracao","name":"estado_geracao","description":"Acompanha as fases reais e a conclusão gratuitamente, sem iniciar processamento.","tags":[],"examples":[],"inputModes":[],"outputModes":[],"endpoint":"GET /api/documento/:id/geracao"},{"id":"criar_cobranca","name":"criar_cobranca","description":"Reserva endereço USDC/Base para pagar US$ 0,02/página sem carteira no navegador. Confira cotacao antes, conserve cobranca_token. Não gera antes da confirmação real.","tags":[],"examples":[],"inputModes":[],"outputModes":[],"endpoint":"POST /api/documento/:id/cobranca"},{"id":"estado_cobranca","name":"estado_cobranca","description":"Consulta pagamento e liberação com o mesmo cobranca_token. Gratuito; intervalo mínimo 30 s; não inicia trabalho.","tags":[],"examples":[],"inputModes":[],"outputModes":[],"endpoint":"GET /api/documento/:id/cobranca"},{"id":"exemplos","name":"exemplos","description":"Lista cinco provas reais gratuitas para conferir Markdown, PDF original e ZIP com imagens antes de gerar outro documento.","tags":[],"examples":[],"inputModes":[],"outputModes":[],"endpoint":"GET /api/exemplos"},{"id":"documento_arquivos","name":"documento_arquivos","description":"Catálogo dos arquivos originais do documento, com links de download e páginas. Recursos preparados pelo Licitação; use /api/documento/{id}/original para baixar o original completo.","tags":[],"examples":[],"inputModes":[],"outputModes":[],"endpoint":"GET /api/documento/:id/partes"},{"id":"api_index","name":"api_index","description":"Índice da API do EditalMD: rotas, regime de cobrança e preço.","tags":[],"examples":[],"inputModes":[],"outputModes":[],"endpoint":"GET /api/"},{"id":"health","name":"health","description":"Saúde da origem e tamanho do acervo (compras e documentos com texto).","tags":[],"examples":[],"inputModes":[],"outputModes":[],"endpoint":"GET /api/health"},{"id":"buscar_licitacao","name":"buscar_licitacao","description":"Busca compras públicas do PNCP por termo. Grátis. Devolve objeto, órgão, UF, modalidade e o id da compra.","tags":[],"examples":[],"inputModes":[],"outputModes":[],"endpoint":"GET /api/busca"},{"id":"prazos","name":"prazos","description":"Prazos da compra: fim das propostas (do PNCP) e último dia de impugnação (estimado: 3 dias úteis antes da sessão, Lei 14.133 art. 164, feriados nacionais). Grátis.","tags":[],"examples":[],"inputModes":[],"outputModes":[],"endpoint":"GET /api/compra/:id"},{"id":"compra","name":"compra","description":"Ficha da compra e a lista de documentos com texto extraído, com o preço de cada um. Grátis.","tags":[],"examples":[],"inputModes":[],"outputModes":[],"endpoint":"GET /api/compra/:id"},{"id":"edital_markdown","name":"edital_markdown","description":"Lê o Markdown pronto gratuitamente, com procedência, hash e imagens. Nunca gera: se necessário, use gerar_markdown e acompanhe por estado_geracao. O manifesto de leitura informa a versão do ZIP.","tags":[],"examples":[],"inputModes":[],"outputModes":[],"endpoint":"GET /api/documento/:id/markdown"},{"id":"habilitacao","name":"habilitacao","description":"Lista de habilitação do edital (jurídica, fiscal/social/trabalhista, econômico-financeira, técnica), cada item com o trecho literal do texto. Gratuita nesta fase para qualquer data; reutiliza o mesmo texto.","tags":[],"examples":[],"inputModes":[],"outputModes":[],"endpoint":"POST /api/documento/:id/habilitacao"},{"id":"documento_leitura","name":"documento_leitura","description":"Manifesto pronto do documento: páginas, imagens, SHA-256 e versão. Gratuito, sem iniciar OCR. Baixe /api/documento/{id}/pacote?v={text_sha256} para obter o ZIP MD+imagens.","tags":[],"examples":[],"inputModes":[],"outputModes":[],"endpoint":"GET /api/documento/:id/leitura"},{"id":"criar_dono","name":"criar_dono","description":"Cria o token de dono (edm_…) que abre alertas e vigias, e o segredo whsec_… que assina os webhooks. Sem cadastro; o token é mostrado uma única vez — guarde e mande em Authorization: Bearer nas tools de alerta e vigia.","tags":[],"examples":[],"inputModes":[],"outputModes":[],"endpoint":"POST /api/dono"},{"id":"dono","name":"dono","description":"Estado do dono (precisa do token edm_…): e-mail confirmado, franquia e o segredo whsec_… que assina cada webhook (Standard Webhooks: webhook-id, webhook-timestamp, webhook-signature).","tags":[],"examples":[],"inputModes":[],"outputModes":[],"endpoint":"GET /api/dono"},{"id":"rotacionar_segredo_webhook","name":"rotacionar_segredo_webhook","description":"Troca o segredo que assina os webhooks (precisa do token edm_…). O anterior ainda assina por 24 h, para trocar sem janela de falha.","tags":[],"examples":[],"inputModes":[],"outputModes":[],"endpoint":"POST /api/dono/segredo"},{"id":"criar_alerta","name":"criar_alerta","description":"Alerta de compra nova por termos do objeto e UF (precisa do token edm_…). Canal pull (ler por alertas_compras), webhook (POST https assinado com o whsec_… do dono) ou email. O primeiro é grátis; os seguintes custam por 30 dias (x402 ou crédito).","tags":[],"examples":[],"inputModes":[],"outputModes":[],"endpoint":"POST /api/alertas"},{"id":"alerta_por_cnpj","name":"alerta_por_cnpj","description":"Alertas de compra nova pelo CNPJ da empresa (precisa do token edm_…): as atividades (CNAE) viram famílias de termos e sai um alerta por família, principal primeiro, até max_familias. O que passa da franquia é cobrado numa vez só (x402 ou crédito). CNAE fora do dicionário vem listado na resposta com familia nula.","tags":[],"examples":[],"inputModes":[],"outputModes":[],"endpoint":"POST /api/alertas"},{"id":"cnaes","name":"cnaes","description":"A lista de CNAE como o alerta por CNPJ a lê: descrição oficial (IBGE), família e termos do dicionário e fornecedores ativos no SICAF. Sem q, o ranking de quem mais vende para o governo. Grátis.","tags":[],"examples":[],"inputModes":[],"outputModes":[],"endpoint":"GET /api/cnaes"},{"id":"alertas_compras","name":"alertas_compras","description":"Compras que já casaram com um alerta (canal pull), com prazos e status de entrega. Precisa do token edm_….","tags":[],"examples":[],"inputModes":[],"outputModes":[],"endpoint":"GET /api/alertas/:id/compras"},{"id":"vigiar_compra","name":"vigiar_compra","description":"Vigia uma compra (precisa do token edm_…): fotografa agora e registra eventos de retificação, documento novo, suspensão, prazo adiado e valor, mais avisos de prazo. A primeira é grátis; as seguintes custam até 30 dias após o encerramento.","tags":[],"examples":[],"inputModes":[],"outputModes":[],"endpoint":"POST /api/vigias"},{"id":"vigia_eventos","name":"vigia_eventos","description":"Eventos de uma compra vigiada (o que mudou, de quê para quê, quando) e a fotografia atual. Precisa do token edm_….","tags":[],"examples":[],"inputModes":[],"outputModes":[],"endpoint":"GET /api/vigias/:id/eventos"},{"id":"credito_saldo","name":"credito_saldo","description":"Saldo e extrato do crédito pré-pago (precisa do token `cred_…`).","tags":[],"examples":[],"inputModes":[],"outputModes":[],"endpoint":"GET /api/credito"}],"provenance":[{"source":"manifests","first_seen":"2026-09-11T04:07:07.326430+00:00"}],"recent_probes":[{"fetched_at":"2026-09-11T04:07:07.326430+00:00","ok":true,"status_code":200,"error":null,"elapsed_ms":30,"live_responds":false}],"catalog_attestation":null,"operator_revenue_evidence":{"evidence_class":"operator_submitted","authenticity":{"rung":"no_operator_evidence","rank":0,"why":"No verifiable operator evidence has been submitted for this agent.","thresholds":{"min_independent_payers":3,"min_verified_usd":25.0},"engine_table":"agent_authenticity","merge_rule":"max(existing_rank, rank)"},"metric_metadata":{"provenance":"operator_submitted_evidence","confidence":"attested","coverage":{"numerator":0},"as_of":"2026-09-11T13:29:36.899450+00:00","definition":"Revenue proofs submitted by the verified owner and re-checked by Agenstry against the settlement chain or the operator's own Stripe account. Only independently confirmed proofs are counted."},"counts":{"retained":0,"verified":0,"unverifiable":0},"verified":{"gross_usd":0.0,"transactions":0,"independent_payers":0},"detail_url":"https://agenstry.com/api/agents/editalmd.com/evidence","dispute_url":"https://agenstry.com/agents/editalmd.com/dispute"},"verification_history":[]}