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.
- 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ódigo | Status | Descrição |
|---|
200 | OK | Requisição bem-sucedida. |
201 | Created | Recurso criado com sucesso. |
204 | No Content | Requisição bem-sucedida sem corpo de resposta (ex: exclusão). |
400 | Bad Request | Parâmetros inválidos ou ausentes. |
401 | Unauthorized | API key ausente, inválida ou expirada. |
403 | Forbidden | A chave não tem permissão para acessar este recurso. |
404 | Not Found | O recurso solicitado não existe. |
429 | Too Many Requests | Limite de requisições excedido. Aguarde antes de tentar novamente. |
500 | Internal Server Error | Erro 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.
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"
}
| Campo | Tipo | Descrição |
|---|
error | string | Identificador de erro em snake_case. |
message | string | Descrição legível do erro, adequada para logs de depuração. |
code | string | Código de erro em maiúsculas, útil para tratamento no código. |