Get your webhook endpoint
API reference

Get your webhook endpoint

Your app’s webhook endpoint, its events and the last 20 deliveries (with status codes and errors) — the first place to look when an event seems missing.

View as MarkdownUpdated Oct 17, 2026
GET/api/external/webhooksNew

Your app’s webhook endpoint, its events and the last 20 deliveries (with status codes and errors) — the first place to look when an event seems missing.

Authentication

Send the creator's API key as a bearer token: Authorization: Bearer dpfn_…. See Authentication & API keys.

Responses

200The configuration.
NameTypeDescription
urlstring | nullYour https endpoint, or null when none is set.
Format: uri
eventsstring[]Events delivered to the endpoint.
hasSecretbooleanWhether a signing secret exists.
availableEventsstring[]Every event you can subscribe to.
recentDeliveriesobject[]The last 20 deliveries, newest first.
Show child attributes
idstringEvent id (also the DropFans-Event-Id header).
eventstringEvent type.
statusstringPENDING = retrying.
One of: PENDING, DELIVERED, FAILED
attemptsintegerAttempts so far.
lastStatusCodeinteger | nullYour endpoint’s last HTTP status.
lastErrorstring | nullLast failure reason.
createdAtstringWhen the event was created.
Format: date-time
deliveredAtstring | nullWhen your endpoint accepted it.
Format: date-time
nextAttemptAtstring | nullNext retry, while PENDING.
Format: date-time
Example response
{
  "url": "https://crm.example.com/hooks/dropfans",
  "events": [
    "drop.paid",
    "drop.refunded",
    "account.kyc_updated"
  ],
  "hasSecret": true,
  "availableEvents": [
    "drop.paid",
    "drop.refunded",
    "account.kyc_updated"
  ],
  "recentDeliveries": [
    {
      "id": "evt_2b7c…",
      "event": "drop.paid",
      "status": "DELIVERED",
      "attempts": 1,
      "lastStatusCode": 200,
      "lastError": null,
      "createdAt": "2026-10-17T16:20:01.000Z",
      "deliveredAt": "2026-10-17T16:20:01.000Z",
      "nextAttemptAt": null
    }
  ]
}

Errors

StatusBodyWhen
401{"error":"Unauthorized","code":"unauthorized"}Missing or invalid API key.
403{"error":"This endpoint needs a key bound to an approved app.","code":"app_key_required"}A Personal key was used.
403{"error":"Use the app owner's key for this endpoint.","code":"owner_key_required"}The key was minted by a creator for themselves. App-level calls need a key held by your app owner: their own, or one their agency minted for its personas or managed creators.

Rate limiting

Every response carries the X-RateLimit-Tier header and, on limited tiers, the per-minute and per-day trios — read X-RateLimit-Remaining and X-RateLimit-Reset instead of hardcoding limits. Details in Rate limits.

Code samples

curl "https://www.dropfans.io/api/external/webhooks" \
  -H "Authorization: Bearer $DROPFANS_API_KEY"

Questions? [email protected]