Skip to content
API reference · Webhooks

Rotate the signing secret

POSThttps://fomodata.dev/v1/webhooks/{id}/rotate-secret
Scopes:webhooks:writeRate class:standardFlag:WEBHOOKS_ENABLED

Issues a new whsec_… secret, returned once. It takes effect immediately; the previous secret stops signing.

Example request

curl -X POST 'https://fomodata.dev/v1/webhooks/wh_8Tq3NkVz1LmB5xRc7pYd2F/rotate-secret' \
  -H "Authorization: Bearer $FOMODATA_API_KEY"

Parameters

Path parameters
idstringrequired
e.g. wh_8Tq3NkVz1LmB5xRc7pYd2F

Response

200 The webhook with its new secret (shown once)

application/jsonWebhookWithSecret
  • objectenumrequired"webhook"
  • idstringrequired
  • urlstring (uri)required
  • descriptionstring | nullrequired
  • eventsarray<EventType>required
  • filtersobjectrequired+ 3 child attributes
    • tokenarray<string>Token refs ($SYMBOL, address or tk_ id).
    • handlearray<string>
    • chainarray<string>
  • statusenumrequired"enabled""disabled""disabled_failing"
  • secret_prefixstringrequired
  • livemodebooleanrequired
  • created_atstring (date-time)required
  • updated_atstring (date-time)required
  • secretstringrequiredSigning secret — shown ONLY in the create/rotate response.
200 · example
{
  "object": "webhook",
  "id": "wh_8Tq3NkVz1LmB5xRc7pYd2F",
  "url": "https://example.com",
  "description": "string",
  "events": [
    "thesis.created"
  ],
  "filters": {
    "token": [
      "string"
    ],
    "handle": [
      "string"
    ],
    "chain": [
      "string"
    ]
  },
  "status": "enabled",
  "secret_prefix": "whsec_Ab12",
  "livemode": true,
  "created_at": "2026-10-07T10:04:12.000Z",
  "updated_at": "2026-10-07T10:04:12.000Z",
  "secret": "string"
}

Errors

StatusWhen
401Missing, invalid, revoked or expired API key
403Insufficient scope, live access not approved, or history limit
404Not found (or feature disabled)
429Rate limit or quota exceeded

All errors use the standard envelope. See error codes for every code value.