Skip to content
FolioSign inStart your trial

Webhook event catalogue

API keys events

2 events. All groups

api_key.created#

An API key was created. The secret is never included.

Account facts about the church, its keys and connections: ids, names the church chose, scopes, roles and states. Secrets, tokens and key values are never included.

data.object.object is api_key.

Fields of data.object for api_key.created
FieldTypeDescription
churchobjectThe customer church the key belongs to, on partner keys.
id requiredstringThe church id.
name requiredstringThe church name.
object requiredenum: churchAlways church.
slug requiredstringThe church web address.
church_ids requiredstring[]Customer churches a partner key may act for; empty means all.
created_at requiredstring (date-time)When it was created.
created_by requiredobject | nullThe team member who created it.
id requiredstringThe team member id.
object requiredenum: userAlways user.
expires_at requiredstring (date-time) | nullWhen the key stops working.
id requiredstringThe API key id.
last4 requiredstringThe last four characters of the key.
mode requiredenum: live | testlive or test.
name requiredstringThe label given to the key.
object requiredenum: api_keyAlways api_key.
partner requiredbooleanTrue for a partner key.
prefix requiredstringThe visible start of the key.
rate_limit_per_minute requiredinteger | nullThe per-minute limit, null for the plan default.
revoked_at requiredstring (date-time) | nullWhen it was revoked.
scopes requiredstring[]The permissions it was given.
Example api_key.created body
{
  "actor": null,
  "api_version": "2026-12-01",
  "created": "2026-10-13T09:12:10Z",
  "data": {
    "object": {
      "church": {
        "id": "org_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012",
        "name": "Grace Place",
        "object": "church",
        "slug": "grace-place"
      },
      "church_ids": [],
      "created_at": "2026-10-13T09:12:10Z",
      "created_by": {
        "id": "usr_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012",
        "object": "user"
      },
      "expires_at": "2026-11-13T09:12:10Z",
      "id": "key_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012",
      "last4": "a91c",
      "mode": "live",
      "name": "CRM sync",
      "object": "api_key",
      "partner": false,
      "prefix": "folio_live_3f9d",
      "rate_limit_per_minute": 600,
      "revoked_at": "2026-10-13T09:12:10Z",
      "scopes": [
        "teachings:read",
        "notes:read"
      ]
    }
  },
  "id": "evt_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012",
  "livemode": false,
  "object": "event",
  "request": {
    "id": "req_5f3c9a1e7b2d4c68a0e1f2d3c4b5a697",
    "idempotency_key": null
  },
  "type": "api_key.created"
}

api_key.revoked#

An API key was revoked.

Account facts about the church, its keys and connections: ids, names the church chose, scopes, roles and states. Secrets, tokens and key values are never included.

data.object.object is api_key.

Fields of data.object for api_key.revoked
FieldTypeDescription
churchobjectThe customer church the key belongs to, on partner keys.
id requiredstringThe church id.
name requiredstringThe church name.
object requiredenum: churchAlways church.
slug requiredstringThe church web address.
church_ids requiredstring[]Customer churches a partner key may act for; empty means all.
created_at requiredstring (date-time)When it was created.
created_by requiredobject | nullThe team member who created it.
id requiredstringThe team member id.
object requiredenum: userAlways user.
expires_at requiredstring (date-time) | nullWhen the key stops working.
id requiredstringThe API key id.
last4 requiredstringThe last four characters of the key.
mode requiredenum: live | testlive or test.
name requiredstringThe label given to the key.
object requiredenum: api_keyAlways api_key.
partner requiredbooleanTrue for a partner key.
prefix requiredstringThe visible start of the key.
rate_limit_per_minute requiredinteger | nullThe per-minute limit, null for the plan default.
revoked_at requiredstring (date-time) | nullWhen it was revoked.
scopes requiredstring[]The permissions it was given.

On updates, data.previous_attributes holds the earlier value of any of these that changed: revoked_at.

Example api_key.revoked body
{
  "actor": null,
  "api_version": "2026-12-01",
  "created": "2026-10-13T09:12:10Z",
  "data": {
    "object": {
      "church": {
        "id": "org_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012",
        "name": "Grace Place",
        "object": "church",
        "slug": "grace-place"
      },
      "church_ids": [],
      "created_at": "2026-10-13T09:12:10Z",
      "created_by": {
        "id": "usr_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012",
        "object": "user"
      },
      "expires_at": "2026-11-13T09:12:10Z",
      "id": "key_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012",
      "last4": "a91c",
      "mode": "live",
      "name": "CRM sync",
      "object": "api_key",
      "partner": false,
      "prefix": "folio_live_3f9d",
      "rate_limit_per_minute": 600,
      "revoked_at": "2026-10-13T09:12:10Z",
      "scopes": [
        "teachings:read",
        "notes:read"
      ]
    },
    "previous_attributes": {
      "revoked_at": "2026-10-12T09:12:10Z"
    }
  },
  "id": "evt_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012",
  "livemode": false,
  "object": "event",
  "request": {
    "id": "req_5f3c9a1e7b2d4c68a0e1f2d3c4b5a697",
    "idempotency_key": null
  },
  "type": "api_key.revoked"
}

Verified against API version 0.0.0-dev. Generated from the live OpenAPI document.