Skip to content

Developer Guide

For Developers and API Integrators

Complete API reference for building custom integrations and applications with the Overwatch platform.

  • Base URL: https://your-organization.overwatch.com/api/v1
  • Protocol: HTTPS only
  • Format: JSON
  • Authentication: Bearer tokens (JWT) or API keys
  • Versioning: URL path versioning (/api/v1/)

Swagger UI

Live API testing and exploration interface.

Access: /docs on your instance

ReDoc

Alternative documentation view with better organization.

Access: /redoc on your instance

OpenAPI Spec

Machine-readable API specification for tooling.

Access: /openapi.json

Login and Obtain Token:

Terminal window
curl -X POST "https://your-org.overwatch.com/api/v1/auth/login" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "username=user@company.com&password=your-password"

Response:

{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"token_type": "bearer",
"expires_in": 3600
}

Use Token:

Terminal window
curl -X GET "https://your-org.overwatch.com/api/v1/incidents" \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."

Create an Incident:

Terminal window
curl -X POST "https://your-org.overwatch.com/api/v1/incidents" \
-H "Authorization: Bearer your-token" \
-H "Content-Type: application/json" \
-d '{
"title": "Database Connection Timeout",
"severity": "high",
"description": "Multiple services experiencing database connection timeouts"
}'

List Incidents with Filtering:

Terminal window
curl -X GET "https://your-org.overwatch.com/api/v1/incidents?severity=critical,high&status=in_progress&limit=25" \
-H "Authorization: Bearer your-token"

Execute a Procedure:

Terminal window
curl -X POST "https://your-org.overwatch.com/api/v1/procedures/{procedure_id}/execute" \
-H "Authorization: Bearer your-token" \
-H "Content-Type: application/json" \
-d '{
"context": {
"incident_id": "incident-uuid",
"urgency": "high"
}
}'

Incident Management

Complete incident lifecycle management with AI-powered suggestions.

View API →

Procedure Automation

Create, execute, and track runbook procedures with approval workflows.

View API →

AI Search

Semantic search across incidents, procedures, and knowledge base.

View API →

Real-time Updates

WebSocket connections for live collaboration and monitoring.

View API →

Analytics & Reporting

Performance metrics, team analytics, and custom reports.

View API →

Integration Management

Connect monitoring platforms and external services.

View API →

Core Resources:

EntityDescriptionAPI Endpoint
OrganizationsMulti-tenant organization management/api/v1/organizations
UsersUser profiles, authentication, permissions/api/v1/users
IncidentsComplete incident lifecycle management/api/v1/incidents
ProceduresRunbook creation and execution/api/v1/procedures
ExecutionsProcedure execution tracking/api/v1/executions
IntegrationsExternal service configuration/api/v1/integrations
AnalyticsPerformance metrics and reporting/api/v1/analytics

Installation:

Terminal window
npm install @overwatch/api-client

Basic Usage:

const { OverwatchClient } = require('@overwatch/api-client');
const client = new OverwatchClient({
baseURL: 'https://your-org.overwatch.com',
apiKey: 'your-api-key'
});
// Create incident
const incident = await client.incidents.create({
title: 'Database Connection Issues',
severity: 'high'
});
// Real-time updates
client.subscribe('incidents', (event) => {
console.log('Incident update:', event);
});

Full SDK Docs →

  • Postman Collection: Download from platform
  • Insomnia Collection: API collection available
  • OpenAPI Generator: Generate clients from /openapi.json

Receive alerts from monitoring platforms and automatically create incidents:

Terminal window
# Incoming webhook from Datadog
curl -X POST "https://your-org.overwatch.com/api/v1/webhooks/datadog" \
-H "Content-Type: application/json" \
-d '{
"alert_id": "12345",
"alert_name": "High Error Rate",
"severity": "critical",
"metrics": {"error_rate": 7.2}
}'

View Integration Guide →

Create incidents from deployment failures and execute rollback procedures:

Terminal window
# Create incident from pipeline failure
curl -X POST "/api/v1/incidents" \
-H "X-API-Key: ci-cd-key" \
-d '{
"title": "Deployment Failed: API v2.1.5",
"severity": "high",
"context": {"pipeline_id": "pipeline-123"}
}'
# Execute rollback procedure
curl -X POST "/api/v1/procedures/rollback-deployment/execute" \
-H "X-API-Key: ci-cd-key" \
-d '{"context": {"deployment_version": "v2.1.5"}}'

Sync incidents with external ITSM systems bidirectionally:

Terminal window
# Configure outbound webhook to ITSM
curl -X POST "/api/v1/webhooks/outbound" \
-H "Authorization: Bearer your-token" \
-d '{
"name": "ITSM Sync",
"url": "https://itsm.company.com/api/tickets",
"events": ["incident.created", "incident.resolved"]
}'
  • Interactive Users: 1,000 requests per hour
  • API Keys: 5,000 requests per hour (configurable)
  • Webhook Endpoints: 10,000 requests per hour
  • Search Queries: 500 AI searches per hour

Based on subscription plan and usage quotas.

Rate Limit Headers:

X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 995
X-RateLimit-Reset: 1696768800
X-RateLimit-Window: 3600

View Error Handling →

Authentication

JWT tokens, API keys, SSO, and permission models.

Learn More →

Incidents API

Create, manage, and resolve incidents with AI suggestions.

Learn More →

Procedures API

Runbook management and execution with approval workflows.

Learn More →

WebSocket API

Real-time updates and collaboration features.

Learn More →

Error Handling

Error responses, retry logic, and rate limiting.

Learn More →

  1. Use API Keys for Services: Long-lived integrations should use API keys
  2. JWT for User Sessions: Interactive applications use JWT with refresh tokens
  3. Scope Permissions: Grant minimum necessary permissions
  4. Rotate Keys: Regularly rotate API keys and monitor usage
  1. Use Filtering: Apply filters at API level to reduce data transfer
  2. Implement Pagination: Use limit and offset for large result sets
  3. Cache Responses: Cache frequently accessed data with appropriate TTL
  4. Batch Operations: Use bulk endpoints when available
  1. Implement Retry Logic: Exponential backoff for transient failures
  2. Monitor Rate Limits: Check rate limit headers and queue requests
  3. Handle 429 Responses: Respect Retry-After headers
  4. Log Request IDs: Include request_id in error reports
  1. Use WebSocket for Updates: Subscribe to real-time events instead of polling
  2. Handle Reconnections: Implement automatic reconnection logic
  3. Filter Subscriptions: Subscribe only to needed events
  4. Monitor Connection Health: Ping/pong to detect dead connections
  • Swagger UI: /docs - Interactive API testing
  • ReDoc: /redoc - Alternative documentation view
  • OpenAPI Spec: /openapi.json - Machine-readable spec

For API questions and integration support, contact support@overwatch-observability.com.


Related Documentation: