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étodoEndpointDescrição
GET/api/v1/challengesListar desafios
POST/api/v1/challengesCriar desafio
GET/api/v1/challenges/:idBuscar desafio
GET/api/v1/challenges/:id/leaderboardLeaderboard 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

CampoTipoDescrição
community_iduuidTribo onde o desafio acontece
namestringNome do desafio
descriptionstringRegras explicadas
metricenumworkouts_count, workouts_with_exercise, volume_kg, streak_days
exercise_iduuidObrigatório quando metric = workouts_with_exercise
duration_daysintegerDuração (21-90 recomendado)
starts_atdatetimeQuando o desafio começa
tier_min_iduuidTier 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" }
    ]
  }
}

On this page