Skip to main content

URL base

Todas as requisições devem ser feitas para:
https://api.bluube.com/v1

Autenticação

A API utiliza autenticação por Bearer token. Inclua seu API key no cabeçalho Authorization de todas as requisições:
Authorization: Bearer <api_key>
Você obtém seu API key no painel da Bluube, nas configurações da sua aplicação. Cada chave é vinculada a uma aplicação específica (app_id). Para mais detalhes, consulte a página de Autenticação.

Formato das requisições

  • Todas as requisições devem utilizar JSON no corpo (body).
  • A codificação deve ser UTF-8.
  • O cabeçalho Content-Type é obrigatório em requisições com corpo.
Inclua sempre o cabeçalho Content-Type: application/json em requisições POST e PATCH. Sem ele, o servidor pode rejeitar o corpo da requisição.
Exemplo de requisição completa:
curl --request POST \
  --url https://api.bluube.com/v1/licenses \
  --header 'Authorization: Bearer blv_live_abc123xyz' \
  --header 'Content-Type: application/json' \
  --data '{
    "app_id": "app_9f3d2a1b",
    "type": "trial"
  }'

Formato das respostas

Todas as respostas são retornadas em JSON com codificação UTF-8. O campo Content-Type da resposta será sempre application/json.

Códigos de status HTTP

CódigoStatusDescrição
200OKRequisição bem-sucedida.
201CreatedRecurso criado com sucesso.
204No ContentRequisição bem-sucedida sem corpo de resposta (ex: exclusão).
400Bad RequestParâmetros inválidos ou ausentes.
401UnauthorizedAPI key ausente, inválida ou expirada.
403ForbiddenA chave não tem permissão para acessar este recurso.
404Not FoundO recurso solicitado não existe.
429Too Many RequestsLimite de requisições excedido. Aguarde antes de tentar novamente.
500Internal Server ErrorErro interno da Bluube. Se persistir, entre em contato com o suporte.

Rate limiting

A API aplica limites de requisições por API key para garantir a estabilidade do serviço. Ao exceder o limite, a API retorna 429 Too Many Requests. O cabeçalho Retry-After na resposta indica quantos segundos você deve aguardar antes de tentar novamente. Para reduzir o risco de atingir os limites:
  • Faça cache dos resultados de validação de licença no lado do seu servidor (ex: por 5 minutos).
  • Evite chamar /validate a cada operação do usuário; prefira validar na inicialização da aplicação ou em intervalos definidos.

Formato de erros

Quando a requisição falha, a resposta inclui um objeto JSON com detalhes do erro:
{
  "error": "invalid_license_key",
  "message": "A chave de licença fornecida não foi encontrada.",
  "code": "LICENSE_NOT_FOUND"
}
CampoTipoDescrição
errorstringIdentificador de erro em snake_case.
messagestringDescrição legível do erro, adequada para logs de depuração.
codestringCódigo de erro em maiúsculas, útil para tratamento no código.