POST /v1/recovery/preview
SDK · v1 · Produção · Revisado em · Markdown
Operação pública/SDK existente, separada da Platform API administrativa. Guia funcional · Índice dos 13 endpoints · Schemas navegáveis · JSON Schema. Não envie Authorization administrativo. Tokens/capacidades transitórias dos exemplos são fictícios.
POST /v1/recovery/preview
Seção intitulada “POST /v1/recovery/preview”Consultar recuperação sem consumir claim. Contrato público existente, separado de administração. Detecção exige opt-in; não chamar sua rota Edge interna diretamente. Capacidades e validade são revalidadas no servidor.
Base de exemplo: https://edge.agilink.invalid/functions/v1/api.
| Campo | Tipo | Obrigatório |
|---|---|---|
version |
constante | sim |
appId |
string | sim |
token |
string | sim |
{ "version": 1, "appId": "app_loja", "token": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"}curl --request POST 'https://edge.agilink.invalid/functions/v1/api/v1/recovery/preview' \ --header 'Content-Type: application/json' \ --data '{"version":1,"appId":"app_loja","token":"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"}'Resposta 200: Sucesso; exemplos fictícios. ACKs de telemetria devem ser lidos por evento.
{ "version": 1, "appId": "app_loja", "linkId": "go.example.com~-a~-produto", "context": { "publicUri": "https://go.example.com/a/produto" }, "expiresAt": "2026-10-26T12:00:00Z"}Erros documentados: 400, 403, 404, 409, 410, 413, 429, 503. Erros do Worker podem ter corpo vazio. Etapas de recuperação podem responder 200 {"accepted":false}; ACK HTTP não significa conteúdo exibido. Consulte os schemas e o guia para condições, validade, retry e envelopes.
JavaScript / TypeScript
Seção intitulada “JavaScript / TypeScript”const response = await fetch("https://edge.agilink.invalid/functions/v1/api/v1/recovery/preview", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({"version":1,"appId":"app_loja","token":"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"}) });if (!response.ok) throw new Error('HTTP ' + response.status);const result = await response.json();// Confira accepted e o ACK de cada evento. Não registre tokens transitórios.import jsonimport requestspayload = json.loads("{\"version\":1,\"appId\":\"app_loja\",\"token\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"}")response = requests.request("POST", "https://edge.agilink.invalid/functions/v1/api/v1/recovery/preview", json=payload, timeout=30)response.raise_for_status()result = response.json()# Confira accepted/ACK, sem registrar tokens transitórios.Campos, limites e semântica
Seção intitulada “Campos, limites e semântica”Os schemas abaixo descrevem obrigatoriedade, tipos, defaults, enums e limites; referências apontam para components.schemas do contrato baixável. Omitir opcionais usa o comportamento do contrato; null só é aceito onde declarado. A API pública não usa os envelopes, If-Match ou Idempotency-Key administrativos. Eventos e etapas de recuperação usam seus próprios IDs, deduplicação e capacidade transitória. Não repita um resgate como se fosse leitura: consulte o estado e os limites do ciclo de recuperação. A resolução não gera clique administrativo; telemetria é client_reported. Associação nativa publicada exige verificação em aparelho. Sem paginação administrativa; requests não concedem acesso de gerenciamento.
Request schema
Seção intitulada “Request schema”{ "type": "object", "properties": { "version": { "const": 1 }, "appId": { "type": "string", "maxLength": 200, "minLength": 1 }, "token": { "type": "string", "pattern": "^[A-Za-z0-9_-]{43}$" } }, "required": [ "version", "appId", "token" ], "additionalProperties": true}Response schema
Seção intitulada “Response schema”{ "type": "object", "properties": { "version": { "const": 1 }, "appId": { "type": "string", "maxLength": 200, "minLength": 1 }, "linkId": { "type": "string", "maxLength": 650 }, "context": { "type": "object", "properties": { "publicUri": { "type": "string", "format": "uri" } }, "required": [ "publicUri" ], "additionalProperties": true }, "expiresAt": { "type": "string", "format": "date-time" } }, "required": [ "version", "appId", "linkId", "context", "expiresAt" ], "additionalProperties": false}Headers: Content-Type application/json nas respostas JSON. Erros aplicáveis são os listados acima e podem ter corpo vazio; 429 exige respeitar Retry-After quando fornecido, sem tentativas ilimitadas. Não trate HTTP 200/ACK como confirmação de conteúdo exibido, instalação ou detecção certa.