🧪 Exemplo prático: consultando economia
Este guia mostra o fluxo completo — do zero até exibir o saldo de Rubis de um usuário num script simples.
1. Gere uma Crystal Key
Se ainda não tem uma, vá em /keys, faça login com o Discord e clique em Nova Key. Guarde o valor gerado.
2. Faça a primeira chamada
curl https://api.crystalbot.xyz/v1/economy/123456789012345678 \
-H "Authorization: Bearer cryst_sua_chave_aqui"
Troque 123456789012345678 pelo ID de um usuário real do Discord (clique
direito no perfil → Copiar ID, com o modo desenvolvedor ativado).
3. Script completo (Node.js)
const CRYSTAL_KEY = process.env.CRYSTAL_KEY;
const USER_ID = "123456789012345678";
async function getWallet(userId) {
const res = await fetch(`https://api.crystalbot.xyz/v1/economy/${userId}`, {
headers: { Authorization: `Bearer ${CRYSTAL_KEY}` },
});
if (!res.ok) {
const err = await res.json();
throw new Error(err.error || `HTTP ${res.status}`);
}
return res.json();
}
getWallet(USER_ID).then((data) => {
console.log(`Saldo: ${data.wallet.toLocaleString("pt-BR")} 💎`);
console.log(`Streak atual: ${data.streak} dias`);
});
4. Script completo (Python)
import os
import requests
CRYSTAL_KEY = os.environ["CRYSTAL_KEY"]
USER_ID = 123456789012345678
def get_wallet(user_id: int) -> dict:
r = requests.get(
f"https://api.crystalbot.xyz/v1/economy/{user_id}",
headers={"Authorization": f"Bearer {CRYSTAL_KEY}"},
)
r.raise_for_status()
return r.json()
data = get_wallet(USER_ID)
print(f"Saldo: {data['wallet']:,} 💎")
print(f"Streak atual: {data['streak']} dias")
5. Combinando com outro endpoint
Um caso comum: mostrar o nível de XP e o saldo de Rubis juntos, num painel próprio. Basta combinar dois requests:
const [economy, xp] = await Promise.all([
fetch(`https://api.crystalbot.xyz/v1/economy/${userId}`, { headers }).then(r => r.json()),
fetch(`https://api.crystalbot.xyz/v1/xp/${guildId}/${userId}`, { headers }).then(r => r.json()),
]);
console.log(`${economy.wallet} 💎 · Nível ${xp.level}`);
Próximos passos
- Veja todos os campos disponíveis na Referência da API
- Revogue chaves não usadas em /keys