ChangeVault
API Reference

API Overview

The ChangeVault REST API lets you log and query changes programmatically.

Base URL

https://app.changevault.dev/api

Authentication

All API requests (except /api/health) require an API key passed in the x-api-key header.

curl https://app.changevault.dev/api/changes \
  -H "x-api-key: cvk_prod_your_key_here"

See Authentication for how to create an API key.

Rate limiting

API keys are limited to 60 requests per minute using a sliding window. If you exceed this limit you will receive a 429 Too Many Requests response with a Retry-After: 60 header.

Endpoints

MethodPathAuthDescription
GET/api/healthNoneService health check
GET/api/changesAPI keyList changes
GET/api/changes/:idAPI keyGet a specific change
POST/api/changesAPI keyCreate a change
PATCH/api/changes/:idAPI keyUpdate a change
DELETE/api/changes/:idAPI keyDelete a change
GET/api/servicesAPI keyList services
GET/api/services/:idAPI keyGet a specific service
POST/api/servicesAPI keyCreate a service
GET/api/hostsAPI keyList hosts
GET/api/hosts/:idAPI keyGet a specific host
POST/api/hostsAPI keyCreate a host
GET/api/activitySessionList activity log entries

Response format

All responses return JSON. Successful responses include a data key:

{
  "data": { ... }
}

List endpoints also include pagination metadata:

{
  "data": [...],
  "count": 42,
  "page": 1,
  "per_page": 25,
  "total_pages": 2
}

Error responses

Error responses return an error key with an HTTP 4xx or 5xx status:

{
  "error": "Unauthorized"
}
StatusMeaning
400Invalid JSON body
401Missing or invalid API key
403Forbidden — resource belongs to another organization
404Resource not found
409Conflict — duplicate name
422Validation error
429Rate limit exceeded
500Internal server error
503Service degraded

On this page