Axuz Developers

POST /public/shared/{token}/presence

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

  • Access: Public (link or signature)
  • Service: https://api-flow.axuz.net

Accepted authentication

No authentication (public route, or protected by link/signature).

— 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.

Parameters

NameInTypeRequiredDescription
tokenpathstringyes

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

Request body

application/json · Required

NameTypeRequiredDescription
client_idstringyes
namestringno
xnumberno
ynumberno
vxnumberno
vynumberno
vznumberno

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
}

Responses

204

Publicado (sem body).

400

Payload inválido.

NameTypeRequiredDescription
errorstringyes

404

Recurso não encontrado ou fora de escopo.

NameTypeRequiredDescription
errorstringyes

410

Share expirou.

NameTypeRequiredDescription
errorstringyes

429

Limite de requisições excedido.

NameTypeRequiredDescription
errorstringyes

500

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

NameTypeRequiredDescription
errorstringyes

503

Redis não configurado ou kill-switch.

NameTypeRequiredDescription
errorstringyes

Examples

"Try it" is turned off in this reference. Use the examples with your test credential.

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())