REST API

Changes

Overview

The Changes API lets you log deployments, configuration changes, and other changes to your services. Changes are automatically correlated with incidents, giving your team instant visibility into what changed before an outage.

Endpoints

Method Endpoint Description
POST /api/v1/changes Log a change (org-level)
GET /api/v1/changes List changes with filters
POST /api/v1/services/{id}/changes Log a change for a specific service
GET /api/v1/services/{id}/changes List changes for a service

All endpoints require an API key with the appropriate scope. See Authentication.

Log a Change

POST /api/v1/changes
POST /api/v1/services/{serviceId}/changes

Request Body

Field Type Required Description
summary string Yes Short description of the change
service_id string No Service ID (required for org-level endpoint if targeting a service)
change_type string No One of: deployment, config_change, infrastructure, code, database_migration, feature_flag, rollback, scaling, security_patch, other. Default: deployment
description string No Detailed description
source string No Source system (e.g., github_actions, jenkins, terraform). Default: api
commit_sha string No Git commit SHA
commit_message string No Full commit message
branch string No Git branch name
pr_number string No Pull request number
pr_url string No Pull request URL
pipeline_url string No CI/CD pipeline URL
environment string No Target environment. Default: production
risk_level string No One of: low, medium, high, critical. Default: low
changed_by string No Name or email of the person who made the change
external_id string No ID in the external system
tags string[] No Freeform tags

Example Request

curl -X POST "https://app.alert24.net/api/v1/services/svc_abc123/changes" \
  -H "Authorization: Bearer ak_live_xxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "summary": "Deploy v2.1.0 to production",
    "change_type": "deployment",
    "description": "Release includes new billing module and bug fixes",
    "commit_sha": "abc1234def5678",
    "branch": "main",
    "environment": "production",
    "risk_level": "medium",
    "changed_by": "jane.doe",
    "tags": ["billing", "release"]
  }'

Example Response

{
  "data": {
    "id": "chg_abc123",
    "service_id": "svc_abc123",
    "service_name": "API Gateway",
    "change_type": "deployment",
    "summary": "Deploy v2.1.0 to production",
    "description": "Release includes new billing module and bug fixes",
    "source": "api",
    "commit_sha": "abc1234def5678",
    "branch": "main",
    "environment": "production",
    "risk_level": "medium",
    "changed_by": "jane.doe",
    "tags": ["billing", "release"],
    "created_at": "2026-03-30T15:30:00.000Z"
  }
}

List Changes

GET /api/v1/changes
GET /api/v1/services/{serviceId}/changes

Query Parameters

Parameter Type Description
service_id string Filter by service (org-level endpoint only)
change_type string Filter by change type
source string Filter by source
environment string Filter by environment
start_date ISO 8601 Changes after this time
end_date ISO 8601 Changes before this time
limit integer Max results (1-100, default 25)
offset integer Pagination offset

Example Request

curl "https://app.alert24.net/api/v1/changes?change_type=deployment&environment=production&limit=10" \
  -H "Authorization: Bearer ak_live_xxxxx"

Example Response

{
  "data": [
    {
      "id": "chg_abc123",
      "service_id": "svc_abc123",
      "service_name": "API Gateway",
      "change_type": "deployment",
      "summary": "Deploy v2.1.0 to production",
      "source": "github_actions",
      "commit_sha": "abc1234",
      "branch": "main",
      "environment": "production",
      "risk_level": "medium",
      "changed_by": "jane.doe",
      "tags": ["billing"],
      "created_at": "2026-03-30T15:30:00.000Z"
    }
  ],
  "meta": {
    "total": 1,
    "limit": 10,
    "offset": 0,
    "has_more": false
  }
}

Webhook Endpoint

For automated integrations (GitHub, GitLab, CI/CD), you can also send changes via the webhook receiver endpoint:

POST /api/webhooks/incoming/changes/{token}

This endpoint accepts any JSON payload and auto-detects the source (GitHub, GitLab, AWS CloudTrail, Azure Monitor, GCP Audit Logs). No API key is needed — authentication is via the unique token in the URL.

See Change Management for setup instructions for each provider.