acked. Docs Open Acked
DocsDevelopers

Alert API

Send, deduplicate, acknowledge, and resolve alerts through HTTP.

Choose an endpoint

EndpointAuthenticationUse
POST /v1/ingest/{token}Source credential in the URLOne sender that always targets the same service.
POST /v1/alertsAuthorization: Bearer ak_…A trusted sender that selects a service ID.
POST /v2/enqueuePagerDuty-compatible routing key in the bodyAn existing PagerDuty Events API v2 sender.

Use a source ingest URL for most monitoring products. Use an API key when one trusted system sends alerts to several services.

A source ingest URL is a credential. Store it as a secret and rotate the source if the URL is exposed.

Send an alert

Create a webhook source on the service and copy its ingest URL. Then send an Acked payload:

curl -X POST "<YOUR-INGEST-URL>" \
  -H "content-type: application/json" \
  -d '{
    "event_key": "disk-full:db-1",
    "title": "Disk 91% full on db-1",
    "body": "/var is filling at 2 percent per hour.",
    "priority": "high"
  }'

A successful request returns 202 Accepted with an alert ID.

{"ok":true,"alert_id":"01KX…","deduped":false,"resolved":false}

Alert fields

FieldRequiredMeaning
service_idAPI key endpointThe service that receives the signal.
titleTriggerA short alert summary.
event_keyResolveA stable identifier for the monitored condition.
bodyNoAdditional incident details.
priorityNocritical, high, medium, low, or info.
urgencyNohigh or low.
sourceNoThe sending system name.
actionNotrigger or resolve.

Priority classifies impact and controls sort order. Urgency controls notification delivery. High urgency requests critical delivery.

When urgency is absent, Info uses low urgency and every other priority uses high urgency.

Send with an API key

Create an alert-ingest API key and include the target service ID.

curl -X POST https://api.acked.dev/v1/alerts \
  -H "Authorization: Bearer ak_YOUR_KEY" \
  -H "content-type: application/json" \
  -d '{
    "service_id": "svc_01hexample",
    "event_key": "disk-full:db-1",
    "title": "Disk 91% full on db-1",
    "priority": "high"
  }'

See API keys for access levels and credential handling.

Deduplicate repeat signals

Signals with the same service and event key join one open alert. Acked increases the duplicate count without paging again.

A higher-priority repeat signal raises the existing alert priority and pages at the new urgency.

If the event key is absent, the service can use the title as a fallback. Provide an explicit key to prevent unrelated alerts with the same title from merging.

Do not include a timestamp in the event key unless every occurrence must open a separate alert.

Resolve with a recovery signal

Send the original event key with action: "resolve" when the condition clears. A resolve request does not require a title.

curl -X POST https://api.acked.dev/v1/alerts \
  -H "Authorization: Bearer ak_YOUR_KEY" \
  -H "content-type: application/json" \
  -d '{
    "service_id": "svc_01hexample",
    "event_key": "disk-full:db-1",
    "action": "resolve"
  }'

Resolving a closed or unknown condition succeeds without opening an alert.

Acknowledge or resolve by alert ID

An alert-ingest API key can call these idempotent routes:

PUT /v1/alerts/{alert_id}/ack
PUT /v1/alerts/{alert_id}/resolve

Repeated requests return the current result without repeating the state change.

Handle responses

StatusMeaning
202Acked accepted the signal. A buffered response will be processed asynchronously.
400The request is malformed. Read the response error and correct the payload.
401The credential is invalid or revoked.
403The credential does not permit the operation.
404The requested service or alert is unavailable to the credential.

A response with "buffered":true means the edge accepted the signal for later processing. Store the alert ID for audit and support. Do not resend only because the response is buffered.

Send vendor payloads

The examples on this page use Acked's native JSON format. For a monitoring tool with its own payload format, use its supported adapter or a templated source. See Connect sources.