Skip to main content
Todos os posts
Atualizado em

A API da LevelFour: dados de custo e economia via REST

Uma API REST para o seu gasto e a sua economia, com API keys de escopo definido, o mesmo envelope em toda resposta e webhooks assinados a cada passo de uma economia.

Gabriel Nielsen
Read in EnglishThe LevelFour API: Cost and Savings Data Over REST

Dado de custo rende mais onde o seu time já olha: num dashboard interno, no modelo do financeiro, num job de CI, na fila de tickets. A API da LevelFour serve os mesmos dados de gasto e de economia que o dashboard mostra, para você levar esses números a qualquer um desses lugares.

Uma URL base e um envelope só

Os endpoints ficam em https://api.levelfour.ai e recebem a sua API key como bearer token no header Authorization. Toda resposta volta no mesmo envelope, com success, depois data ou error e, por último, um timestamp. Um parser só dá conta de todas.

Terminal
curl -H "Authorization: Bearer $LEVELFOUR_API_KEY" \
  https://api.levelfour.ai/api/v1/recommendations/summary

Num erro, o success vem como false, e o error traz um code, como NOT_FOUND, uma message e os details. Uma lista põe as linhas em items, ao lado de um objeto de paginação com total_pages e has_next, e as páginas começam em 1. Cada chave faz até 600 requisições por minuto. Acima disso, a API responde 429 com o código RATE_LIMIT_EXCEEDED.

O que dá para acessar

  • Custos: resumos de gasto, detalhamentos, tendências, uso, alocação e forecasts de todos os provedores que você conectou.
  • Recomendações: as economias que a LevelFour encontrou e as decisões sobre elas. Você aceita uma recomendação, rejeita com um motivo ou pede a execução.
  • Economia realizada: quanto cada recomendação concluída economizou, segundo a auditoria da sua fatura.
  • Commitments e anomalias: as suas Reserved Instances e os seus Savings Plans, e os picos de gasto que a LevelFour detectou.
  • Alertas de custo: crie, altere, pause e exclua alertas de budget, de variação de gasto e de commitments, e leia os avisos que eles mandaram.
  • Tags e visões de custo: as tags dos provedores, as virtual tags que a LevelFour atribui pelas suas regras e as visões que você salvou, para consultar depois.

A referência da API traz cada endpoint com os seus parâmetros e o formato da resposta.

Chaves com escopo

Cada API key tem um escopo e, se você quiser, um prazo de validade de 30, 60 ou 90 dias, os dois escolhidos quando você cria a chave no dashboard. A de leitura cobre as leituras, e uma chamada de escrita feita com ela recebe 403 Forbidden. A de leitura e escrita libera também os endpoints que registram uma decisão na LevelFour, como aceitar uma recomendação ou pedir a execução dela. Nenhum dos dois escopos muda nada na sua conta de cloud: pedir a execução inicia o rollout dentro da LevelFour.

Para dashboards, relatórios e checks de CI, use a chave de leitura, e guarde a de leitura e escrita para a automação que registra decisões. Quando essa automação repete um POST, mande o header Idempotency-Key com um UUID versão 4: a API guarda a resposta de sucesso por 24 horas e a devolve a uma nova tentativa com a mesma chave, sem rodar a escrita outra vez.

Webhooks a cada passo de uma economia

Cadastre um endpoint e a LevelFour envia um evento quando uma recomendação muda de estado ou um rollout avança:

recommendation.accepted
Quando dispara
Alguém aceitou uma recomendação de economia
recommendation.rejected
Quando dispara
Alguém rejeitou uma recomendação
recommendation.rejection_reason_added
Quando dispara
Alguém deu o motivo de uma rejeição
recommendation.terms_accepted
Quando dispara
Alguém aceitou os termos para aplicar uma recomendação
recommendation.implementation_method_set
Quando dispara
Alguém escolheu como uma recomendação vai ser entregue
execution.approval_requested
Quando dispara
Um membro mandou uma recomendação para um administrador liberar
optimization.started, optimization.completed, optimization.failed
Quando dispara
Um rollout avançou, terminou ou falhou

Cada requisição leva uma assinatura HMAC-SHA256 no formato Standard Webhooks, com os headers webhook-id, webhook-timestamp e webhook-signature, para o seu endpoint confirmar que foi a LevelFour quem enviou antes de agir. Por padrão, os verificadores dos SDKs recusam um timestamp com mais de cinco minutos de diferença, e a LevelFour reenvia toda entrega que não recebe um 2xx: use o webhook-id para descartar as repetidas. Os webhooks vêm nos planos Scale e Enterprise.

Terminal
curl -X POST https://api.levelfour.ai/api/v1/webhooks/endpoints \
  -H "Authorization: Bearer $LEVELFOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://your-app.com/webhooks/levelfour", "event_types": ["recommendation.accepted", "optimization.completed"]}'

Como começar

Crie uma chave no dashboard, em Settings > API Keys, e veja todos os endpoints na referência da API. Do shell, o l4 api manda uma requisição autenticada para qualquer um deles.

Comece com a LevelFour e leve os seus dados de custo para as suas ferramentas.

Perguntas frequentes

A API da LevelFour consegue mudar recursos na minha cloud?

Não. Nenhuma chave muda nada na sua conta de cloud. A chave de leitura e escrita registra decisões na LevelFour, como aceitar uma recomendação ou pedir a execução dela, e o rollout segue de lá.

Como eu confirmo que um webhook veio da LevelFour?

Confira a assinatura HMAC-SHA256 de cada requisição com o secret de assinatura do seu endpoint, que começa com whsec_. Os headers seguem o formato Standard Webhooks, então qualquer biblioteca de Standard Webhooks faz essa verificação.

Que chave um job de CI deve usar?

Uma chave de leitura. Ela cobre as leituras de que um relatório ou um check precisa, e não consegue registrar decisão nenhuma.

Mais posts

See what LevelFour can save you