Início Rápido

Comece a usar a API OctaLife em 5 minutos. Crie sua primeira tribo, configure tiers e abra inscrições via API.

Início Rápido

Este guia mostra como fazer sua primeira integração com a API OctaLife. Ao final, você terá criado uma tribo, configurado dois tiers de assinatura, publicado um post no feed e consultado as métricas do creator — tudo via API.

Pré-requisitos

  • Conta ativa no OctaLife como creator
  • Conta Stripe Connect aprovada (necessária pra cobrança)
  • API Key gerada (veja Autenticação)

Obtenha sua API Key

  1. Acesse o painel do OctaLife
  2. Navegue até ConfiguraçõesAPI Keys
  3. Clique em Criar Nova Chave
  4. Copie sua chave (formato: ol_live_...)
Guarde sua API Key em segurança. Ela não será exibida novamente!

Crie sua primeira tribo

curl -X POST https://app.octalife.ai/api/v1/communities \
  -H "Authorization: Bearer ol_live_sua_chave_aqui" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Elite Training",
    "slug": "elite-training",
    "description": "Hipertrofia, força e performance.",
    "category": "musculacao",
    "is_public": true
  }'
const response = await fetch('https://app.octalife.ai/api/v1/communities', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${process.env.OCTALIFE_API_KEY}`,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    name: 'Elite Training',
    slug: 'elite-training',
    description: 'Hipertrofia, força e performance.',
    category: 'musculacao',
    is_public: true,
  })
});

const data = await response.json();
console.log('Tribo criada:', data.data.id);
import requests, os

response = requests.post(
    'https://app.octalife.ai/api/v1/communities',
    headers={
        'Authorization': f'Bearer {os.environ["OCTALIFE_API_KEY"]}',
        'Content-Type': 'application/json'
    },
    json={
        'name': 'Elite Training',
        'slug': 'elite-training',
        'description': 'Hipertrofia, força e performance.',
        'category': 'musculacao',
        'is_public': True
    }
)

data = response.json()
print(f"Tribo criada: {data['data']['id']}")

Resposta:

{
  "success": true,
  "data": {
    "id": "uuid-da-tribo",
    "name": "Elite Training",
    "slug": "elite-training",
    "description": "Hipertrofia, força e performance.",
    "category": "musculacao",
    "is_public": true,
    "members_count": 0,
    "created_at": "2026-04-15T10:30:00Z"
  }
}

Configure dois tiers de assinatura

Crie um tier Básico e um Premium:

# Tier Básico
curl -X POST https://app.octalife.ai/api/v1/tiers \
  -H "Authorization: Bearer ol_live_sua_chave_aqui" \
  -H "Content-Type: application/json" \
  -d '{
    "community_id": "uuid-da-tribo",
    "name": "Básico",
    "price_cents": 4900,
    "billing_period": "monthly",
    "trial_days": 7,
    "benefits": ["Feed exclusivo", "Treinos prescritos", "Chat"]
  }'

# Tier Premium
curl -X POST https://app.octalife.ai/api/v1/tiers \
  -H "Authorization: Bearer ol_live_sua_chave_aqui" \
  -H "Content-Type: application/json" \
  -d '{
    "community_id": "uuid-da-tribo",
    "name": "Premium",
    "price_cents": 9900,
    "billing_period": "monthly",
    "trial_days": 7,
    "benefits": ["Tudo do Básico", "Lives mensais", "Grupo VIP no chat"]
  }'

Resposta:

{
  "success": true,
  "data": {
    "id": "uuid-do-tier",
    "community_id": "uuid-da-tribo",
    "name": "Básico",
    "price_cents": 4900,
    "billing_period": "monthly",
    "stripe_price_id": "price_xxxxx",
    "trial_days": 7,
    "is_active": true
  }
}

Publique um post no feed

curl -X POST https://app.octalife.ai/api/v1/posts \
  -H "Authorization: Bearer ol_live_sua_chave_aqui" \
  -H "Content-Type: application/json" \
  -d '{
    "community_id": "uuid-da-tribo",
    "content": "Treino A da semana — Peito e Tríceps. Posta o seu volume nos comentários!",
    "tier_min_id": null
  }'

tier_min_id: null torna o post visível pra todos. Para limitar a um tier específico, passe o id do tier.

Consulte as métricas do creator

curl -X GET https://app.octalife.ai/api/v1/creator-metrics \
  -H "Authorization: Bearer ol_live_sua_chave_aqui"

Resposta:

{
  "success": true,
  "data": {
    "communities_count": 1,
    "active_subscribers": 0,
    "mrr_cents": 0,
    "available_payout_cents": 0,
    "this_month_revenue_cents": 0,
    "platform_fee_pct": 10
  }
}

Exemplo Completo em JavaScript

// octalife-client.js
class OctaLifeClient {
  constructor(apiKey) {
    this.apiKey = apiKey;
    this.baseUrl = 'https://app.octalife.ai/api/v1';
  }

  async request(endpoint, options = {}) {
    const response = await fetch(`${this.baseUrl}${endpoint}`, {
      ...options,
      headers: {
        Authorization: `Bearer ${this.apiKey}`,
        'Content-Type': 'application/json',
        ...options.headers,
      },
    });
    if (!response.ok) {
      const error = await response.json();
      throw new Error(error.error?.message || 'Erro na requisição');
    }
    return response.json();
  }

  createCommunity(data) { return this.request('/communities', { method: 'POST', body: JSON.stringify(data) }); }
  createTier(data)      { return this.request('/tiers',       { method: 'POST', body: JSON.stringify(data) }); }
  createPost(data)      { return this.request('/posts',       { method: 'POST', body: JSON.stringify(data) }); }
  getMetrics()          { return this.request('/creator-metrics'); }
}

const client = new OctaLifeClient(process.env.OCTALIFE_API_KEY);

async function bootstrapTribo() {
  const tribo = await client.createCommunity({
    name: 'Elite Training',
    slug: 'elite-training',
    description: 'Hipertrofia e força.',
    category: 'musculacao',
    is_public: true,
  });

  await client.createTier({
    community_id: tribo.data.id,
    name: 'Básico',
    price_cents: 4900,
    billing_period: 'monthly',
    trial_days: 7,
  });

  await client.createPost({
    community_id: tribo.data.id,
    content: 'Tribo no ar! Bem-vindo.',
  });

  return client.getMetrics();
}

bootstrapTribo().then(console.log);

Próximos Passos

  • Tribos — gerenciar comunidades, slug, capa e regras
  • Tiers — configurar pricing, trial e anual
  • Webhooks — reagir em tempo real a subscription.created e payout.paid

Precisa de Ajuda?

On this page