On-call integrations

Opsgenie-compatible alert API

Move an alert source off Opsgenie by changing its URL and key. The request body stays the same.

Start with a test incident API key. Test incidents never call an email, SMS, voice or chat provider.

Point the source at Transmit

  1. Create an incident API key with incidents:ingest and incidents:write. Send it as Authorization: GenieKey, as Opsgenie clients already do, or as a Bearer key.
  2. Copy the URL for the escalation policy from its on-call configuration page. The configuration and policy in the path decide who is paged; Opsgenie responders, teams and visibility fields in the body are ignored.
  3. Replace the Opsgenie API URL in the source. In Grafana's Opsgenie contact point this is Alert API URL. In Alertmanager's opsgenie_configs, set api_url to the same URL without the final v2/alerts, keeping the trailing slash.
curl -X POST https://api.transmit.dev/v1/integrations/opsgenie/00000000-0000-4000-8000-000000000001/00000000-0000-4000-8000-000000000002/v2/alerts \
  -H "Authorization: GenieKey $TRANSMIT_INCIDENT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"message":"Database unavailable","alias":"database-primary","priority":"P1"}'

What is supported

  • Create: message becomes the title, description the body. priority P1 is critical, P2 high, P3 medium, P4 and P5 low; the default is P3.
  • Deduplicate: repeats with the same alias join the active incident. Without an alias, identical messages share one incident.
  • Close and acknowledge: POST to v2/alerts/ALIAS/close?identifierType=alias or /acknowledge. Closing resolves the incident and cancels pending escalation. Only identifierType=alias is supported.

Responses use Opsgenie's shape and status 202, and add incident_id on create. Alert notes, tags, attachments, heartbeats and the read APIs are not implemented. Tools that only let you choose an Opsgenie region, without a custom URL, cannot be repointed this way; use their webhook option instead.