A comprehensive Python SDK for the Pingera monitoring platform API, built using OpenAPI Generator for full type safety and complete API coverage.
- Complete API Coverage: Auto-generated from the official OpenAPI specification
- Type Safety: Full type hints and Pydantic model validation
- Easy Authentication: Support for Bearer tokens and API keys
- Comprehensive: All Pingera API endpoints supported:
- Status Pages Management
- Status Pages (Components & Incidents)
- Monitoring Checks
- Heartbeats
- Alerts
- On-demand Checks
- Unified Results
pip install pingera-sdkOr install from source:
git clone https://github.com/pingera/pingera-sdk.git
cd pingera-sdk
pip install -e .Set your API token via environment variable:
export PINGERA_API_KEY="your_api_token"from pingera import ApiClient, Configuration
from pingera.api import ChecksApi, StatusPagesComponentsApi
# Configure the client
configuration = Configuration()
configuration.host = "https://api.pingera.ru"
configuration.api_key['apiKeyAuth'] = "your_api_token"
# Create API client
with ApiClient(configuration) as api_client:
# Initialize API instances
checks_api = ChecksApi(api_client)
components_api = StatusPagesComponentsApi(api_client)
# List status pages
status_pages_api = StatusPagesApi(api_client)
pages = status_pages_api.v1_pages_get()
print(f"Found {len(pages.data)} status pages")
# List monitoring checks
checks = checks_api.v1_checks_get(page=1, page_size=10)
print(f"Found {len(checks.checks)} checks")
# List components for a status page
components = components_api.v1_pages_page_id_components_get("your_page_id")
print(f"Found {len(components.data)} components")The SDK provides access to all Pingera API endpoints through these API classes:
from pingera.api import (
StatusPagesApi, # Manage status pages
StatusPagesComponentsApi, # Manage status page components
StatusPagesIncidentsApi, # Manage incidents and maintenance
ChecksApi, # Manage monitoring checks
AlertsApi, # Manage alerts and notifications
HeartbeatsApi, # Manage heartbeat monitoring
OnDemandChecksApi, # Execute checks on-demand
ChecksUnifiedResultsApi # Get unified check results
)All API requests and responses use typed Pydantic models:
from pingera.models import (
Component,
IncidentCreate,
IncidentUpdateCreate,
ExecuteCustomCheckRequest
)
# Create a new component
new_component = Component(
name="API Server",
description="Main API endpoint",
status="operational"
)
# Create an incident
new_incident = IncidentCreate(
name="Database Connectivity Issues",
body="We are investigating connectivity issues",
status="investigating",
impact="major"
)Check the examples/ directory for comprehensive usage examples:
basic_usage.py- Basic client setup and operationsstatus_pages_management.py- Status pages CRUD operationscomponent_management.py- Component CRUD operationsincident_management.py- Incident and maintenance managementcomprehensive_sdk_usage.py- Comprehensive API demonstrationon_demand_synthetic_check.py- Execute synthetic check with playwright script and get the result
| Variable | Description |
|---|---|
PINGERA_API_KEY |
Your Pingera API token |
PINGERA_PAGE_ID |
Default page ID for status page operations |
from pingera import Configuration
configuration = Configuration()
configuration.host = "https://api.pingera.ru"
# API token authentication
configuration.api_key['apiKeyAuth'] = "your_api_token"
# Optional: configure timeouts, retries, etc.
configuration.timeout = 30The SDK uses proper exception handling:
from pingera.exceptions import ApiException
try:
checks = checks_api.v1_checks_get()
except ApiException as e:
print(f"API Error [{e.status}]: {e.reason}")
if e.body:
print(f"Details: {e.body}")If the Pingera API specification changes, you can regenerate the client:
# Install the OpenAPI generator
pip install openapi-generator-cli[jdk4py]
# Regenerate the client
python generate_client.pypip install -e ".[dev]"
pytest# Set your credentials
export PINGERA_API_KEY="your_api_token"
export PINGERA_PAGE_ID="your_page_id"
# Run examples
python examples/basic_usage.py
python examples/component_management.py
python examples/incident_management.pyFor detailed API documentation, visit:
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Run the test suite
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
- π§ Email: privet@pingera.ru
- π Documentation: docs.pingera.ru
- π Website: pingera.ru
- π Status: status.pingera.ru