Sinais de Negócios · EndPoint

EndPoint de Sinais de Negócios

Seu site já sabe quantos usuários tem, quem se registrou hoje, quantos artigos ou perfis existem, quantos pagamentos foram processados e o que está aguardando moderação. Envie esses números para um EndPoint e veja todos os sites que você administra em um único painel — com alertas de anomalias, metas e um benchmark de portfólio. É um EndPoint, não um widget: servidor a servidor, sem dados pessoais, apenas contagens.

01

O que você pode enviar

Qualquer contador que você nomear. Agrupe-o em uma categoria e nós o mapeamos, o detalhamos e o monitoramos para você.

Usuários

total de usuários, registros por dia, assinantes, exclusões

Conteúdo

materiais de qualquer tipo — artigos, vídeos, perfis, listagens

Receita

tentativas de pagamento, pagamentos bem-sucedidos, reembolsos — além de conversão derivada

Moderação

perfis aguardando exclusão, itens reportados, filas de revisão

Feedback

mensagens de formulário de contato, tickets de suporte, NPS

Mais alguma coisa

nomeie uma métrica e ela aparece — sem configuração do nosso lado

02

O EndPoint

POSThttps://astrina.io/endpoint/ingestEnvie um lote de sinais. Autenticação: sua chave de site no cabeçalho X-Astrina-Key.
GEThttps://astrina.io/endpoint/pingHeartbeat — retorna comandos pendentes sem enviar dados.
GEThttps://astrina.io/endpoint/insightsPuxe a saúde computada deste site: valores atuais, deltas, metas, alertas e a mediana entre seus outros sites.
POSThttps://astrina.io/endpoint/ackReconheça um comando entregue pelo seu id.
03

Exemplos

curl -X POST https://astrina.io/endpoint/ingest \
  -H "X-Astrina-Key: YOUR_SITE_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "signals": [
      { "metric": "users",              "kind": "gauge", "value": 15230, "category": "users" },
      { "metric": "registrations",      "value": 42,     "category": "users" },
      { "metric": "materials", "kind": "gauge", "value": 842, "dim": "article", "category": "content" },
      { "metric": "materials", "kind": "gauge", "value": 301, "dim": "video",   "category": "content" },
      { "metric": "payment_requests",   "value": 18,     "category": "revenue" },
      { "metric": "payment_success",    "value": 11,     "category": "revenue", "unit": "EUR" },
      { "metric": "feedback",           "value": 3,      "category": "feedback" },
      { "metric": "profiles_to_delete", "kind": "gauge", "value": 5, "category": "moderation",
        "good_dir": "down", "attention": true }
    ]
  }'
<?php
// Run this daily (cron) on your own site. Sends only counts — never personal data.
$key = 'YOUR_SITE_KEY';
$payload = ['signals' => [
    ['metric' => 'users',         'kind' => 'gauge', 'value' => usersTotal(),          'category' => 'users'],
    ['metric' => 'registrations', 'value' => registrationsToday(),                     'category' => 'users'],
    ['metric' => 'payment_requests', 'value' => paymentAttemptsToday(),               'category' => 'revenue'],
    ['metric' => 'payment_success',  'value' => paymentsPaidToday(), 'unit' => 'EUR',  'category' => 'revenue'],
    ['metric' => 'feedback',      'value' => feedbackToday(),                          'category' => 'feedback'],
    ['metric' => 'profiles_to_delete', 'kind' => 'gauge', 'value' => deletionQueue(),
        'category' => 'moderation', 'good_dir' => 'down', 'attention' => true],
]];
$ch = curl_init('https://astrina.io/endpoint/ingest');
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_HTTPHEADER => ['X-Astrina-Key: YOUR_SITE_KEY', 'Content-Type: application/json'],
    CURLOPT_POSTFIELDS => json_encode($payload),
    CURLOPT_RETURNTRANSFER => true,
]);
$resp = json_decode(curl_exec($ch), true);
// Two-way: act on anything Astrina asks for (e.g. a fresh full snapshot).
foreach ($resp['requests'] ?? [] as $cmd) {
    if ($cmd['cmd'] === 'full_snapshot') { /* push your whole history, then: */ }
    // acknowledge so it is not re-sent:
    // curl https://astrina.io/endpoint/ack  -d '{"id": ' . $cmd['id'] . '}'
}
<?php
// One-off: backfill a year of daily registrations so the charts start full.
$signals = [];
foreach (registrationsByDay('-365 days') as $day => $n) {   // 'YYYY-MM-DD' => int
    $signals[] = ['metric' => 'registrations', 'value' => $n, 'day' => $day, 'category' => 'users'];
}
// up to 2000 points per request
foreach (array_chunk($signals, 2000) as $chunk) {
    postJson('https://astrina.io/endpoint/ingest', ['signals' => $chunk], 'YOUR_SITE_KEY');
}
# Pull this site's computed health BACK (current values, 30-day deltas, target
# progress, open alerts, and the median across YOUR OTHER sites) to show it in-app:
curl "https://astrina.io/endpoint/insights" -H "X-Astrina-Key: YOUR_SITE_KEY"

Substitua YOUR_SITE_KEY pela chave do seu painel. Cada site tem sua própria chave; ela só autoriza o envio dos números daquele site.

04

Campos de sinal

CampoSignificado
metricobrigatórioAny key you choose — users, registrations, materials, payment_success… Stored under this key forever.
valueobrigatórioThe number. For a gauge it is the current total; for a count it is that period's amount.
kindopcional"gauge" (a snapshot total, e.g. total users now) or "count" (per-day amount, the default).
dayopcionalYYYY-MM-DD. Defaults to today. Send past days to backfill; re-sending a day overwrites it.
dimopcionalA breakdown value, e.g. the material type "article"/"video". One series per dimension.
categoryopcionalusers · content · revenue · moderation · feedback · engagement · custom — groups the metric.
unitopcionalA short unit shown next to the number, e.g. "EUR", "GB".
good_diropcional"up" (default), "down" (lower is better, e.g. a deletion queue) or "none".
attentionopcionaltrue pins the metric to the cross-site cockpit as a "needs clearing" number.
eventopcionaltrue + a count with no day increments today instead of overwriting it.
05

Bidirecional por design

Comandos de volta

Cada envio retorna quaisquer comandos que você enfileirou no painel — por exemplo, “envie uma captura completa”. Seu site os executa e confirma.

Insights de volta

Chame /endpoint/insights para mostrar seus próprios números ao vivo, metas e alertas dentro do seu painel de administração.

Referência de portfólio

Retornamos a mediana de cada métrica entre seus outros sites, para que um site possa mostrar como se compara ao restante.

Monitoramento de anomalias

Monitoramos quedas acentuadas, picos, uma integração silenciosa e um funil de pagamento que para de converter — e os sinalizamos.

EndPoint de Sinais de Negócios