FuseGuard

Ingest trip

Store a fuse trip and return a tiered alert with optional drift correlation.

POST /v1/fuseguard/trips How-to guide →

Authorizations

Authorization
requiredstring

Bearer API key (dg_live_…) or signed-in session cookie.

Body

application/json

tripId
requiredstring

Stable UUID for idempotent ingest and metering (fuseguard.trip).

reason
string

loop_detected (default) or budget_exceeded.

watchId
string

Hosted watch UUID for drift correlation. Must belong to the authenticated account.

toolName
string

MCP tool or function name active when the fuse tripped.

eventId
string

Optional usage event id; defaults to tripId.

Responses

201 — trip stored. Body includes trip and alert (tiered: full diff, teaser, or CTA).

400 — missing or invalid tripId.

401 — authentication required.

Entitlement

Soft accept: trips are stored without fuseguard_prod. Full alert.diff blocks and snapshot eligibility require the overlay enabled on a paid plan.

curl --request POST \
  --url https://driftguard.org/v1/fuseguard/trips \
  --header 'Authorization: Bearer dg_live_…' \
  --header 'Content-Type: application/json' \
  --data '{
    "tripId": "550e8400-e29b-41d4-a716-446655440000",
    "reason": "loop_detected",
    "watchId": "YOUR_WATCH_UUID",
    "toolName": "stripe_refund"
  }'
import requests

r = requests.post(
    "https://driftguard.org/v1/fuseguard/trips",
    headers={"Authorization": "Bearer dg_live_…"},
    json={
        "tripId": "550e8400-e29b-41d4-a716-446655440000",
        "reason": "loop_detected",
        "watchId": "YOUR_WATCH_UUID",
        "toolName": "stripe_refund",
    },
)
r.raise_for_status()
print(r.json()["alert"])