Pular para o conteúdo

Introdução à API

A API do SpacePost é uma API REST em JSON compatível com a API do Resend. A lista completa de endpoints está na referência da API, gerada a partir da especificação OpenAPI.

https://api.spacepost.dev

Os caminhos ficam na raiz (/emails, /domains, …). Um prefixo /v1 também é aceito: https://api.spacepost.dev/v1/emails é o mesmo endpoint. Use o que o seu cliente preferir.

Envie sua chave de API como bearer token em cada requisição:

Janela do terminal
curl https://api.spacepost.dev/emails -H "Authorization: Bearer sp_live_YOUR_API_KEY"

As chaves começam com sp_live_. As chaves full_access podem usar todos os endpoints; as chaves sending_access só podem enviar e-mails, opcionalmente de um único domínio. Veja Segurança e chaves de API.

Problema Resposta
Sem o cabeçalho Authorization 401 missing_api_key
Chave desconhecida, revogada ou malformada (inclusive chaves re_ do Resend) 403 invalid_api_key
Chave sending_access em um endpoint que não é de envio 401 restricted_api_key
  • Envie JSON com Content-Type: application/json. Um JSON inválido retorna 422 validation_error.
  • Os campos usam snake_case (reply_to, scheduled_at). Por conveniência, replyTo e scheduledAt também são aceitos no envio.
  • Os IDs são strings UUIDv7; eles se ordenam por data de criação, que é como a paginação funciona.
  • Os timestamps seguem a ISO 8601 em UTC (2026-10-23T14:02:09.512Z).
  • Campos desconhecidos em uma requisição são ignorados.

As respostas bem-sucedidas são JSON com status 200. Os recursos trazem um campo object que indica o tipo ("email", "domain", …). As listas têm o formato { "object": "list", "has_more": false, "data": [] }.

Os erros sempre têm o mesmo formato:

{ "statusCode": 422, "name": "validation_error", "message": "`to`: Invalid email address" }

Veja Erros para conhecer cada name.

POST /emails e POST /emails/batch aceitam um cabeçalho Idempotency-Key (de 1 a 256 caracteres, lembrado por 24 horas): a mesma chave com o mesmo corpo retorna a primeira resposta em vez de enviar de novo. Veja Chaves de idempotência.

Por equipe: 10 requisições por segundo (25 no Scale), informadas nos cabeçalhos ratelimit-*. Veja Limites de taxa.

A API segue os formatos atuais do Resend e não usa versões com data. Fazemos apenas alterações compatíveis com versões anteriores nos endpoints existentes (novos campos opcionais, novos campos nas respostas, novos tipos de evento e nomes de erro); por isso, escreva clientes que ignorem campos desconhecidos e tratem nomes de erro desconhecidos. Qualquer mudança incompatível seria publicada sob um novo prefixo de caminho, com aviso prévio no changelog.

A API envia cabeçalhos CORS permissivos para que exploradores de API possam chamá-la, mas nunca a chame de um navegador com uma chave real. As chaves pertencem aos servidores.