Skip to content
FolioSign inStart your trial

API reference

Partners

Provision customer churches, including free sandbox churches, and mint scoped keys for them.

GET/v1/partner

Read the partner overview#

Returns whether the key belongs to a partner church, the programme grants it has, and how many customer churches it runs. A good first call to check a partner key works.

Auth. A partner key. Needs the partners:read scope, or a wildcard that includes it (machine:read, * on a partner key).

Limits. Responses carry RateLimit-Limit and RateLimit-Remaining; a 429 carries Retry-After.

Auth
Partner key
Scope
partners:read
Operation id
machinePartnerOverview

Responses

Response data fields
FieldTypeDescription
churchesinteger (int64)How many customer churches the partner runs.
grantsstring[]The programme features the partner has.
is_partnerbooleanWhether the church is a partner.
200 Success. Read the partner overview.
200 example
{
  "status": true,
  "message": "partner",
  "data": {
    "is_partner": true,
    "grants": [
      "partners"
    ],
    "churches": 3
  }
}
400 The request could not be read.
400 example
{
  "status": false,
  "message": "the page cursor is not valid",
  "error": {
    "code": "invalid_argument",
    "status": 400,
    "request_id": "req_b337770ecebe03b03a88a8998b59263d"
  }
}
401 The key or session is missing, invalid or expired.
401 example
{
  "status": false,
  "message": "That API key is not valid or has expired.",
  "error": {
    "code": "unauthenticated",
    "status": 401,
    "request_id": "req_b337770ecebe03b03a88a8998b59263d"
  }
}
403 The credential lacks the scope, the church is suspended, the feature is not in the plan, or the address is not allowed.
403 example
{
  "status": false,
  "message": "That API key does not have the required scope.",
  "error": {
    "code": "permission_denied",
    "status": 403,
    "request_id": "req_b337770ecebe03b03a88a8998b59263d"
  }
}
404 The resource is not in this church.
404 example
{
  "status": false,
  "message": "That item is not in this church.",
  "error": {
    "code": "not_found",
    "status": 404,
    "request_id": "req_b337770ecebe03b03a88a8998b59263d"
  }
}
409 Conflict, including a duplicate Idempotency-Key still being processed.
409 example
{
  "status": false,
  "message": "A request with this Idempotency-Key is still running.",
  "error": {
    "code": "conflict",
    "status": 409,
    "request_id": "req_b337770ecebe03b03a88a8998b59263d"
  }
}
422 A field failed validation, or an Idempotency-Key was reused with a different body.
422 example
{
  "status": false,
  "message": "A field is not valid.",
  "error": {
    "code": "validation",
    "status": 422,
    "request_id": "req_b337770ecebe03b03a88a8998b59263d"
  }
}
429 Rate limited. Wait Retry-After seconds.
429 example
{
  "status": false,
  "message": "Too many requests. Wait before trying again.",
  "error": {
    "code": "rate_limited",
    "status": 429,
    "request_id": "req_b337770ecebe03b03a88a8998b59263d"
  }
}
500 Something went wrong. Quote error.request_id.
500 example
{
  "status": false,
  "message": "Something went wrong. Quote the request id to support.",
  "error": {
    "code": "internal",
    "status": 500,
    "request_id": "req_b337770ecebe03b03a88a8998b59263d"
  }
}

Code samples

curl -X GET "$FOLIO_API_URL/v1/partner" \
  -H "Authorization: Bearer $FOLIO_PARTNER_KEY"

Try it is available for church operations and public reads. Partner keys act on live churches, so this operation is documented but not runnable here.

GET/v1/partner/churches

List customer churches#

Lists the churches this partner created or runs, including sandbox churches with their expires_at. A key limited to some churches (church_ids) sees only those.

Auth. A partner key. Needs the partners:read scope, or a wildcard that includes it (machine:read, * on a partner key).

Limits. Responses carry RateLimit-Limit and RateLimit-Remaining; a 429 carries Retry-After.

Auth
Partner key
Scope
partners:read
Operation id
machinePartnerChurches

Parameters

Parameters
NameInDescription
limitqueryItems per page. (integer)
cursorqueryOpaque cursor from meta.next_cursor of the previous page. (string)

Responses

200 Success. List customer churches.
200 example
{
  "status": true,
  "message": "partner_churches",
  "data": [
    {
      "id": "sac_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012",
      "object": "church",
      "church_id": "org_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012",
      "name": "Grace Chapel",
      "slug": "grace-chapel",
      "admin_email": "[email protected]",
      "sandbox": false,
      "expires_at": null
    }
  ],
  "meta": {
    "request_id": "req_b337770ecebe03b03a88a8998b59263d",
    "has_next": false,
    "has_prev": false
  }
}
400 The request could not be read.
400 example
{
  "status": false,
  "message": "the page cursor is not valid",
  "error": {
    "code": "invalid_argument",
    "status": 400,
    "request_id": "req_b337770ecebe03b03a88a8998b59263d"
  }
}
401 The key or session is missing, invalid or expired.
401 example
{
  "status": false,
  "message": "That API key is not valid or has expired.",
  "error": {
    "code": "unauthenticated",
    "status": 401,
    "request_id": "req_b337770ecebe03b03a88a8998b59263d"
  }
}
403 The credential lacks the scope, the church is suspended, the feature is not in the plan, or the address is not allowed.
403 example
{
  "status": false,
  "message": "That API key does not have the required scope.",
  "error": {
    "code": "permission_denied",
    "status": 403,
    "request_id": "req_b337770ecebe03b03a88a8998b59263d"
  }
}
404 The resource is not in this church.
404 example
{
  "status": false,
  "message": "That item is not in this church.",
  "error": {
    "code": "not_found",
    "status": 404,
    "request_id": "req_b337770ecebe03b03a88a8998b59263d"
  }
}
409 Conflict, including a duplicate Idempotency-Key still being processed.
409 example
{
  "status": false,
  "message": "A request with this Idempotency-Key is still running.",
  "error": {
    "code": "conflict",
    "status": 409,
    "request_id": "req_b337770ecebe03b03a88a8998b59263d"
  }
}
422 A field failed validation, or an Idempotency-Key was reused with a different body.
422 example
{
  "status": false,
  "message": "A field is not valid.",
  "error": {
    "code": "validation",
    "status": 422,
    "request_id": "req_b337770ecebe03b03a88a8998b59263d"
  }
}
429 Rate limited. Wait Retry-After seconds.
429 example
{
  "status": false,
  "message": "Too many requests. Wait before trying again.",
  "error": {
    "code": "rate_limited",
    "status": 429,
    "request_id": "req_b337770ecebe03b03a88a8998b59263d"
  }
}
500 Something went wrong. Quote error.request_id.
500 example
{
  "status": false,
  "message": "Something went wrong. Quote the request id to support.",
  "error": {
    "code": "internal",
    "status": 500,
    "request_id": "req_b337770ecebe03b03a88a8998b59263d"
  }
}

Code samples

curl -X GET "$FOLIO_API_URL/v1/partner/churches" \
  -H "Authorization: Bearer $FOLIO_PARTNER_KEY"

Try it is available for church operations and public reads. Partner keys act on live churches, so this operation is documented but not runnable here.

POST/v1/partner/churches

Create a customer church#

Creates a customer church, or with sandbox: true a free sandbox church for development. The admin is invited by email at admin_email (sandbox churches send no email).

A sandbox church is not metered, takes only folio_test_ keys, holds at most 20 teachings, has a small AI budget, and is deleted after 30 days. Calls in a sandbox use the real transcription and AI providers under those caps, so keep recordings short. Live captions, the booth, audience email, publishing, networks, care, SSO, the widget, exports and outbound webhooks are switched off.

Auth. A partner key. Needs the partners:write scope, or a wildcard that includes it (* on a partner key).

Plan. Needs the Partner plan with the partners feature. A live church counts against the partner's churches meter. A partner can hold at most 25 sandbox churches.

Limits. Responses carry RateLimit-Limit and RateLimit-Remaining; a 429 carries Retry-After.

Auth
Partner key
Scope
partners:write
Plan
Needs the Partner plan with the partners feature. A live church counts against the partner's churches meter. A partner can hold at most 25 sandbox churches.
Operation id
machinePartnerCreateChurch

Parameters

Parameters
NameInDescription
Idempotency-KeyheaderMakes a retry safe. The same key with the same body replays the first response for 24 hours; the same key with a different body returns 422; a duplicate that is still running returns 409 with Retry-After. Responses that carry a one-time secret are not replayed. (string, e.g. sunday-2026-11-01-upload)

Request body

Request body fields
FieldTypeDescription
admin_emailstring (email)The email address of the church's first administrator.
namestringThe name.
sandboxbooleanCreate a free sandbox church for testing. It takes only folio_test_ keys, has hard limits and is deleted after 30 days.
slugstringThe slug used in public URLs.
Example request body
{
  "name": "Grace Chapel",
  "slug": "grace-chapel",
  "admin_email": "[email protected]",
  "sandbox": false
}

Responses

Response data fields
FieldTypeDescription
admin_emailstringThe first administrator's email address.
church_idstringChurch id (org_...) to use in the key routes.
expires_atstringSandbox churches are deleted at this time.
idstringSub-account id (sac_...).
namestringThe name.
objectenum: churchThe object type.
sandboxbooleanTrue for a free sandbox church that only takes folio_test_ keys.
slugstringThe slug used in public URLs.
200 Success. Create a customer church.
200 example
{
  "status": true,
  "message": "partner_church",
  "data": {
    "id": "sac_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012",
    "object": "church",
    "church_id": "org_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012",
    "name": "Grace Chapel",
    "slug": "grace-chapel",
    "admin_email": "[email protected]",
    "sandbox": false,
    "expires_at": null
  }
}
400 The request could not be read.
400 example
{
  "status": false,
  "message": "the page cursor is not valid",
  "error": {
    "code": "invalid_argument",
    "status": 400,
    "request_id": "req_b337770ecebe03b03a88a8998b59263d"
  }
}
401 The key or session is missing, invalid or expired.
401 example
{
  "status": false,
  "message": "That API key is not valid or has expired.",
  "error": {
    "code": "unauthenticated",
    "status": 401,
    "request_id": "req_b337770ecebe03b03a88a8998b59263d"
  }
}
402 The partner reached its church allowance or the sandbox limit.
402 example
{
  "status": false,
  "message": "This partner has reached its church allowance.",
  "error": {
    "code": "quota_exceeded",
    "status": 402,
    "request_id": "req_b337770ecebe03b03a88a8998b59263d"
  }
}
403 The credential lacks the scope, the church is suspended, the feature is not in the plan, or the address is not allowed.
403 example
{
  "status": false,
  "message": "That API key does not have the required scope.",
  "error": {
    "code": "permission_denied",
    "status": 403,
    "request_id": "req_b337770ecebe03b03a88a8998b59263d"
  }
}
404 The resource is not in this church.
404 example
{
  "status": false,
  "message": "That item is not in this church.",
  "error": {
    "code": "not_found",
    "status": 404,
    "request_id": "req_b337770ecebe03b03a88a8998b59263d"
  }
}
409 The slug is already used.
409 example
{
  "status": false,
  "message": "That slug is taken.",
  "error": {
    "code": "already_exists",
    "status": 409,
    "request_id": "req_b337770ecebe03b03a88a8998b59263d"
  }
}
422 A field failed validation, or an Idempotency-Key was reused with a different body.
422 example
{
  "status": false,
  "message": "A field is not valid.",
  "error": {
    "code": "validation",
    "status": 422,
    "request_id": "req_b337770ecebe03b03a88a8998b59263d"
  }
}
429 Rate limited. Wait Retry-After seconds.
429 example
{
  "status": false,
  "message": "Too many requests. Wait before trying again.",
  "error": {
    "code": "rate_limited",
    "status": 429,
    "request_id": "req_b337770ecebe03b03a88a8998b59263d"
  }
}
500 Something went wrong. Quote error.request_id.
500 example
{
  "status": false,
  "message": "Something went wrong. Quote the request id to support.",
  "error": {
    "code": "internal",
    "status": 500,
    "request_id": "req_b337770ecebe03b03a88a8998b59263d"
  }
}

Code samples

curl -X POST "$FOLIO_API_URL/v1/partner/churches" \
  -H "Authorization: Bearer $FOLIO_PARTNER_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: customer-grace-chapel" \
  -d '{
  "name": "Grace Chapel",
  "slug": "grace-chapel",
  "admin_email": "[email protected]",
  "sandbox": false
}'

Try it is available for church operations and public reads. Partner keys act on live churches, so this operation is documented but not runnable here.

GET/v1/partner/churches/{church}/keys

List keys for a church#

Lists the keys issued for a customer church: prefix, last four characters, scopes, mode and last use. The secrets are never shown again.

Auth. A partner key. Needs the partners:read scope, or a wildcard that includes it (machine:read, * on a partner key).

Limits. Responses carry RateLimit-Limit and RateLimit-Remaining; a 429 carries Retry-After.

Auth
Partner key
Scope
partners:read
Operation id
machinePartnerListKeys

Parameters

Parameters
NameInDescription
church requiredpathThe church slug, such as grace-chapel. For partner routes, the customer church id (org_) or slug. (string, e.g. grace-chapel)

Responses

200 Success. List keys for a church.
200 example
{
  "status": true,
  "message": "api_keys",
  "data": [
    {
      "id": "key_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012",
      "name": "CRM sync",
      "prefix": "a1b2c3d4",
      "last4": "9f2e",
      "scopes": [
        "teachings:read",
        "notes:read"
      ],
      "mode": "live",
      "partner": false,
      "church_ids": [],
      "ip_allowlist": [],
      "rate_limit_per_minute": null,
      "created_at": "2026-10-20T09:00:00Z",
      "expires_at": null,
      "last_used_at": "2026-11-01T12:00:00Z",
      "last_used_ip": "203.0.113.7",
      "request_count": 128,
      "rotated_from": null
    }
  ],
  "meta": {
    "request_id": "req_b337770ecebe03b03a88a8998b59263d",
    "has_next": false,
    "has_prev": false
  }
}
400 The request could not be read.
400 example
{
  "status": false,
  "message": "the page cursor is not valid",
  "error": {
    "code": "invalid_argument",
    "status": 400,
    "request_id": "req_b337770ecebe03b03a88a8998b59263d"
  }
}
401 The key or session is missing, invalid or expired.
401 example
{
  "status": false,
  "message": "That API key is not valid or has expired.",
  "error": {
    "code": "unauthenticated",
    "status": 401,
    "request_id": "req_b337770ecebe03b03a88a8998b59263d"
  }
}
403 The credential lacks the scope, the church is suspended, the feature is not in the plan, or the address is not allowed.
403 example
{
  "status": false,
  "message": "That API key does not have the required scope.",
  "error": {
    "code": "permission_denied",
    "status": 403,
    "request_id": "req_b337770ecebe03b03a88a8998b59263d"
  }
}
404 The resource is not in this church.
404 example
{
  "status": false,
  "message": "That item is not in this church.",
  "error": {
    "code": "not_found",
    "status": 404,
    "request_id": "req_b337770ecebe03b03a88a8998b59263d"
  }
}
409 Conflict, including a duplicate Idempotency-Key still being processed.
409 example
{
  "status": false,
  "message": "A request with this Idempotency-Key is still running.",
  "error": {
    "code": "conflict",
    "status": 409,
    "request_id": "req_b337770ecebe03b03a88a8998b59263d"
  }
}
422 A field failed validation, or an Idempotency-Key was reused with a different body.
422 example
{
  "status": false,
  "message": "A field is not valid.",
  "error": {
    "code": "validation",
    "status": 422,
    "request_id": "req_b337770ecebe03b03a88a8998b59263d"
  }
}
429 Rate limited. Wait Retry-After seconds.
429 example
{
  "status": false,
  "message": "Too many requests. Wait before trying again.",
  "error": {
    "code": "rate_limited",
    "status": 429,
    "request_id": "req_b337770ecebe03b03a88a8998b59263d"
  }
}
500 Something went wrong. Quote error.request_id.
500 example
{
  "status": false,
  "message": "Something went wrong. Quote the request id to support.",
  "error": {
    "code": "internal",
    "status": 500,
    "request_id": "req_b337770ecebe03b03a88a8998b59263d"
  }
}

Code samples

curl -X GET "$FOLIO_API_URL/v1/partner/churches/grace-chapel/keys" \
  -H "Authorization: Bearer $FOLIO_PARTNER_KEY"

Try it is available for church operations and public reads. Partner keys act on live churches, so this operation is documented but not runnable here.

POST/v1/partner/churches/{church}/keys

Issue a scoped key for a church#

Issues a church key for a customer church, to hand to that church's own system. It can carry only scopes the partner's programme grants. The full key is in the response once; Folio stores only a hash. A sandbox church gets a folio_test_ key and a live church a folio_live_ key.

Prefer one partner key with X-Folio-Church when your own server calls on the church's behalf; issue a church key when the church's system calls directly.

Auth. A partner key. Needs the partners:write scope, or a wildcard that includes it (* on a partner key).

Limits. Responses carry RateLimit-Limit and RateLimit-Remaining; a 429 carries Retry-After.

Auth
Partner key
Scope
partners:write
Operation id
machinePartnerIssueKey

Parameters

Parameters
NameInDescription
church requiredpathThe church slug, such as grace-chapel. For partner routes, the customer church id (org_) or slug. (string, e.g. grace-chapel)
Idempotency-KeyheaderMakes a retry safe. The same key with the same body replays the first response for 24 hours; the same key with a different body returns 422; a duplicate that is still running returns 409 with Retry-After. Responses that carry a one-time secret are not replayed. (string, e.g. sunday-2026-11-01-upload)

Request body

Request body fields
FieldTypeDescription
namestringThe name.
scopesstring[]The scopes the key carries.
Example request body
{
  "name": "CRM sync",
  "scopes": [
    "teachings:read",
    "notes:read"
  ]
}

Responses

Response data fields
FieldTypeDescription
idstringThe id, with a type prefix such as tch_ or note_.
keystringThe full key. Shown once.
modeenum: live | testlive or test.
namestringThe name.
objectenum: api_keyThe object type.
scopesstring[]The scopes the key carries.
200 Success. Issue a scoped key for a church.
200 example
{
  "status": true,
  "message": "api_key",
  "data": {
    "id": "key_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012",
    "object": "api_key",
    "key": "folio_live_a1b2c3d4e5f60718293a4b5c6d7e8f90",
    "name": "CRM sync",
    "scopes": [
      "teachings:read",
      "notes:read"
    ],
    "mode": "live"
  }
}
400 The request could not be read.
400 example
{
  "status": false,
  "message": "the page cursor is not valid",
  "error": {
    "code": "invalid_argument",
    "status": 400,
    "request_id": "req_b337770ecebe03b03a88a8998b59263d"
  }
}
401 The key or session is missing, invalid or expired.
401 example
{
  "status": false,
  "message": "That API key is not valid or has expired.",
  "error": {
    "code": "unauthenticated",
    "status": 401,
    "request_id": "req_b337770ecebe03b03a88a8998b59263d"
  }
}
403 The credential lacks the scope, the church is suspended, the feature is not in the plan, or the address is not allowed.
403 example
{
  "status": false,
  "message": "That API key does not have the required scope.",
  "error": {
    "code": "permission_denied",
    "status": 403,
    "request_id": "req_b337770ecebe03b03a88a8998b59263d"
  }
}
404 The resource is not in this church.
404 example
{
  "status": false,
  "message": "That item is not in this church.",
  "error": {
    "code": "not_found",
    "status": 404,
    "request_id": "req_b337770ecebe03b03a88a8998b59263d"
  }
}
409 Conflict, including a duplicate Idempotency-Key still being processed.
409 example
{
  "status": false,
  "message": "A request with this Idempotency-Key is still running.",
  "error": {
    "code": "conflict",
    "status": 409,
    "request_id": "req_b337770ecebe03b03a88a8998b59263d"
  }
}
422 A field failed validation, or an Idempotency-Key was reused with a different body.
422 example
{
  "status": false,
  "message": "A field is not valid.",
  "error": {
    "code": "validation",
    "status": 422,
    "request_id": "req_b337770ecebe03b03a88a8998b59263d"
  }
}
429 Rate limited. Wait Retry-After seconds.
429 example
{
  "status": false,
  "message": "Too many requests. Wait before trying again.",
  "error": {
    "code": "rate_limited",
    "status": 429,
    "request_id": "req_b337770ecebe03b03a88a8998b59263d"
  }
}
500 Something went wrong. Quote error.request_id.
500 example
{
  "status": false,
  "message": "Something went wrong. Quote the request id to support.",
  "error": {
    "code": "internal",
    "status": 500,
    "request_id": "req_b337770ecebe03b03a88a8998b59263d"
  }
}

Code samples

curl -X POST "$FOLIO_API_URL/v1/partner/churches/grace-chapel/keys" \
  -H "Authorization: Bearer $FOLIO_PARTNER_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: grace-crm-key" \
  -d '{
  "name": "CRM sync",
  "scopes": [
    "teachings:read",
    "notes:read"
  ]
}'

Try it is available for church operations and public reads. Partner keys act on live churches, so this operation is documented but not runnable here.

DELETE/v1/partner/churches/{church}/keys/{key}

Revoke a church key#

Revokes a key at once. The next call with it answers 401. Revoking is safe to repeat.

Auth. A partner key. Needs the partners:write scope, or a wildcard that includes it (* on a partner key).

Limits. Responses carry RateLimit-Limit and RateLimit-Remaining; a 429 carries Retry-After.

Auth
Partner key
Scope
partners:write
Operation id
machinePartnerRevokeKey

Parameters

Parameters
NameInDescription
church requiredpathThe church slug, such as grace-chapel. For partner routes, the customer church id (org_) or slug. (string, e.g. grace-chapel)
key requiredpathThe API key id, such as key_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012. (string, e.g. key_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012)
Idempotency-KeyheaderMakes a retry safe. The same key with the same body replays the first response for 24 hours; the same key with a different body returns 422; a duplicate that is still running returns 409 with Retry-After. Responses that carry a one-time secret are not replayed. (string, e.g. sunday-2026-11-01-upload)

Responses

200 Success. Revoke a church key.
200 example
{
  "status": true,
  "message": "api key revoked"
}
400 The request could not be read.
400 example
{
  "status": false,
  "message": "the page cursor is not valid",
  "error": {
    "code": "invalid_argument",
    "status": 400,
    "request_id": "req_b337770ecebe03b03a88a8998b59263d"
  }
}
401 The key or session is missing, invalid or expired.
401 example
{
  "status": false,
  "message": "That API key is not valid or has expired.",
  "error": {
    "code": "unauthenticated",
    "status": 401,
    "request_id": "req_b337770ecebe03b03a88a8998b59263d"
  }
}
403 The credential lacks the scope, the church is suspended, the feature is not in the plan, or the address is not allowed.
403 example
{
  "status": false,
  "message": "That API key does not have the required scope.",
  "error": {
    "code": "permission_denied",
    "status": 403,
    "request_id": "req_b337770ecebe03b03a88a8998b59263d"
  }
}
404 The resource is not in this church.
404 example
{
  "status": false,
  "message": "That item is not in this church.",
  "error": {
    "code": "not_found",
    "status": 404,
    "request_id": "req_b337770ecebe03b03a88a8998b59263d"
  }
}
409 Conflict, including a duplicate Idempotency-Key still being processed.
409 example
{
  "status": false,
  "message": "A request with this Idempotency-Key is still running.",
  "error": {
    "code": "conflict",
    "status": 409,
    "request_id": "req_b337770ecebe03b03a88a8998b59263d"
  }
}
422 A field failed validation, or an Idempotency-Key was reused with a different body.
422 example
{
  "status": false,
  "message": "A field is not valid.",
  "error": {
    "code": "validation",
    "status": 422,
    "request_id": "req_b337770ecebe03b03a88a8998b59263d"
  }
}
429 Rate limited. Wait Retry-After seconds.
429 example
{
  "status": false,
  "message": "Too many requests. Wait before trying again.",
  "error": {
    "code": "rate_limited",
    "status": 429,
    "request_id": "req_b337770ecebe03b03a88a8998b59263d"
  }
}
500 Something went wrong. Quote error.request_id.
500 example
{
  "status": false,
  "message": "Something went wrong. Quote the request id to support.",
  "error": {
    "code": "internal",
    "status": 500,
    "request_id": "req_b337770ecebe03b03a88a8998b59263d"
  }
}

Code samples

curl -X DELETE "$FOLIO_API_URL/v1/partner/churches/grace-chapel/keys/key_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012" \
  -H "Authorization: Bearer $FOLIO_PARTNER_KEY"

Try it is available for church operations and public reads. Partner keys act on live churches, so this operation is documented but not runnable here.

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