Services

A service is the unit Culprit ingests against. Each service has its own HMAC signing secret, and every event posted to the ingest endpoint must carry the service's X-Culprit-Signature header.

When you create a service, the response includes the raw signing secret once in the signing_secret field — save it; subsequent reads only return the prefix. To rotate, call POST /v1/services/{id}/secret_rotations; the previous secret stays valid for the configured grace window so deployed senders can roll over without dropped events.

When to add a new service

One service per logical sender. Most teams start with one service per production application, then split out staging and CI senders as separate services so events from non-prod environments can be filtered or routed differently.

Notes

  • service_name is immutable. Pick a stable identifier; rename moves are not exposed in v1.
  • is_monitored = false pauses ingestion without deleting historical events or incidents — useful for decommissioning.
  • DELETE /v1/services/{id} is owner-only. Admin/member tokens get a 403.

Endpoints