Fênix Social API

Integre nossa plataforma de marketing digital diretamente no seu sistema. Crie pedidos, consulte status e gerencie saldo programaticamente.

URL base: https://fenixsocial.site/api/public-api
Todos os endpoints usam essa URL base com o parâmetro action.

Autenticação

Todas as requisições precisam de uma chave de API. Gere a sua no painel em Configurações → API.

Passe a chave em toda requisição pelo cabeçalho Authorization:

Via cabeçalho

Authorization: Bearer fsx_sua_chave_aqui

Chaves na URL não são aceitas. Gere uma nova chave após esta atualização; as antigas deixam de funcionar.

Ao criar pedidos, envie também Idempotency-Key com um identificador único de 16 a 100 letras, números, hífens ou sublinhados. Reutilize-o em tentativas do mesmo pedido. Um novo pedido precisa de outra chave.

Erros

Quando algo dá errado, a API retorna um objeto com o campo erro:

{"erro": "Saldo insuficiente. Disponível: R$ 5.00. Necessário: R$ 10.00"}
CódigoSignificado
200Sucesso
400Parâmetros inválidos ou saldo insuficiente
401Chave de API inválida ou ausente
404Serviço ou pedido não encontrado
500Erro interno — entre em contato com o suporte

Listar serviços

GET ?action=services

Retorna todos os serviços disponíveis com o preço já calculado para a sua conta (com desconto aplicado se houver).

Resposta

[
  {
    "service": "1234",
    "name": "Instagram Seguidores Brasileiros",
    "category": "Instagram seguidores [Brasil]",
    "type": "Default",
    "billing": "per_1000",
    "rate": 2.50,
    "min": 100,
    "max": 10000,
    "refill": true
  },
  ...
]
CampoDescrição
serviceID do serviço (use no action=add)
nameNome do serviço
rateTarifa em BRL conforme billing: por mil ou pelo pacote
min / maxQuantidade mínima e máxima por pedido
refillSe o serviço permite solicitar reposição

Consultar saldo

GET ?action=balance

Retorna o saldo disponível na carteira da sua conta.

Resposta

{
  "balance": "47.50",
  "currency": "BRL"
}

Criar pedido

POST ?action=add

Cria um novo pedido. O valor é debitado automaticamente do saldo da sua carteira.

Parâmetros (body JSON)

ParâmetroTipoDescrição
actionstring"add"
servicestringID do serviço (veja action=services)
linkstringLink do perfil ou postagem
quantitynumberQuantidade desejada
commentsstring(opcional) Comentários separados por linha

Modalidades e cobrança

Consulte type e billing na listagem. Em per_1000, o total é rate × quantidade ÷ 1000. Em package, rate é o preço do pacote inteiro. Em subscription, rate é a tarifa por mil para cada publicação; o total usa quantity × (posts + old_posts). Pedidos positivos têm mínimo de R$ 0,01.

typeCampos além de service/action
Defaultlink, quantity; runs e interval opcionais se a modalidade permitir entregas parceladas
Packagelink; não envie quantity
SEOlink, quantity, keywords (uma expressão por linha)
Custom Comments / Custom Comments Packagelink, comments (um texto por linha; respeite a quantidade do pacote quando indicada)
Comment Replieslink, username do autor do comentário, comments
Comment Likeslink, quantity, username do autor do comentário
Mentions Custom Listlink, usernames (um por linha)
Mentions Hashtaglink, quantity, hashtag
Mentions User Followerslink, quantity, username (URL do perfil de origem)
Polllink, quantity, answer_number (posição da alternativa, começando em 1)
Invites from Groupslink, quantity, groups (uma origem ou termo por linha, conforme o serviço)
Subscriptionsusername sem @, quantity por publicação, posts (1–100), old_posts (0–100), delay, expiry (AAAA-MM-DD). Soma de publicações até 100; data final até 366 dias. Compra limitada, sem renovação automática.

As listas de comentários e usuários determinam a quantidade automaticamente. A API valida os parâmetros antes de cobrar. Preserve o mesmo Idempotency-Key ao repetir uma tentativa.

Exemplo de requisição

{
  "action": "add",
  "service": "1234",
  "link": "https://instagram.com/seuperfil",
  "quantity": 500
}

Resposta

{
  "order": "#00042",
  "status": "executando",
  "charge": "1.25",
  "currency": "BRL"
}
⚠️ Atenção: O perfil ou publicação deve estar público. Pedidos com perfis privados não são reembolsados.

Status do pedido

GET ?action=status&order=NUMERO

Consulta o status atual de um pedido pelo número gerado no momento da criação.

ParâmetroDescrição
orderNúmero do pedido (ex: #00042)

Resposta

{
  "order": "#00042",
  "status": "executando",
  "charge": "1.25",
  "start_count": 1200,
  "remains": 300,
  "currency": "BRL"
}
StatusSignificado
executandoPedido em andamento
concluidoPedido finalizado com sucesso
aguardando_pagamentoAguardando confirmação de pagamento
canceladoPedido cancelado
erro_fornecedorErro ao processar — entre em contato com o suporte

Exemplos — cURL

Listar serviços

curl "https://fenixsocial.site/api/public-api?action=services" \
  -H "Authorization: Bearer fsx_sua_chave_aqui"

Criar pedido

curl -X POST "https://fenixsocial.site/api/public-api?action=add" \
  -H "Authorization: Bearer fsx_sua_chave_aqui" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: pedido_exemplo_0001" \
  -d '{"action":"add","service":"1234","link":"https://instagram.com/seuperfil","quantity":500}'

Exemplos — JavaScript

const API_KEY = 'fsx_sua_chave_aqui';
const BASE = 'https://fenixsocial.site/api/public-api';
const headers = { 'Authorization': `Bearer ${API_KEY}`, 'Content-Type': 'application/json', 'Idempotency-Key': crypto.randomUUID() };

// Listar serviços
const services = await fetch(`${BASE}?action=services`, { headers }).then(r => r.json());

// Criar pedido
const order = await fetch(`${BASE}?action=add`, {
  method: 'POST',
  headers,
  body: JSON.stringify({ action: 'add', service: '1234', link: 'https://instagram.com/perfil', quantity: 500 })
}).then(r => r.json());

console.log(order); // { order: '#00042', status: 'executando', charge: '1.25', currency: 'BRL' }

// Consultar status
const status = await fetch(`${BASE}?action=status&order=${order.order}`, { headers }).then(r => r.json());

Exemplos — Python

import requests
import uuid

API_KEY = 'fsx_sua_chave_aqui'
BASE = 'https://fenixsocial.site/api/public-api'
HEADERS = {'Authorization': f'Bearer {API_KEY}', 'Idempotency-Key': str(uuid.uuid4()), 'Content-Type': 'application/json'}

# Listar serviços
services = requests.get(f'{BASE}?action=services', headers=HEADERS).json()

# Criar pedido
order = requests.post(f'{BASE}?action=add', headers=HEADERS, json={
    'action': 'add',
    'service': '1234',
    'link': 'https://instagram.com/seuperfil',
    'quantity': 500
}).json()

print(order)  # {'order': '#00042', 'status': 'executando', 'charge': '1.25', 'currency': 'BRL'}

# Consultar status
status = requests.get(f'{BASE}?action=status&order={order["order"]}', headers=HEADERS).json()

Precisa de ajuda com a integração?

Falar com o suporte