🔐 Autenticação (Client Credentials)
Esta página ensina como trocar suas chaves de acesso por um token temporário para realizar chamadas seguras.
O Fluxo do Token
Tanto o backend da empresa (Participante) quanto scripts pessoais de usuários usam o fluxo Client Credentials:
[Seu Script/Servidor] ── POST /auth/api-key (Client ID/Secret) ──▶ [DEX API]
[Seu Script/Servidor] ◀── Retorna Token JWT (Válido por 1 hora) ─── [DEX API]
Analogia: É como apresentar seu documento na portaria de um prédio para receber um crachá de visitante. O crachá (Token JWT) vale por 1 hora. Se ele expirar, você precisa pedir outro.
1. Como Obter Suas Chaves
-
Participantes (Empresas): Geram no Painel Admin do Participante.
-
Usuários Finais (Pessoais): Geram no app em
Integrações → API(Desktop) ou⚙️ Configurações → Integrações → API(PWA).
2. Gerando o Token
Faça um POSTcontendo suas chaves:
Endpoint
POST /v1/auth/api-key
JSON Enviado
{
"clientId": "seu_client_id_aqui",
"clientSecret": "seu_client_secret_aqui"
}
JSON Recebido (Sucesso)
{
"accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"expiresIn": 3600,
"tokenType": "Bearer"
}
Use o campo accessToken no cabeçalho das próximas chamadas: Authorization: Bearer <accessToken>.
Exemplos Práticos de Código
Selecione a linguagem de programação desejada abaixo para visualizar o código completo de automação e cache do token:
💻 Exemplo em Node.js (TypeScript)
const DEX_API_BASE = 'https://api.dexkey.finance/v1';
let tokenCache: { token: string; expiresAt: number } | null = null;
async function obterToken(): Promise<string> {
if (tokenCache && Date.now() < tokenCache.expiresAt - 120_000) {
return tokenCache.token;
}
const resposta = await fetch(`${DEX_API_BASE}/auth/api-key`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
clientId: process.env.DEX_CLIENT_ID,
clientSecret: process.env.DEX_CLIENT_SECRET,
}),
});
const dados = await resposta.json();
tokenCache = {
token: dados.accessToken,
expiresAt: Date.now() + dados.expiresIn * 1000,
};
return dados.accessToken;
}
🐍 Exemplo em Python
import os, time, requests
DEX_API_BASE = "https://api.dexkey.finance/v1"
_token_cache = {"token": None, "expires_at": 0}
def obter_token() -> str:
if _token_cache["token"] and time.time() < _token_cache["expires_at"] - 120:
return _token_cache["token"]
resposta = requests.post(
f"{DEX_API_BASE}/auth/api-key",
json={
"clientId": os.environ["DEX_CLIENT_ID"],
"clientSecret": os.environ["DEX_CLIENT_SECRET"],
},
)
dados = resposta.json()
_token_cache["token"] = dados["accessToken"]
_token_cache["expires_at"] = time.time() + dados["expiresIn"]
return dados["accessToken"]

