Skip to main content
GET
/
api
/
public
/
v1
/
webhooks
curl -sS https://app.opentrain.ai/api/public/v1/webhooks \
  -H "Authorization: Bearer $OT_API_TOKEN"
{
  "webhooks": [
    {
      "id": "<WEBHOOK_ID>",
      "url": "https://example.com/hooks/opentrain",
      "eventTypes": ["proposal.received", "message.received", "approval.confirmed"],
      "status": "ACTIVE",
      "createdAt": "2026-06-12T10:00:00.000Z",
      "disabledAt": null,
      "disabledReason": null
    },
    {
      "id": "<WEBHOOK_ID_2>",
      "url": "https://example.com/hooks/old-endpoint",
      "eventTypes": ["payment.pending"],
      "status": "DISABLED",
      "createdAt": "2026-05-30T08:00:00.000Z",
      "disabledAt": "2026-06-10T14:20:00.000Z",
      "disabledReason": "Disabled after repeated delivery failures"
    }
  ]
}
Lists every webhook subscription on your account, newest first. Use it to audit what is subscribed before creating another (accounts cap at 10) and to spot subscriptions that have been auto-disabled. Signing secrets are never included — they are shown only once, in the create response. A lost secret cannot be recovered: delete the subscription and create a new one. Requirements: webhooks:manage scope + the public_api_webhooks feature.

Request

No parameters. The list is not paginated — an account holds at most 10 subscriptions.

Response

webhooks
object[]

Errors

StatuscodeMeaning
401UNAUTHORIZEDMissing or invalid token
403FORBIDDENMissing webhooks:manage scope, or public_api_webhooks disabled
curl -sS https://app.opentrain.ai/api/public/v1/webhooks \
  -H "Authorization: Bearer $OT_API_TOKEN"
{
  "webhooks": [
    {
      "id": "<WEBHOOK_ID>",
      "url": "https://example.com/hooks/opentrain",
      "eventTypes": ["proposal.received", "message.received", "approval.confirmed"],
      "status": "ACTIVE",
      "createdAt": "2026-06-12T10:00:00.000Z",
      "disabledAt": null,
      "disabledReason": null
    },
    {
      "id": "<WEBHOOK_ID_2>",
      "url": "https://example.com/hooks/old-endpoint",
      "eventTypes": ["payment.pending"],
      "status": "DISABLED",
      "createdAt": "2026-05-30T08:00:00.000Z",
      "disabledAt": "2026-06-10T14:20:00.000Z",
      "disabledReason": "Disabled after repeated delivery failures"
    }
  ]
}