API
Desafios
Criar desafios temporários com leaderboard automático e premiação.
Desafios
Desafios são competições temporárias dentro de uma tribo, com regras objetivas, leaderboard ao vivo e período definido.
Endpoints
| Método | Endpoint | Descrição |
|---|---|---|
GET | /api/v1/challenges | Listar desafios |
POST | /api/v1/challenges | Criar desafio |
GET | /api/v1/challenges/:id | Buscar desafio |
GET | /api/v1/challenges/:id/leaderboard | Leaderboard atual |
Criar desafio
curl -X POST https://app.octalife.ai/api/v1/challenges \
-H "Authorization: Bearer ol_live_sua_chave" \
-H "Content-Type: application/json" \
-d '{
"community_id": "uuid",
"name": "30 dias de agachamento",
"description": "Agachar todos os dias por 30 dias. Cada dia = 1 ponto.",
"metric": "workouts_with_exercise",
"exercise_id": "uuid-do-agachamento",
"duration_days": 30,
"starts_at": "2026-05-01T00:00:00Z",
"tier_min_id": null
}'Campos
| Campo | Tipo | Descrição |
|---|---|---|
community_id | uuid | Tribo onde o desafio acontece |
name | string | Nome do desafio |
description | string | Regras explicadas |
metric | enum | workouts_count, workouts_with_exercise, volume_kg, streak_days |
exercise_id | uuid | Obrigatório quando metric = workouts_with_exercise |
duration_days | integer | Duração (21-90 recomendado) |
starts_at | datetime | Quando o desafio começa |
tier_min_id | uuid | Tier mínimo pra participar (null = todos) |
Leaderboard
curl -X GET https://app.octalife.ai/api/v1/challenges/uuid/leaderboard \
-H "Authorization: Bearer ol_live_sua_chave"Resposta:
{
"success": true,
"data": {
"challenge_id": "uuid",
"updated_at": "2026-05-15T18:00:00Z",
"rankings": [
{ "rank": 1, "member_id": "uuid", "name": "Marcos S.", "score": 14, "delta": "+2" },
{ "rank": 2, "member_id": "uuid", "name": "Carla N.", "score": 13, "delta": "+1" }
]
}
}