StatusDashboard
EmailSubscribers

Update email subscriber

Update component selections or admin-verify a pending email subscriber.

View Markdown

PUT /app/subscribers/email/subscribers/{dashboardId}/{email}

Updates service selections for a verified subscriber, or admin-verifies a pending subscriber when verify is true.


Path parameters

ParameterTypeDescription
dashboardIduuidDashboard the subscription belongs to
emailstringNormalized subscriber email address

Request

See API Basics for required headers.

Body

FieldTypeRequiredDescription
componentIdsuuid[]YesComponent IDs on the dashboard
verifybooleanNoSet to true to activate a pending subscriber
lockedbooleanNoAdmin-managed flag. When true, blocks dashboard self-service subscribe/manage but the address still receives event notifications. Omit on update to leave unchanged; defaults to false when verifying pending.

Behavior

Subscriber statusverifycomponentIdslockedResult
Verifiedomitted or falseAny (may be empty)omittedUpdate selections; empty array stops notifications (paused: true)
Verifiedomitted or falseAnytrue or falseUpdate selections and lock state
Verifiedtrue400 — already verified
PendingtrueAt least oneomitted or falseAdmin-verify; no verification email sent
PendingtrueAt least onetrueAdmin-verify as admin-managed (locked)
Pendingomitted or false400 — set verify to true

Pending subscribers already count toward quota; verifying does not consume an additional slot.


Sample request — update verified

curl -X PUT "https://api.statusdashboard.com/app/subscribers/email/subscribers/a1b2c3d4-e5f6-7890-abcd-ef1234567890/alice@acme.com" \
  -H "Authorization: Bearer bcf847abf5c6:def456" \
  -H "Content-Type: application/json" \
  -d '{
    "componentIds": ["b2c3d4e5-f6a7-8901-bcde-f12345678901", "c3d4e5f6-a7b8-9012-cdef-123456789012"]
  }'

Sample request — verify pending

curl -X PUT "https://api.statusdashboard.com/app/subscribers/email/subscribers/a1b2c3d4-e5f6-7890-abcd-ef1234567890/alice@acme.com" \
  -H "Authorization: Bearer bcf847abf5c6:def456" \
  -H "Content-Type: application/json" \
  -d '{
    "componentIds": ["b2c3d4e5-f6a7-8901-bcde-f12345678901"],
    "verify": true
  }'

Sample request — lock subscriber

curl -X PUT "https://api.statusdashboard.com/app/subscribers/email/subscribers/a1b2c3d4-e5f6-7890-abcd-ef1234567890/distro@acme.com" \
  -H "Authorization: Bearer bcf847abf5c6:def456" \
  -H "Content-Type: application/json" \
  -d '{
    "componentIds": ["b2c3d4e5-f6a7-8901-bcde-f12345678901"],
    "locked": true
  }'

Sample response

Status: 200 OK

{
  "subscriber": {
    "email": "alice@acme.com",
    "dashboardId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "dashboardName": "Acme Status",
    "verified": true,
    "verifiedAt": "2026-06-01T14:22:00.000Z",
    "createdAt": "2026-06-01T14:22:00.000Z",
    "updatedAt": "2026-06-01T15:10:00.000Z",
    "componentIds": ["b2c3d4e5-f6a7-8901-bcde-f12345678901", "c3d4e5f6-a7b8-9012-cdef-123456789012"],
    "paused": false,
    "locked": false
  }
}

Error responses

StatusWhen
400Invalid path or body, pending without verify, already verified with verify, or invalid component
403Requires admin or subscriber role, org email feature disabled, or subscriber quota exceeded
404Subscriber or dashboard not found
409Subscriber was already verified (concurrent verify)

On this page

We use cookies

We use essential cookies to keep the site working, and optional analytics cookies to understand how it's used. Read our Privacy Policy.