Axuz Developers

POST /public/shared/{token}/presence

Publica presença (cursor + viewport) do viewer.

  • Acesso: Pública (link ou assinatura)
  • Serviço: https://api-flow.axuz.net

Autenticação aceita

Sem autenticação (rota pública ou protegida por link/assinatura).

— POST /public/shared/{token}/presence.

Resolve share token, valida (404/410), e delega pra runPresence. NÃO checa access: tanto 'view' quanto 'interact' podem publicar posição (cursores de viewer também são úteis na demo, e a info é descartável — não dá pra "escrever" no doc com isso). Se quisermos restringir a 'interact' no futuro, fica no DoD da Fase E.

Parâmetros

NomeEmTipoObrigatórioDescrição
tokenpathstringsim

16 bytes hex (2^128 espaço).

Corpo da requisição

application/json · Obrigatório

NomeTipoObrigatórioDescrição
client_idstringsim
namestringnão
xnumbernão
ynumbernão
vxnumbernão
vynumbernão
vznumbernão

Zoom (viewport). Faixa válida 0.05 ≤ vz ≤ 10; 0 = sem viewport.

{
  "client_id": "string",
  "name": "string",
  "x": 1,
  "y": 1,
  "vx": 1,
  "vy": 1,
  "vz": 1
}

Respostas

204

Publicado (sem body).

400

Payload inválido.

NomeTipoObrigatórioDescrição
errorstringsim

404

Recurso não encontrado ou fora de escopo.

NomeTipoObrigatórioDescrição
errorstringsim

410

Share expirou.

NomeTipoObrigatórioDescrição
errorstringsim

429

Limite de requisições excedido.

NomeTipoObrigatórioDescrição
errorstringsim

500

Erro interno. Tente de novo com backoff; reporte o X-Request-Id.

NomeTipoObrigatórioDescrição
errorstringsim

503

Redis não configurado ou kill-switch.

NomeTipoObrigatórioDescrição
errorstringsim

Exemplos

O "Try it" está desligado nesta referência. Use os exemplos com a sua credencial de teste.

curl

curl -sS -X POST 'https://api-flow.axuz.net/public/shared/TOKEN/presence' \
  -H "Content-Type: application/json" \
  -d '{"client_id":"string","name":"string","x":1,"y":1,"vx":1,"vy":1,"vz":1}'

Node.js

const res = await fetch("https://api-flow.axuz.net/public/shared/TOKEN/presence", {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "client_id": "string",
    "name": "string",
    "x": 1,
    "y": 1,
    "vx": 1,
    "vy": 1,
    "vz": 1
  }),
});
if (!res.ok) throw new Error(`HTTP ${res.status}: ${await res.text()}`);
console.log(await res.json());

Python

import os
import requests

res = requests.request(
    "POST",
    "https://api-flow.axuz.net/public/shared/TOKEN/presence",
    json={
        "client_id": "string",
        "name": "string",
        "x": 1,
        "y": 1,
        "vx": 1,
        "vy": 1,
        "vz": 1,
    },
    timeout=30,
)
res.raise_for_status()
print(res.json())