O ClickStack disponibiliza uma API REST para gerenciar dashboards, alertas e fontes de dados de forma programática. A API está disponível tanto em implantações do Managed ClickStack (ClickHouse Cloud) quanto do ClickStack open source, embora os endpoints e a autenticação sejam diferentes em cada caso.
Documentação de referência da API
Para o Managed ClickStack, a API é acessada por meio da ClickHouse Cloud API. Os endpoints do ClickStack estão disponíveis na referência da Cloud API.
Os seguintes endpoints estão disponíveis:
| Recurso | Operações |
|---|---|
| Dashboards | Criar, listar, buscar, atualizar e excluir dashboards |
| Alerts | Criar, listar, buscar, atualizar e excluir alertas |
| Sources | Listar fontes de dados |
Para o Open Source ClickStack, a especificação completa da API é mantida no repositório do HyperDX e pode ser consultada de forma interativa ou baixada como uma especificação OpenAPI:
Os seguintes endpoints estão disponíveis:
| Recurso | Operações |
|---|---|
| Dashboards | Criar, listar, buscar, atualizar e excluir dashboards |
| Alerts | Criar, listar, buscar, atualizar e excluir alertas |
| Charts | Consultar dados de séries temporais (somente POST) |
| Sources | Listar fontes de dados |
| Webhooks | Listar webhooks |
Autenticação
O Managed ClickStack usa a API key do ClickHouse Cloud para autenticação por meio de HTTP Basic Authentication. Para criar e gerenciar API keys, consulte Managing API keys.
Inclua o ID da chave e o segredo usando HTTP Basic Authentication:
export KEY_ID=<your_key_id>
export KEY_SECRET=<your_key_secret>
curl --user $KEY_ID:$KEY_SECRET \
https://api.clickhouse.cloud/v1/organizations/<ORG_ID>/services/<SERVICE_ID>/clickstack/dashboardsO ClickStack Open Source usa um Bearer token para autenticação por meio de uma Personal API Access Key.
Para obter uma API key:
- Abra o HyperDX na URL do seu ClickStack (por exemplo, http://localhost:8080)
- Crie uma conta ou faça login, se necessário
- Vá para Team Settings → API Keys
- Copie sua Personal API Access Key

O servidor da API é executado na porta 8000 por padrão (separada da UI na porta 8080). Ao usar a Docker image all-in-one, certifique-se de mapear essa porta explicitamente:
docker run -p 8080:8080 -p 8000:8000 -p 4317:4317 -p 4318:4318 docker.hyperdx.io/hyperdx/hyperdx-all-in-oneInclua a chave no cabeçalho Authorization:
curl -H "Authorization: Bearer <YOUR_API_KEY>" \
http://localhost:8000/api/v2/dashboardsURL base e formato da solicitação
Todas as solicitações da API do Managed ClickStack são enviadas para a ClickHouse Cloud API:
https://api.clickhouse.cloud/v1/organizations/<ORG_ID>/services/<SERVICE_ID>/clickstack/<resource>Você pode encontrar seu Organization ID no console do ClickHouse Cloud, em Organization → Organization details. Seu Service ID fica visível na URL do serviço ou na página de detalhes do serviço.
Exemplo: Listar dashboards
curl --user $KEY_ID:$KEY_SECRET \
https://api.clickhouse.cloud/v1/organizations/<ORG_ID>/services/<SERVICE_ID>/clickstack/dashboardsExemplo: Criar um alerta
curl -X POST --user $KEY_ID:$KEY_SECRET \
-H "Content-Type: application/json" \
-d '{
"dashboardId": "<DASHBOARD_ID>",
"tileId": "<TILE_ID>",
"threshold": 100,
"interval": "1h",
"source": "tile",
"thresholdType": "above",
"channel": {
"type": "webhook",
"webhookId": "<WEBHOOK_ID>"
},
"name": "Error Spike Alert",
"message": "Error rate exceeded 100 in the last hour"
}' \
https://api.clickhouse.cloud/v1/organizations/<ORG_ID>/services/<SERVICE_ID>/clickstack/alertsTodas as solicitações da API do Open Source ClickStack são enviadas para o servidor de API do HyperDX na porta 8000:
http://<YOUR_HYPERDX_HOST>:8000/api/v2/<resource>Por exemplo, em uma implantação local padrão:
http://localhost:8000/api/v2/dashboardsExemplo: Listar dashboards
curl -H "Authorization: Bearer <YOUR_API_KEY>" \
http://localhost:8000/api/v2/dashboardsExemplo: Criar um alerta
curl -X POST \
-H "Authorization: Bearer <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"dashboardId": "<DASHBOARD_ID>",
"tileId": "<TILE_ID>",
"threshold": 100,
"interval": "1h",
"source": "tile",
"thresholdType": "above",
"channel": {
"type": "webhook",
"webhookId": "<WEBHOOK_ID>"
},
"name": "Error Spike Alert",
"message": "Error rate exceeded 100 in the last hour"
}' \
http://localhost:8000/api/v2/alertsExemplo: Consultar dados de séries de gráficos
curl -X POST \
-H "Authorization: Bearer <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"startTime": 1647014400000,
"endTime": 1647100800000,
"granularity": "1h",
"series": [
{
"sourceId": "<SOURCE_ID>",
"aggFn": "count",
"where": "SeverityText:error",
"groupBy": []
}
]
}' \
http://localhost:8000/api/v2/charts/series