RT Passe API Documentação completa · Free Fire
⚡ Dashboard
Cola no Discord, ChatGPT, Notion…
PRODUÇÃO

API de Passe Free Fire

API REST para estoque real de contas e envio automático de Passe Booyah via reseller_key. Ideal para bots Telegram, painéis e automações.

Fluxo
Seu Bot  --reseller_key-->  RT Passe API  -->  contas com diamantes  -->  gift no ID do jogador

Base URL

https://rtpysystemsapipasses.squareweb.app

Nos exemplos: {BASE} = essa URL. Content-Type padrão dos endpoints de envio/estoque: application/x-www-form-urlencoded.

Autenticação

Todos os endpoints de revenda usam a reseller_key (chave da sua loja/bot).

  • Compre/renove a key no dashboard web (login com e-mail e senha).
  • Envie a key no body form ou query reseller_key=SUA_KEY.
  • Não compartilhe a key publicamente.
Esta documentação é da API de passe com estoque real de contas (não é a API de estoque alocado virtual).

Consultar estoque de passes

POST GET /api/contas/verificar

Parâmetros

CampoObrigatórioDescrição
reseller_keySimSua chave de revenda
statusNãocache (padrão, rápido) ou now (consulta diamantes ao vivo)

Request

POST {BASE}/api/contas/verificar
Content-Type: application/x-www-form-urlencoded

reseller_key=SUA_KEY

Resposta sucesso (200)

{
  "contas": [
    {
      "uid": "5172602433",
      "diamonds": 301,
      "passes": 1,
      "presentes_enviados_hoje": 0,
      "account_level": 24,
      "error": null
    }
  ],
  "estatisticas": {
    "total_contas": 9,
    "contas_com_erro": 0,
    "total_diamantes": 2709,
    "total_passes_disponiveis": 9,
    "tempo_processamento_segundos": 0.0
  }
}

Use estatisticas.total_passes_disponiveis no bot (cada passe consome ~250 diamantes de uma conta).

Enviar passe Booyah

POST /api/enviar/passe

Parâmetros

CampoObrigatórioDescrição
reseller_keySimSua key
clientIDSimID do jogador (Free Fire)
mensagemNãoTexto do gift (padrão interno se vazio)

Request

POST {BASE}/api/enviar/passe
Content-Type: application/x-www-form-urlencoded

reseller_key=SUA_KEY&clientID=123456789&mensagem=Obrigado!

Sucesso (200)

{
  "status": "PASSE_ENVIADO",
  "message": "Passe Booyah Enviado com Sucesso!",
  "ClientID": "123456789",
  "Nickname": "NickDoPlayer",
  "Conta_utilizada": "UID_DA_CONTA",
  "Diamantes_Antes": 301,
  "Diamantes_Depois": 51,
  "Mensagem_Do_Presente": "Obrigado!"
}

Só considere sucesso se status === "PASSE_ENVIADO". A API escolhe automaticamente uma conta com diamantes e tenta de novo se uma falhar.

Adicionar conta ao estoque

POST/api/adicionar_conta
POST {BASE}/api/adicionar_conta
Content-Type: application/x-www-form-urlencoded

reseller_key=SUA_KEY&uid=UID_GUEST&password=SENHA_GUEST

Sucesso: status: "CONTA_ADICIONADA"

Erros comuns: LEVEL_TOO_LOW, SALDO_INICIAL_INSUFICIENTE, CONTA_JA_EXISTE, RESELLER_NOT_FOUND, KEY_EXPIRED.

Remover conta

POST/api/remover_conta
POST {BASE}/api/remover_conta
Content-Type: application/x-www-form-urlencoded

reseller_key=SUA_KEY&uid=UID_GUEST

Sucesso: status: "CONTA_REMOVIDA"

Balance / estatísticas da key

POSTGET/api/balance/passes
POST {BASE}/api/balance/passes
reseller_key=SUA_KEY
{
  "status": "DADOS_OBTIDOS",
  "msg": "Informações abaixo",
  "userBalance": {
    "passesEnviados": 120,
    "contasUsadas": 40,
    "contasAdicionadasTotais": 50,
    "ValorEstimadoJaGanho": "R$ 432,00"
  }
}

Ninja (rotas extras)

MétodoRotaUso
GET/POST/api/contas/verificar/ninjaEstoque ninja
POST/api/enviar/ninjaEnviar ninja (ninja=branco|preto)
POST {BASE}/api/enviar/ninja
reseller_key=SUA_KEY&clientID=123456789&ninja=branco&mensagem=Aproveite!

Códigos de erro (completo)

Respostas de falha (estrutura típica):

{
  "status": "CODIGO",
  "message": "Descrição em português"
}
HTTPstatus / codeQuando
400missing parameters…Faltou reseller_key / clientID / uid
404RESELLER_NOT_FOUNDKey inválida / não existe
403KEY_EXPIREDKey vencida (ainda pode renovar no dashboard)
404SEM_CONTAS_DISPONIVEISSem contas no estoque
400SEM_CONTAS_COM_DIAMANTESContas sem diamantes / limite diário
400SELF_PASSETentou enviar passe para si mesmo
400LEVEL_INVÁLIDODestinatário com level baixo
400LEVEL_TOO_LOWConta guest com level insuficiente (add)
400SALDO_INICIAL_INSUFICIENTEGuest sem diamantes p/ passe
400CONTA_JA_EXISTEUID já no estoque da key
404CONTA_NAO_ENCONTRADAUID não está na key
200*SEM_CONTAS_DISPONIVEIS (verificar)Nenhuma conta para listar
404Rota Não EncontradaPath errado
405Método InválidoGET em rota que só aceita POST etc.
500SISTEMA_BUGADOErro interno do servidor

Exemplos

// Key inválida
{ "status": "RESELLER_NOT_FOUND", "message": "Revendedor nao encontrado!" }

// Sem estoque no envio
{
  "status": "SEM_CONTAS_DISPONIVEIS",
  "message": "Não há mais contas disponíveis no seu estoque para tentar o envio!"
}

// Key expirada
{
  "status": "KEY_EXPIRED",
  "message": "Key expirada! Voce tem … para renovar…",
  "pode_renovar": true,
  "contas_backup": 12
}

Regras importantes

  1. 1 passe ≈ 250 diamantes de uma conta guest do estoque.
  2. A API tenta outras contas automaticamente se uma falhar (JWT, gems, level).
  3. Contas com diamantes < 250 podem ser removidas na verificação.
  4. Key expirada: contas ficam em backup temporário — renove no dashboard.
  5. Timeout recomendado no cliente: 60s no envio, 20–30s no estoque cache.
  6. Não faça spam de envios; use fila no seu bot.

Exemplos de integração

Python (requests)

import requests

BASE = "https://rtpysystemsapipasses.squareweb.app"
KEY = "SUA_RESELLER_KEY"

def estoque():
    r = requests.post(
        f"{BASE}/api/contas/verificar",
        data={"reseller_key": KEY},
        timeout=30,
    )
    data = r.json()
    return data.get("estatisticas", {}).get("total_passes_disponiveis", 0)

def enviar_passe(client_id, mensagem="Obrigado!"):
    r = requests.post(
        f"{BASE}/api/enviar/passe",
        data={
            "reseller_key": KEY,
            "clientID": str(client_id),
            "mensagem": mensagem,
        },
        timeout=60,
    )
    data = r.json()
    if data.get("status") == "PASSE_ENVIADO":
        return {"ok": True, "nick": data.get("Nickname"), "raw": data}
    return {"ok": False, "status": data.get("status"), "message": data.get("message"), "raw": data}

Node.js (axios)

const axios = require("axios");
const qs = require("querystring");

const BASE = "https://rtpysystemsapipasses.squareweb.app";
const KEY = "SUA_RESELLER_KEY";

async function estoque() {
  const { data } = await axios.post(
    `${BASE}/api/contas/verificar`,
    qs.stringify({ reseller_key: KEY }),
    { headers: { "Content-Type": "application/x-www-form-urlencoded" }, timeout: 30000 }
  );
  return data.estatisticas?.total_passes_disponiveis ?? 0;
}

async function enviarPasse(clientID, mensagem = "Obrigado!") {
  const { data } = await axios.post(
    `${BASE}/api/enviar/passe`,
    qs.stringify({ reseller_key: KEY, clientID: String(clientID), mensagem }),
    { headers: { "Content-Type": "application/x-www-form-urlencoded" }, timeout: 60000 }
  );
  if (data.status === "PASSE_ENVIADO") return { ok: true, data };
  return { ok: false, code: data.status, message: data.message, data };
}

cURL

# Estoque
curl -X POST "https://rtpysystemsapipasses.squareweb.app/api/contas/verificar" \
  -d "reseller_key=SUA_KEY"

# Enviar
curl -X POST "https://rtpysystemsapipasses.squareweb.app/api/enviar/passe" \
  -d "reseller_key=SUA_KEY" \
  -d "clientID=123456789" \
  -d "mensagem=Booyah"

Integrar no bot

  1. Crie conta no site com e-mail + senha e compre/renove a key.
  2. No bot, configure a Base URL + reseller_key.
  3. Menu estoque → /api/contas/verificar → mostre total_passes_disponiveis.
  4. Envio → /api/enviar/passe → se PASSE_ENVIADO, desconte o cliente; senão mostre message.
  5. Trate KEY_EXPIRED e SEM_CONTAS_* com mensagem clara de recarga/estoque.
RotaUso principal
POST /api/contas/verificarEstoque de passes
POST /api/enviar/passeEnviar passe
POST /api/adicionar_contaAbastecer estoque
POST /api/remover_contaRemover guest
POST /api/balance/passesStats da key
✅ Documentação copiada!