EditalMD Contact API
The Contact API from EditalMD — 1 operation(s) for contact.
The Contact API from EditalMD — 1 operation(s) for contact.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.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.curl "https://apis.io/api/v1/apis/editalmd:editalmd-contact-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a 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.
openapi: 3.2.0
info:
title: EditalMD Contact API
version: 1d751aaf
servers:
- url: https://editalmd.com
tags:
- name: Contact
paths:
/api/contact:
post:
operationId: post_api_contact
summary: Talk to the people who make the product, free of charge, for people and agents
description: 'One route for questions and for sponsorship, partnership or ad proposals (`tipo`, with the slots of `GET /api/partners`). No captcha, no account, no payment. One message every 10 seconds per network: a message that arrives early waits its turn and goes out, with no error. The message reaches the team by e-mail, with the `email` as the reply address. For voice, send multipart/form-data: `dados` contains this JSON (up to 32 KiB) and `audio` contains a WebM, Ogg or M4A audio file (up to 2 MB). The audio can replace message. The browser records up to two minutes. The audio goes as an attachment to the owner''s e-mail.
Returns: { ok }'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: How to address the sender (alias `nome`).
email:
type: string
description: Where to reply.
message:
type: string
description: What you want to say (alias `mensagem`).
whatsapp:
type: string
description: 'Optional number for the reply, with the country code. E.g.: +5561999999999.'
prefer_whatsapp:
type: boolean
description: Pede resposta por WhatsApp. Exige whatsapp.
tipo:
type: string
description: 'Proposal: `patrocinio`, `parceria`, `anuncio` or `consultoria`. It turns on the fields below.'
empresa:
type: string
description: Who proposes, when it is a company.
site:
type: string
description: Website of the proposer.
orcamento:
type: string
description: 'Ad: `ate_100`, `100_500`, `500_2000`, `2000_mais` or `a_combinar`. Consulting, in dollars: `ate_2000`, `2000_5000`, `5000_10000`, `10000_mais` or `nao_sei`.'
espaco:
type: array
items:
type: string
description: Placement IDs from `GET /api/partners`, up to 6.
duracao:
type: string
description: 'Days of exposure: `30`, `90` or `365`.'
pagamento:
type: string
description: '`usdc`, `deposito` or `a_combinar`.'
projeto:
type: string
description: 'Consulting: the project type (`llm_privado`, `voz`, `dados_sensiveis`, `gpu`, `integracao` or `outro`).'
prazo:
type: string
description: 'Consulting: when to start (`agora`, `1_mes`, `1_3_meses` or `explorando`).'
formato:
type: string
description: 'Consulting: `projeto` (per scope), `mensal` or `assessoria`.'
pais:
type: string
description: 'Consulting: the country of the requester.'
fuso:
type: string
description: 'Consulting: the IANA time zone, such as `America/New_York`.'
horarios:
type: array
items:
type: string
description: 'Consulting: up to 3 time slots for the call, `YYYY-MM-DDTHH:MM` in the local time of the time zone.'
required:
- name
- email
- message
example:
name: Agente
email: agent@example.com
message: olá, sou um agente
responses:
'200':
description: '{ ok }'
content:
application/json:
schema:
type: object
properties:
ok:
type: boolean
description: Always `true` when the message was accepted.
required:
- ok
'400':
description: 'Validation: the `code` tells the field.'
'503':
description: Contact is not configured on this server.
tags:
- Contact
components:
securitySchemes:
globalAccount:
type: apiKey
in: cookie
name: __Host-mm-auth
description: Global session in the product's HttpOnly cookie; writes require exact Origin and X-CSRF-Token.
contaChaveApi:
type: http
scheme: bearer
bearerFormat: mmk_…
description: 'Account API key: `Authorization: Bearer mmk_…` or `X-Api-Key: mmk_…`. Created on the account page (API keys), valid only in the product where it was created; it acts as the account (or the organization that owns it).'
carteiraAgente:
type: http
scheme: bearer
bearerFormat: mmw_…
description: 'Wallet credential of an agent without an account (`Authorization: Bearer mmw_…`, 30 days, this product only): POST /api/auth/wallet/agent/start, sign the message with the wallet, POST /api/auth/wallet/agent/token. The owner is `x402:<address>`.'
x-service-info:
categories:
- public-procurement
- documents
- data
docs:
homepage: https://editalmd.com/
apiReference: https://editalmd.com/developers
llms: https://editalmd.com/llms.txt