// REST API

Documentação da REST API

Os endpoints para ferramentas usam GET e retornam JSON no formato { "status": "success", "data": … }. Autentique-se com o parâmetro ?api_key= da página API Docs depois de entrar na sua conta.

Endpoints

URL base: https://mailsmmo.com

GET/api/v1/services

Serviços — preço & estoque

Sem ?service= retorna a lista completa. Com ?service= retorna o preço e o estoque de um serviço. Não precisa de API key.

Sem autenticação

  • service (opcional) — Deixe vazio para a lista completa; um código retorna um serviço (códigos simples como facebook são aceitos)

Sucesso

{ "status": "success", "data": { "services": [
    { "code": "otp_gmail_facebook", "name": "Facebook", "price": 5000, "stock": 42 }
  ] } }

GET/api/v1/me

Informações da conta

ID, e-mail e saldo da API key que faz a chamada.

Requer API key

Sucesso

{ "status": "success", "data": { "id": "b7e5...-uuid", "email": "demo@mailsmmo.com", "balance": 1000000, "created_at": "2026-01-15T08:30:00Z" } }

GET/api/v1/orders

Criar pedido

Um endpoint para ambos: um código Gmail OTP (otp_gmail_*) emite uma caixa de e-mail OTP; um código de produto em estoque (hotmail_*…) compra por quantidade. O saldo é cobrado pelo preço listado.

Requer API key

  • service — Código do serviço OTP (otp_gmail_*) ou código do produto em estoque (ex.: hotmail_imap_12m_36m)
  • quantity (opcional) — Apenas para e-mails vendidos avulsos — quantidade (padrão 1)
  • unique_key (opcional) — UUID gerado por você — reenviar não cria nem cobra em dobro

Sucesso

{ "status": "success", "data": {
    "id": "b7e5a1c2-3d4e-4f60-8a91-2c3d4e5f6a7b", "email": "zurhansuzu@gmail.com",
    "service": "otp_gmail_facebook", "amount": 5000
  } }

GET/api/v1/orders/otp

Obter OTP pelo pedido

Lê o OTP de um pedido. Não precisa de API key — o código do pedido (order_id) é a chave de acesso.

Sem autenticação

  • order_id — Código do pedido (retornado ao criar o pedido)
  • unique_key (opcional) — Um novo UUID gerado por você a cada chamada
  • from (opcional) — Segundos Unix — otp/received_at são omitidos, a menos que exista um código mais recente

Sucesso

{ "status": "success", "data": {
    "otp": "481253", "amount": 5000, "received_at": 1732000000,
    "from": "security@facebookmail.com", "otp_history": [
      { "value": "481253", "received_at": 1732000000 }
    ] } }

GET/api/v1/otp/orders

Lista de pedidos OTP

Pedidos de Gmail OTP alugados, paginados, com o OTP mais recente de cada pedido.

Requer API key

  • page (opcional) — Página (padrão 1)
  • page_size (opcional) — Linhas por página (padrão 20, máx. 200)

Sucesso

{ "status": "success", "data": { "orders": [
    { "id": "b7e5a1c2-3d4e-4f60-8a91-2c3d4e5f6a7b", "email": "...", "service": "otp_gmail_facebook",
      "latest_otp": "481253", "latest_link": null }
  ], "page": 1, "page_size": 20, "total": 137 } }

GET/api/v1/mail

Ler todas as mensagens

Todas as mensagens de uma caixa de e-mail, com o OTP/link extraído.

Requer API key

  • order_id — Código do pedido

Sucesso

{ "status": "success", "data": { "count": 1, "messages": [
    { "id": 88, "from": "...", "subject": "...", "otp": "481253", "received_at": "..." }
  ] } }

códigos de erro comuns

{ "status": "error", "message": "out_of_stock", "retryable": true }
  • unauthorized — API key inválida ou ausente (HTTP 401)
  • invalid_request — Parâmetros da solicitação inválidos (HTTP 400)
  • not_found — Serviço, pedido ou endpoint não encontrado (HTTP 404)
  • insufficient_balance — Saldo insuficiente (HTTP 402)
  • out_of_stock — Sem estoque (HTTP 409) — Gmail OTP: retryable, tente novamente em alguns segundos; e-mail de venda definitiva: aguarde reposição
  • service_unavailable — O servidor não conseguiu concluir o pedido agora — tente novamente com o mesmo unique_key (HTTP 503, retryable)
  • in_progress — O pedido está sendo finalizado ou pode já existir no fornecedor — tente novamente com o mesmo unique_key (HTTP 409, retryable)
  • forbidden — Sem permissão para o recurso (HTTP 403)
  • idempotency_mismatch — O unique_key foi usado em outra solicitação — use um novo unique_key (HTTP 422)
  • order_cancelled — O pedido foi liberado antes da cobrança, nada foi cobrado — tente novamente (HTTP 409, retryable)
  • too_many_requests — Muitas solicitações — aguarde e tente novamente (HTTP 429, retryable)
  • auth_unavailable — Não foi possível verificar a API key agora, a chave está ok — tente novamente (HTTP 503, retryable)
  • shutting_down — O servidor está reiniciando — tente novamente em alguns segundos (HTTP 503, retryable)
  • payload_too_large — Corpo da solicitação grande demais (HTTP 413)
  • internal_server_error — Erro no servidor, tente novamente mais tarde (HTTP 500)

Documentação para IA e ferramentas

A documentação completa em Markdown está em https://mailsmmo.com/llms.txt — cole no Cursor, Claude ou ChatGPT para gerar o código de integração.

Repetições seguras com unique_key

Envie um unique_key (um UUID gerado por você) em cada pedido. Se a conexão cair, repita com o mesmo unique_key: você recebe o mesmo pedido de volta, sem criar um novo pedido nem cobrar duas vezes.

Formato de erro

Em caso de erro, a resposta contém apenas status, message (um código de erro em snake_case) e retryable, que indica se vale tentar de novo.

Comece a usar o MailSMMO

Cadastre-se grátis, recarregue sua carteira e alugue seu primeiro e-mail em poucos minutos.

Criar conta →