Introdução

Conceitos gerais da API REST do LiveTP, códigos de resposta e autenticação.

A API do LiveTP segue os princípios REST, recebe e retorna JSON e exige HTTPS. É a mesma API usada pelos apps nativos, com as mesmas validações e revisões.

URL base

https://livetp.app/api/v1

Ambiente de testes

Em staging, use https://staging.livetp.app/api/v1. Contas, chaves e dados de cada ambiente são independentes.

Autenticação

Envie uma chave de API (ltp_api_…) ou um token OAuth no header Authorization:

Authorization: Bearer ltp_api_...

Credenciais na query string são recusadas. Cada endpoint exige um escopo: scripts:read para leitura e scripts:write para alterações.

Formato

  • Requisições com corpo usam Content-Type: application/json e têm limite de 1 MB.
  • Datas seguem ISO 8601 em UTC (2026-10-30T15:00:00.000Z).
  • Respostas nunca são armazenadas em cache (Cache-Control: no-store).
  • Leituras e alterações de roteiros retornam a revisão no header ETag.

Códigos de resposta

StatusDescrição
200Sucesso.
201Recurso criado.
400Corpo ausente ou JSON inválido.
401Credencial ausente, inválida, expirada ou revogada.
403A credencial não tem o escopo necessário, ou a ação exige a sessão web.
404Recurso não encontrado (ou pertence a outra conta).
409Conflito de revisão ou de identificador.
413Corpo acima de 1 MB.
415Corpo enviado sem Content-Type: application/json.
422Parâmetros ou campos inválidos.
429Limite de requisições atingido. Respeite Retry-After.
5xxErro no LiveTP. Tente novamente em instantes.

Erros seguem sempre o mesmo formato. Veja a lista de códigos em Erros.

{
  "error": {
    "code": "insufficient_scope",
    "message": "Esta conexão não tem permissão para a ação.",
    "details": { "scope": "scripts:write" }
  }
}

Limite de requisições

Cada conta pode fazer 240 leituras e 60 alterações por minuto, somando todas as credenciais. Ao exceder, a API responde 429 com Retry-After: 60. Veja Limite de requisições.

Especificação OpenAPI

A especificação OpenAPI 3.1 é pública em GET /api/v1/openapi e pode gerar clientes em qualquer linguagem.

Perguntas frequentes