Files
Pulse/docs/API.md
rcourtman 5e2311035b chore: Fix lint warnings in SetupWizard and add AI API docs
- Fixed unused variables in wizard components
- Fixed invalid aiEnabled field in FeaturesStep (AI uses separate API)
- Added AI endpoints section to API.md
2025-12-13 15:36:40 +00:00

4.2 KiB

🔌 Pulse API Reference

Pulse provides a comprehensive REST API for automation and integration.

Base URL: http://<your-pulse-ip>:7655/api

🔐 Authentication

All API requests require authentication via one of the following methods:

1. API Token (Recommended) Pass the token in the X-API-Token header.

curl -H "X-API-Token: your-token" http://localhost:7655/api/health

2. Bearer Token

curl -H "Authorization: Bearer your-token" http://localhost:7655/api/health

3. Session Cookie Standard browser session cookie (used by the UI).


📡 Core Endpoints

System Health

GET /api/health Check if Pulse is running.

{ "status": "healthy", "uptime": 3600 }

System State

GET /api/state Returns the complete state of your infrastructure (Nodes, VMs, Containers, Storage, Alerts). This is the main endpoint used by the dashboard.

Version Info

GET /api/version Returns version, build time, and update status.


🖥️ Nodes & Config

List Nodes

GET /api/config/nodes

Add Node

POST /api/config/nodes

{
  "type": "pve",
  "name": "Proxmox 1",
  "host": "https://192.168.1.10:8006",
  "user": "root@pam",
  "password": "password"
}

Test Connection

POST /api/config/nodes/test-connection Validate credentials before saving.


📊 Metrics & Charts

Chart Data

GET /api/charts?range=1h Returns time-series data for CPU, Memory, and Storage. Ranges: 1h, 24h, 7d, 30d

Storage Stats

GET /api/storage/ Detailed storage usage per node and pool.

Backup History

GET /api/backups/unified Combined view of PVE and PBS backups.


🔔 Notifications

Send Test Notification

POST /api/notifications/test Triggers a test alert to all configured channels.

Manage Webhooks

  • GET /api/notifications/webhooks
  • POST /api/notifications/webhooks
  • DELETE /api/notifications/webhooks/<id>

🛡️ Security

List API Tokens

GET /api/security/tokens

Create API Token

POST /api/security/tokens

{ "name": "ansible-script", "scopes": ["monitoring:read"] }

Revoke Token

DELETE /api/security/tokens/<id>


⚙️ System Settings

Get Settings

GET /api/config/system Retrieve current system configuration.

Toggle Mock Mode

POST /api/system/mock-mode Enable or disable mock data generation (dev/demo only).


🔑 OIDC / SSO

Get OIDC Config

GET /api/security/oidc Retrieve current OIDC provider settings.

Update OIDC Config

POST /api/security/oidc Configure OIDC provider details (Issuer, Client ID, etc).

Login

GET /api/oidc/login Initiate OIDC login flow.


🤖 Pulse AI (New in 5.0)

Get AI Settings

GET /api/settings/ai Returns current AI configuration (providers, models, patrol status).

Update AI Settings

PUT /api/settings/ai Configure AI providers, API keys, and preferences.

Chat

POST /api/ai/chat Send a message to the AI assistant.

{ "message": "What VMs are using the most CPU?", "context": ["vm-100", "vm-101"] }

Patrol Status

GET /api/ai/patrol/status Get current patrol status and recent findings.

Patrol Findings

GET /api/ai/patrol/findings List all patrol findings with severity and recommendations.

Cost Tracking

GET /api/ai/cost?period=30d Get AI usage statistics and costs.


🤖 Agent Endpoints

GET /download/pulse-agent Downloads the unified agent binary for the current platform.

The unified agent combines host, Docker, and Kubernetes monitoring. Use --enable-docker or --enable-kubernetes to enable additional metrics.

See UNIFIED_AGENT.md for installation instructions.

Legacy Agents (Deprecated)

GET /download/pulse-host-agent - Deprecated, use pulse-agent GET /download/pulse-docker-agent - Deprecated, use pulse-agent --enable-docker

Submit Reports

POST /api/agents/host/report - Host metrics POST /api/agents/docker/report - Docker container metrics POST /api/agents/kubernetes/report - Kubernetes cluster metrics


Note

: This is a summary of the most common endpoints. For a complete list, inspect the network traffic of the Pulse dashboard or check the source code in internal/api/router.go.