Guia de Integração
API de monitoramento de computadores com IA: consulte o status da frota, receba alertas em tempo real e acione correções — com uma chave de API por empresa.
Base: https://api.ti24h.cloud · Docs interativos: swagger.html
1. Como obter sua chave
- Entre no painel ti24h.cloud.
- Abra a aba Integrações.
- Clique em Gerar token (ex.: "ERP da empresa").
- Copie o token agora — ele só é mostrado uma vez. Formato:
ti24h_<48 hex>.
Trate o token como senha. Ele dá acesso aos dados da SUA empresa, e só da sua.
2. Autenticação
Envie o token no header X-API-Key:
Limite: 120 req/min por token (HTTP 429). · Isolamento: cada token enxerga somente a própria empresa.
3. Endpoints (exemplos com curl)
3.1 Resumo da frota
-H "X-API-Key: ***"
{
"empresa": "Empresa Exemplo Ltda",
"total_pcs": 12,
"online": 11,
"offline": 1,
"alertas_abertos": { "info": 0, "aviso": 2, "critico": 1 }
}
3.2 Listar computadores
Cada item traz id, nome, grupo, status (online/offline/manutencao), IPs e hardware.
3.3 Detalhe de um computador
Inclui os últimos 10 alertas do PC.
3.4 Alertas (com filtros)
-H "X-API-Key: ***"
Filtros: status (aberto|resolvido|ignorado|todos) e severidade (info|aviso|critico). Cada alerta traz impacto (o que pode acontecer se não corrigir) e recomendacao (o que fazer).
3.5 Histórico de correções
3.6 Enfileirar uma correção
-H "X-API-Key: ***" \
-H "Content-Type: application/json" \
-d '{"tipo":"clear_temp"}'
O agente executa no próximo ciclo (até 5 min) e o resultado aparece no histórico.
| tipo | o que faz |
|---|---|
clear_temp | limpa arquivos temporários do usuário |
esvaziar_lixeira | esvazia a lixeira |
limpeza_geral | temporários + lixeira |
dns_flush | limpa o cache de DNS |
restart_explorer | reinicia o Explorer (Windows travado) |
windows_update_fix | repara o serviço de Windows Update |
otimizar_ssd | TRIM + otimização (SSD) |
desfragmentar_hdd | desfragmenta (HD) |
sfc_scan | verifica e repara arquivos do sistema |
4. Webhooks — alertas na sua URL
Cadastre uma URL na aba Integrações (ou via POST /v1/webhooks) e o TI24H envia um POST toda vez que um alerta abre ou resolve. Eventos: alerta.aberto, alerta.resolvido — ou * para todos.
Payload (alerta.aberto)
"evento": "alerta.aberto",
"ts": 1787238613,
"empresa": { "id": 1, "nome": "Empresa Exemplo Ltda" },
"computador": { "id": 6, "nome": "PC FISCAL" },
"alerta": {
"id": 123, "tipo": "disco_alto", "severidade": "critico",
"titulo": "Disco C: acima de 90%", "valor": 92.5, "limite": 90,
"impacto": "O disco está quase cheio... pode travar e perder dados.",
"recomendacao": "Libere espaço: limpe temporários e esvazie a lixeira."
}
}
Verificar a assinatura (obrigatório)
Todo POST traz X-TI24H-Signature: sha256=<HMAC-SHA256 do corpo bruto com o secret>
$corpo = file_get_contents('php://input');
$esperado = 'sha256=' . hash_hmac('sha256', $corpo, SEU_SECRET);
if (!hash_equals($esperado, $_SERVER['HTTP_X_TI24H_SIGNATURE'] ?? '')) {
http_response_code(401); exit('assinatura invalida');
}
# Python
import hmac, hashlib
esperado = 'sha256=' + hmac.new(secret.encode(), corpo, hashlib.sha256).hexdigest()
ok = hmac.compare_digest(esperado, assinatura)
Entrega: 3 tentativas com backoff (60s, 120s, 180s). Responda 2xx para confirmar. Teste: botão "testar" no painel (evento teste em até 1 min).
5. Códigos de erro
| HTTP | erro | significado |
|---|---|---|
| 401 | token_invalido | X-API-Key ausente, inválida ou revogada |
| 404 | nao_encontrado | recurso não existe (ou de outra empresa) |
| 422 | script_nao_aprovado | correção fora da allowlist |
| 429 | rate_limit | mais de 120 req/min |
| 500 | erro_interno | falha no servidor |
6. Exemplo completo — bot de alertas no Telegram
TOKEN_API="ti24h_5f3c..."
TG_TOKEN="***"
TG_CHAT="123456789"
ALERTAS=$(curl -s "https://api.ti24h.cloud/v1/api/alertas?status=aberto&severidade=critico" \
-H "X-API-Key: ***")
echo "$ALERTAS" | python3 -c "
import json, sys, urllib.request, urllib.parse
for a in json.load(sys.stdin).get('alertas', []):
msg = f" {a['severidade'].upper()} — {a['computador']}\n{a['titulo']}"
url = 'https://api.telegram.org/botTG_TOKEN/sendMessage'
urllib.request.urlopen(url, data=urllib.parse.urlencode({
'chat_id': 'TG_CHAT', 'text': msg}).encode())
"
Dica: com webhook você não precisa de polling — o TI24H chama sua URL na hora.
7. Boas práticas
- Rotacione tokens periodicamente (revogue no painel e gere outro).
- Valide a assinatura de todo webhook — nunca confie na URL sozinha.
- Use os filtros (status, severidade) para não baixar a frota inteira toda hora.
- Trate 429 com backoff simples (ex.: aguarde 60s).
- O token dá acesso somente de leitura (exceto enfileirar correção aprovada) — ações destrutivas não existem na API pública.