EditalMD · AsyncAPI Specification
Editalmd Webhooks
Version
View Spec
View on GitHub
GovTechPublic ProcurementBrazilPNCPLegal & ComplianceBusiness IntelligenceCompany DataCNPJCNAESICAFDocument ExtractionAgent-NativeMCPx402Machine-PayableProcurementAsyncAPIEvents
AsyncAPI Specification
name: EditalMD Webhooks
generated: '2026-09-05'
method: searched
source: https://editalmd.com/llms.txt
docs: https://editalmd.com/llms-full.txt
note: >-
No AsyncAPI is published; this captures the documented webhook surface. Alerts (new-tender matches) and
watchers (tender-change events) can deliver by pull, signed webhook or email; the webhook channel is chosen
per alert/watcher (canal: webhook, destino: the receiving URL).
signing:
scheme: standard-webhooks
secret_prefix: whsec_
headers:
- webhook-id
- webhook-timestamp
- 'webhook-signature: v1,<base64>'
algorithm: HMAC-SHA256 of "id.timestamp.rawBody" with the base64-decoded key after the whsec_ prefix
timestamp_tolerance: reject timestamps outside 5 minutes
rotation: >-
POST /api/dono/segredo rotates the secret; the previous one still signs for 24 hours, so the
webhook-signature header carries two v1, parts during the window
secret_readback: GET /api/dono returns webhook_segredo (the owner token itself is shown once and unrecoverable)
delivery:
dedup: the delivery id travels in the webhook-id header and in the body for deduplication
verify_by_pull: the body carries alerta_url / vigia_url so every push can be double-checked over the pull channel
events:
- source: alert
name: new-tender-match
description: a new PNCP tender matched the alert's terms/UF or CNPJ term family
pull_channel: GET /api/alertas/{id}/compras
- source: watcher
name: situacao
description: tender status changed (1 divulgada, 2 revogada, 3 anulada, 4 suspensa)
- source: watcher
name: prazo_adiado
description: proposal closing date postponed
- source: watcher
name: valor
description: estimated value changed
- source: watcher
name: documento_novo
description: new document attached to the tender (antes is null)
- source: watcher
name: documento_removido
description: document removed from the tender (depois is null)
- source: watcher
name: prazo_impugnacao
description: challenge (impugnacao) deadline notice
- source: watcher
name: prazo_proposta
description: proposal deadline notice
- source: watcher
pull_channel: GET /api/vigias/{id}/eventos
note: each event row carries id, tipo, antes, depois, visto_em, entregue_em (Evento schema in the OpenAPI)
cadence: the provider cron checks alerts and watchers every 30 minutes
Work with this as data
Every AsyncAPI spec here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for asyncapi
4 MCP tools reach this
find_asyncapisBrowse and filter every AsyncAPI spec in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/editalmd-webhooks"
All asyncapi
curl "https://apis.io/api/v1/asyncapis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.