Skip to main content

DevHelm SDK for Python — typed client for monitors, incidents, alerting, and more

Project description

DevHelm Python SDK

Typed Python client for the DevHelm monitoring API — monitors, incidents, alerting, and more.

Installation

pip install devhelm

Quick Start

from devhelm import Devhelm

client = Devhelm(
    token="your-api-token",
    org_id="your-org-id",
    workspace_id="your-workspace-id",
)

# List all monitors
monitors = client.monitors.list()
for m in monitors:
    print(f"{m.name}{m.type}")

# Create a monitor
monitor = client.monitors.create({
    "name": "My API Health",
    "type": "HTTP",
    "config": {"url": "https://api.example.com/health", "method": "GET"},
    "frequencySeconds": 60,
    "regions": ["us-east"],
})

# Get a single monitor
monitor = client.monitors.get(monitor.id)

# Pause / resume
client.monitors.pause(monitor.id)
client.monitors.resume(monitor.id)

# Delete
client.monitors.delete(monitor.id)

Configuration

from devhelm import Devhelm

client = Devhelm(
    token="your-api-token",           # required (or DEVHELM_API_TOKEN env var)
    org_id="1",                        # required (or DEVHELM_ORG_ID env var)
    workspace_id="1",                  # required (or DEVHELM_WORKSPACE_ID env var)
    base_url="https://api.devhelm.io", # optional, defaults to production
)

Environment variables are used as fallbacks when constructor arguments are not provided:

Parameter Env Variable
token DEVHELM_API_TOKEN
org_id DEVHELM_ORG_ID
workspace_id DEVHELM_WORKSPACE_ID

Resources

The client exposes the following resource modules:

Resource Description
client.monitors HTTP, DNS, TCP, ICMP, MCP, and Heartbeat monitors
client.incidents Manual and auto-detected incidents
client.alert_channels Slack, email, webhook, and other alert channels
client.notification_policies Routing rules for alerts
client.environments Environment grouping (prod, staging, etc.)
client.secrets Encrypted secrets for monitor auth
client.tags Organize monitors with tags
client.resource_groups Logical resource groups
client.webhooks Outgoing webhook endpoints
client.api_keys API key management
client.dependencies Service dependency tracking
client.deploy_lock Deploy lock for safe deployments
client.status Dashboard overview

Pagination

List methods auto-paginate by default. For manual page control:

# Auto-paginate (fetches all pages)
all_monitors = client.monitors.list()

# Manual page control
page = client.monitors.list_page(page=0, size=20)
print(page.data)       # list of monitors
print(page.has_next)   # True if more pages
print(page.has_prev)   # True if previous page exists

# Cursor pagination (for check results)
results = client.monitors.results(monitor_id, limit=50)
print(results.data)
print(results.next_cursor)
print(results.has_more)

Error Handling

from devhelm import Devhelm, DevhelmError, AuthError

client = Devhelm(token="bad-token", org_id="1", workspace_id="1")

try:
    client.monitors.list()
except AuthError as e:
    print(f"Auth failed: {e.message} (HTTP {e.status})")
except DevhelmError as e:
    print(f"API error [{e.code}]: {e.message}")

Error codes: AUTH, NOT_FOUND, CONFLICT, VALIDATION, API.

Development

# Install dependencies
uv sync

# Run tests
make test

# Lint + format check
make lint

# Type check
make typecheck

# Regenerate types from OpenAPI spec
make typegen

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

devhelm-0.1.1.tar.gz (161.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

devhelm-0.1.1-py3-none-any.whl (49.2 kB view details)

Uploaded Python 3

File details

Details for the file devhelm-0.1.1.tar.gz.

File metadata

  • Download URL: devhelm-0.1.1.tar.gz
  • Upload date:
  • Size: 161.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for devhelm-0.1.1.tar.gz
Algorithm Hash digest
SHA256 1de7ada60530b069ef0d7a10d006f83942ae16ec357b4a9ed37b581b4269e692
MD5 bd522dbdf6bd0cb8157572c15476ee79
BLAKE2b-256 fc189b8f8e8fad633d2c381c2b04401e3045c3c0f042ba40596103f08bfb5e0b

See more details on using hashes here.

File details

Details for the file devhelm-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: devhelm-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 49.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for devhelm-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e5169bf4b6ef1b42cdfa8aaa8bdbe014fd3be9e29ae46d6a92f8fa3d1271599d
MD5 7484028e479b0b52fe2eb6aba17d0ca3
BLAKE2b-256 b1a052076bd7cfc02e575dbd7e394a268dfc7a1e35247d2a78439f475456e21f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page