CLI Reference
The PingSLA CLI (pingsla) lets you manage your workspace from the command line — ideal for DevOps workflows, CI/CD pipelines, and scripting.
Installation
npm install -g @pingsla/cli
# or
pnpm add -g @pingsla/cli
Requires Node.js ≥ 18.
Authentication
pingsla auth login
# Prompts for API key
# Or set via environment variable (preferred for CI/CD)
export PINGSLA_API_KEY=psk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Configuration
The CLI reads configuration from (in order of precedence):
PINGSLA_API_KEYenvironment variable--api-keyflag~/.pingsla/config.json(set bypingsla auth login)
Commands Reference
Monitors
# List all monitors
pingsla monitors list
pingsla monitors list --status down
pingsla monitors list --output json
# Get a specific monitor
pingsla monitors get mon_xxxxxxxx
# Create a monitor from a JSON file
pingsla monitors create --file monitor.json
# Pause / Resume
pingsla monitors pause mon_xxxxxxxx
pingsla monitors resume mon_xxxxxxxx
# Delete
pingsla monitors delete mon_xxxxxxxx
# Watch real-time status
pingsla monitors watch
Incidents
# List open incidents
pingsla incidents list
pingsla incidents list --status open
pingsla incidents list --output json
# Get incident detail
pingsla incidents get inc_xxxxxxxx
# Acknowledge
pingsla incidents acknowledge inc_xxxxxxxx
# Resolve
pingsla incidents resolve inc_xxxxxxxx
Status Pages
# List status pages
pingsla status-pages list
# Get public status
pingsla status-pages status your-slug
# Post a manual incident
pingsla status-pages incident create --page sp_xxxxxxxx --title "Investigating API issues"
Workspace
# Show workspace info
pingsla workspace info
# List team members
pingsla workspace members
# Show API key info
pingsla workspace keys
Monitor Config File Format
Create monitors from declarative YAML or JSON files:
# monitor.yaml
name: Production API Health
type: http
url: https://api.yourapp.com/health
method: GET
interval: 60
timeout: 10
expectedStatusCode: 200
alertPolicyId: pol_xxxxxxxx
pingsla monitors create --file monitor.yaml
CI/CD Usage
Pause monitors during deployments to suppress false alerts:
# In your deploy script
pingsla monitors pause mon_xxxxxxxx --reason "Deployment in progress"
./deploy.sh
pingsla monitors resume mon_xxxxxxxx
In GitHub Actions:
- name: Pause monitors
run: pingsla monitors pause ${{ vars.MONITOR_ID }}
env:
PINGSLA_API_KEY: ${{ secrets.PINGSLA_API_KEY }}
- name: Deploy
run: ./deploy.sh
- name: Resume monitors
if: always()
run: pingsla monitors resume ${{ vars.MONITOR_ID }}
env:
PINGSLA_API_KEY: ${{ secrets.PINGSLA_API_KEY }}
Output Formats
pingsla monitors list --output table # Default: formatted table
pingsla monitors list --output json # Machine-readable JSON
pingsla monitors list --output csv # CSV for spreadsheet export
Global Flags
| Flag | Description |
|---|---|
--api-key | Override API key for this command |
--workspace | Target a specific workspace ID |
--output | Output format: table, json, csv |
--quiet | Suppress non-essential output |
--debug | Show HTTP request/response details |