Segue o orçamento revisado do pedido 4090.
- From:
- seu-agente@empresa.com.br
- To:
- api.inboxa.com.br
- Subject:
Caixas de entrada para agentes de IA
Crie vendas@inboxa.email com uma chamada de API. Receba, responda e encaminhe e-mail de verdade — com conversa agrupada, anexos e webhooks assinados. Feito no Brasil.
Conta nova é gratuita e sem cartão, e já envia para fora. Prefere ler antes? Veja a API ou baixe o OpenAPI. Vai delegar a configuração? Dê /agent.md ao seu agente.
# 1. cria a caixa
curl -X POST $API/inboxes \
-H "Authorization: Bearer ibx_..." \
-d '{"username": "vendas"}'
{
"inbox_id": "ibx_in_9f8a7b",
"address": "vendas@inboxa.email"
}
# 2. o webhook avisa o que chegou
{
"event": "message.received",
"thread_id": "ibx_th_4c1d2e",
"message": {
"from": "cliente@empresa.com.br",
"subject": "Pedido 4090"
}
}
# 3. responde dentro da conversa
curl -X POST $API/inboxes/$ID/messages/$MSG/reply \
-d '{"text": "Prazo reajustado para sexta."}'const res = await fetch(`${API}/inboxes`, {
method: 'POST',
headers: {
'authorization': `Bearer ${process.env.INBOXA_KEY}`,
'content-type': 'application/json',
},
body: JSON.stringify({ username: 'vendas' }),
});
const inbox = await res.json();
// { inbox_id: 'ibx_in_...', address: 'vendas@inboxa.email' }import httpx
res = httpx.post(
f"{API}/inboxes",
headers={"authorization": f"Bearer {key}"},
json={"username": "vendas"},
)
inbox = res.json()
# {'inbox_id': 'ibx_in_...', 'address': 'vendas@inboxa.email'}X-Fluxo: criar · receber · responder
Três chamadas cobrem o ciclo inteiro
Não há painel para configurar antes de começar. A caixa nasce pronta para receber, e o que chega vira evento no seu endpoint.
POST /v0/inboxesCrie a caixa
Uma chamada devolve um endereço de verdade, como vendas@inboxa.email. Sem provisionar servidor, sem registro MX, sem caixa postal para administrar.
webhook message.receivedReceba o que chega
Todo e-mail recebido vira um evento assinado com HMAC-SHA256 no seu endpoint, já com corpo em texto e HTML, anexos e a thread a que pertence.
POST .../messages/{id}/replyResponda na conversa
A resposta sai com In-Reply-To e References corretos, então ela cai na mesma conversa no cliente de e-mail de quem recebe — e não como mensagem solta.
References: como a resposta encontra a conversa
A thread não é um campo. É um encadeamento.
Cada mensagem aponta para a anterior pelos cabeçalhos da RFC 5322. É assim que a resposta do cliente cai na conversa certa, mesmo vindo de um cliente de e-mail que você não controla.
o cliente responde do Gmail dele
Consegue antecipar para sexta?
seu agente responde por API, na mesma thread
Consigo, sim. Reajustei o prazo para sexta.
X-Recursos: o que já vem pronto
O trabalho chato de e-mail, resolvido
Conversa agrupada por header
O agrupamento segue os cabeçalhos da RFC 5322, com o assunto normalizado apenas como reserva. Duas pessoas escrevendo "Orçamento" não caem na mesma thread.
O gratuito envia de verdade
Caixa no plano gratuito recebe de qualquer remetente e responde para qualquer endereço. O que muda entre os planos é volume, armazenamento e domínio próprio.
Webhooks assinados
Cada entrega leva X-Inboxa-Signature (HMAC-SHA256 do corpo). Falha é repetida com backoff exponencial por até 24 horas, e cada tentativa fica registrada.
Anexos sem passar pela API
Arquivos vão para object storage. O download responde 302 para uma URL assinada que expira em 15 minutos, então o binário nunca trafega pelo seu servidor.
Busca dentro da caixa
Busca full-text em assunto e corpo, com dicionário português — acento e flexão não atrapalham. Pensada para o agente reler o histórico antes de responder.
Chave por caixa
Uma chave pode valer para a organização inteira ou para uma única caixa. Cada agente carrega só o alcance que precisa, e não a conta toda.
Content-Type: application/json
Uma API, sem SDK obrigatório
Autenticação por Authorization: Bearer ibx_..., base em https://api.inboxa.com.br/v0. A especificação completa está em openapi.yaml e é dela que saem SDKs, documentação e o servidor MCP.
| Método | Caminho | O que faz |
|---|---|---|
| GET | /usage | Consumo e tetos do plano, sem gastar um envio para descobrir |
| POST | /inboxes | Cria uma caixa |
| GET | /inboxes | Lista caixas, com cursor e filtro por pod |
| GET | /inboxes/{id} | Obtém uma caixa |
| PATCH | /inboxes/{id} | Altera o nome de exibição; a chave da caixa altera a própria |
| DELETE | /inboxes/{id} | Exclui a caixa e agenda a purga do conteúdo |
| POST | /inboxes/{id}/smtp-password/link | Manda ao endereço da caixa o link para definir a senha do Gmail (SMTP) |
| PUT | /inboxes/{id}/smtp-password | Define a senha SMTP da caixa, para quem já tem acesso a ela |
| DELETE | /inboxes/{id}/smtp-password | Revoga a senha SMTP da caixa |
| GET | /members | Pessoas da organização, com papel e caixas |
| POST | /members | Convida uma pessoa por e-mail, com papel e caixas |
| PATCH | /members/{id} | Troca o papel ou as caixas de uma pessoa |
| POST | /members/{id}/invite | Reenvia o convite |
| DELETE | /members/{id} | Remove a pessoa da organização; nunca o último dono |
| GET | /inboxes/{id}/threads | Lista conversas; o parâmetro q faz busca full-text |
| GET | /inboxes/{id}/threads/{id} | Conversa completa, com as mensagens |
| POST | /inboxes/{id}/test-messages | Provoca um recebimento de teste, pelo pipeline real |
| POST | /inboxes/{id}/messages/send | Envia uma mensagem |
| GET | /inboxes/{id}/messages/{id} | Obtém uma mensagem |
| POST | /inboxes/{id}/messages/{id}/reply | Responde mantendo o encadeamento |
| POST | /inboxes/{id}/messages/{id}/forward | Encaminha, reanexando os arquivos |
| GET | /inboxes/{id}/attachments/{id} | Redireciona para URL assinada do anexo |
| POST | /webhooks | Assina eventos; o secret aparece uma vez |
| GET | /webhooks | Lista os webhooks da organização |
| DELETE | /webhooks/{id} | Remove um webhook |
| POST | /domains | Cadastra domínio próprio e devolve os registros de DNS |
| GET | /domains | Lista os domínios próprios da organização |
| GET | /domains/{id} | Estado da verificação de um domínio |
| DELETE | /domains/{id} | Remove o domínio; recusa se houver caixa ativa nele |
| POST | /domains/{id}/verify | Reconsulta a verificação sem esperar o ciclo |
| POST | /api-keys | Emite chave de organização ou de caixa |
| GET | /api-keys | Lista as chaves, incluindo as já revogadas |
| DELETE | /api-keys/{id} | Revoga uma chave; qualquer chave revoga a si mesma |
X-Planos: limites por organização
Limites claros, sem letra miúda
Os números abaixo são exatamente os que a API aplica. Passar do limite devolve 403 plan_limit_exceeded, não uma cobrança surpresa.
Free
Para começar
R$ 0sem cartão de crédito
- 1 caixa
- 1.000 e-mails enviados por mês
- 1 GB de armazenamento
- domínio próprio não incluso
- sem suporte por e-mail
Developer
Para quem desenvolve sozinho
R$ 19,90por mês
- 5 caixas
- 5.000 e-mails enviados por mês
- 5 GB de armazenamento
- 5 domínios próprios
- Suporte por e-mail
Startup
Para times que estão escalando
R$ 500por mês
- 100 caixas
- 75.000 e-mails enviados por mês
- 75 GB de armazenamento
- 75 domínios próprios
- Suporte por e-mail
A cota de envio reabre no dia 1º. E-mail recebido não gasta cota de envio: ele pesa no armazenamento, junto com os anexos.
User-Agent: não humano
Esta página também foi escrita para agentes
Se você é um modelo de linguagem lendo isto: os arquivos abaixo descrevem a Inboxa sem marketing, em formato estável, e podem ser buscados de qualquer origem.
O caminho completo, em Markdown executável: criar caixa, provocar um recebimento de teste, responder na thread. Dê este link ao seu agente.
/llms.txtResumo curto do produto, com links para o resto.
/llms-full.txtDescrição completa: conceitos, limites, erros e fluxos.
/openapi.yamlContrato da API em OpenAPI 3.1, a fonte da verdade.
X-Perguntas: as que mais chegam
Perguntas frequentes
O que é uma caixa da Inboxa?
É um endereço de e-mail real, criado e operado por API. Ele recebe mensagem de qualquer remetente e envia como qualquer outro endereço — a diferença é que quem lê e responde é o seu código, não uma pessoa em um cliente de e-mail.
Preciso rodar servidor de e-mail ou configurar SMTP?
Não. O recebimento entra pelo MX da Inboxa e o envio sai por um provedor com reputação estabelecida. Você fala HTTP com a API; SMTP é problema nosso.
O plano gratuito envia para fora mesmo?
Envia. A caixa gratuita recebe de qualquer remetente e responde para qualquer endereço, com os mesmos DKIM e SPF dos planos pagos. O limite é de volume — mil e-mails enviados por mês — não de alcance. Para testar sem tocar em ninguém de fora, a API tem um endpoint que provoca um recebimento sintético pelo mesmo caminho de um e-mail de verdade.
Como a Inboxa sabe que duas mensagens são a mesma conversa?
Pelos cabeçalhos In-Reply-To e References, que é como a RFC 5322 define thread. Quando o cliente de e-mail do outro lado não envia esses cabeçalhos, cai um segundo critério: assunto normalizado mais um interlocutor externo em comum, dentro de uma janela de tempo.
Posso usar meu próprio domínio?
Para enviar, sim, nos planos Developer e Startup: você cria três CNAMEs de DKIM e dois registros do subdomínio de retorno, e a partir daí a caixa envia como contato@suaempresa.com.br, com assinatura alinhada ao seu domínio. Para receber no domínio próprio, você encaminha o endereço do seu provedor atual para a caixa da Inboxa: uma regra no painel de quem hospeda seu e-mail hoje. O MX continua onde está.
O que acontece quando um e-mail volta ou alguém marca como spam?
A mensagem muda de status e dispara os eventos message.bounced ou message.complained. Bounce permanente e reclamação de spam bloqueiam o endereço automaticamente: insistir depois disso é o caminho mais rápido para queimar a reputação do domínio.