API Zenifra

A API da Zenifra permite gerenciar projetos de forma programática: consultar status, alterar configurações, escalar instâncias, obter logs e acompanhar métricas de rede.

Antes de começar

Você precisa de três identificadores antes de chamar os endpoints de projeto:

ValorOnde usarDescrição
API KeyHeader x-api-keyChave do projeto usada para autenticar a chamada
Organization IDHeader x-organization-idOrganização ativa onde o projeto existe
Project IDPath :idID do projeto usado na URL

x-organization-id faz parte do contrato público da API. Em chamadas com x-api-key, a API consegue identificar o projeto pela chave; em chamadas com Authorization: Bearer, o header define a organização ativa e evita falhas de permissão.

Autenticação

Use x-api-key em todos os endpoints desta seção. Inclua também x-organization-id para manter o contexto correto da organização, principalmente em contas com múltiplas organizações ou automações compartilhadas.

Headers

HeaderObrigatórioQuando usarDescrição
x-api-keySimTodas as chamadas de projetoAPI Key do projeto
x-organization-idSimTodas as chamadas documentadasOrganização ativa do projeto
Content-Type: application/jsonSimRequisições com bodyIndica que o payload está em JSON

URL Base

Todas as requisições devem ser feitas para:

https://api.zenifra.com/v1

Exemplo de Requisição

curl -X GET "https://api.zenifra.com/v1/project/{id}/metrics" \
  -H "x-api-key: sua-api-key-aqui" \
  -H "x-organization-id: sua-organization-id"

Endpoints por tarefa

Use esta visão para escolher rapidamente qual página abrir:

TarefaPáginaEndpoints principais
Consultar o projetoInformações do ProjetoGET /project/:id, PATCH /name, PATCH /description
Fazer deploy por imagemAtualizar Imagem de DeployPATCH /project/:id/image
Configurar variáveisVariáveis de AmbienteGET /envs, PATCH /envs
Alterar domínioDomínioPATCH /domain
Parar ou retomarCiclo de VidaPATCH /stop, PATCH /resume
Escalar instânciasInstânciasGET /instances, PATCH /instances
Ver deploys anterioresDeploymentsGET /historic/deployments
Observar métricas e logsMétricas e LogsGET /metrics, GET /logs
Investigar tráfego HTTPMétricas de RedeGET /metrics/network/*
Alterar planoPlanoPATCH /plan
Gerenciar armazenamentoArmazenamentoPATCH /storage/size, GET /storage/usage

Códigos de Status HTTP

CódigoDescrição
200Requisição bem sucedida
400Dados inválidos ou mal formatados
401API Key inválida ou não fornecida
402Plano não permite o recurso solicitado
403Organização ou permissão insuficiente
404Projeto não encontrado
409Operação não permitida no estado atual do projeto
500Erro interno do servidor

Exemplos de Uso

Python

import requests

API_KEY = "sua-api-key"
ORGANIZATION_ID = "sua-organization-id"
BASE_URL = "https://api.zenifra.com/v1"

headers = {
    "x-api-key": API_KEY,
    "x-organization-id": ORGANIZATION_ID,
    "Content-Type": "application/json"
}

# Obter métricas do projeto
response = requests.get(
    f"{BASE_URL}/project/507f1f77bcf86cd799439011/metrics",
    headers=headers
)
print(response.json())

Node.js

const axios = require('axios');

const API_KEY = 'sua-api-key';
const ORGANIZATION_ID = 'sua-organization-id';
const BASE_URL = 'https://api.zenifra.com/v1';

const headers = {
  'x-api-key': API_KEY,
  'x-organization-id': ORGANIZATION_ID,
  'Content-Type': 'application/json'
};

async function getMetrics(projectId) {
  const response = await axios.get(
    `${BASE_URL}/project/${projectId}/metrics`,
    { headers }
  );
  return response.data;
}

getMetrics('507f1f77bcf86cd799439011')
  .then(console.log)
  .catch(console.error);

FAQ

Onde encontro a API Key e o Project ID do meu projeto?

Importante: Tanto a API Key quanto o Project ID são exibidos apenas uma vez, no momento da criação do projeto. Após essa tela inicial, não é mais possível acessá-los pelo console.

Por isso, guarde essas informações em local seguro imediatamente após criar seu projeto.

Posso usar a API Key para qualquer projeto?

Sim, cada projeto possui sua própria API Key. A chave garante acesso apenas ao projeto específico ao qual pertence.

O x-organization-id é sempre necessário?

Na prática, chamadas com x-api-key conseguem localizar o projeto pela própria chave. Ainda assim, inclua x-organization-id em todas as automações: ele deixa explícita a organização ativa, mantém compatibilidade com fluxos que usam token de usuário e reduz erros de permissão em contas com múltiplas organizações.

Os endpoints possuem rate limiting?

Sim, a API possui rate limiting para garantir estabilidade. O limite atual é de 100 requisições por minuto por projeto. Se você exceder o limite, receberá erros 429 (Too Many Requests).

Para limites maiores, entre em contato com o suporte.