{
"status": false,
"message": "the page cursor is not valid",
"error": {
"code": "invalid_argument",
"status": 400,
"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"
}
}
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/public/grace-chapel/ask"
Asks a question from the church's public site, optionally about one published note (note_slug). The answer is drawn from the church's published and approved teaching only. Like the widget, the response is pending until you poll GET /v1/public/{church}/ask/messages/{message}.
Auth. None. This route is public.
Plan. Needs the Ask feature; each new question counts against the Ask allowance.
Auth
No key
Plan
Needs the Ask feature; each new question counts against the Ask allowance.
Operation id
publicAskTurn
Parameters
Parameters
Name
In
Description
church required
path
The church slug, such as grace-chapel. For partner routes, the customer church id (org_) or slug. (string, e.g. grace-chapel)
Request body
Request body fields
Field
Type
Description
note_slug
string
Ask about this published note.
question
string
The question, up to 1000 characters.
session
string
An anonymous visitor id you generate: 16 to 128 URL-safe characters.
Example request body
{
"question": "What did we teach about forgiveness?",
"session": "k3n9x2m8q1w7e5r4t6y0"
}
Responses
200 Success. Ask on a church's public page.200 example
{
"status": false,
"message": "the page cursor is not valid",
"error": {
"code": "invalid_argument",
"status": 400,
"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 The visitor asked too quickly.429 example
{
"status": false,
"message": "Please wait a little before asking 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/public/grace-chapel/ask" \
-H "Content-Type: application/json" \
-d '{
"question": "What did we teach about forgiveness?",
"session": "k3n9x2m8q1w7e5r4t6y0"
}'
Returns the current state of an answer from public Ask. Pass wait seconds to hold the request open.
Auth. None. This route is public.
Auth
No key
Operation id
publicAskMessage
Parameters
Parameters
Name
In
Description
church required
path
The church slug, such as grace-chapel. For partner routes, the customer church id (org_) or slug. (string, e.g. grace-chapel)
message required
path
The message id, such as msg_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012. (string, e.g. msg_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012)
session
query
The anonymous visitor id you generated: 16 to 128 URL-safe characters. Use the same one for follow-ups. (string, e.g. k3n9x2m8q1w7e5r4t6y0)
wait
query
Seconds to hold the request open until the answer is ready, up to the server's cap. (integer, e.g. 10)
Responses
200 Success. Poll a public answer.200 example
{
"status": true,
"message": "widget_answer",
"data": {
"object": "widget_answer",
"answer": "Forgiveness is a decision to release a debt, as God released ours. [1]",
"blocks": [
{
"type": "paragraph",
"text": "Pastor Ade taught that forgiving is releasing the debt. [1]",
"source_refs": [
1
]
}
],
"follow_ups": [
"What did we teach about reconciliation?"
],
"sources": [
{
"number": 1,
"title": "Seventy times seven",
"excerpt": "We forgive because we were forgiven."
}
],
"next_steps": [],
"conversation_id": "conv_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012",
"message_id": "msg_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012",
"status": "complete"
}
}
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"
}
}
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"
}
}
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/public/grace-chapel/ask/messages/msg_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012?session=k3n9x2m8q1w7e5r4t6y0&wait=10"
A conversation a member shared by link. The token in the link is the only credential: anyone who has it can read the conversation, and the member can revoke it at any time (410 afterwards).
Auth. None. This route is public.
Auth
No key
Operation id
publicConversationShare
Parameters
Parameters
Name
In
Description
If-None-Match
header
The ETag of the copy you already hold. If it is current the answer is 304 with no body. (string)
church required
path
The church slug, such as grace-chapel. For partner routes, the customer church id (org_) or slug. (string, e.g. grace-chapel)
token required
path
The share token from the shared link. (string, e.g. shr_k3n9x2)
Responses
200 Success. Read a conversation shared by link.200 example
{
"status": false,
"message": "the page cursor is not valid",
"error": {
"code": "invalid_argument",
"status": 400,
"request_id": "req_b337770ecebe03b03a88a8998b59263d"
}
}
404 Nothing is published at that address.404 example
{
"status": false,
"message": "That share is not available.",
"error": {
"code": "not_found",
"status": 404,
"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"
}
}
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/public/grace-chapel/ask/shares/shr_k3n9x2"
A reviewed answer the church published, with its sources and standing: whether a source teaching has since been superseded or retracted.
Auth. None. This route is public.
Auth
No key
Operation id
publicAsk
Parameters
Parameters
Name
In
Description
If-None-Match
header
The ETag of the copy you already hold. If it is current the answer is 304 with no body. (string)
church required
path
The church slug, such as grace-chapel. For partner routes, the customer church id (org_) or slug. (string, e.g. grace-chapel)
slug required
path
The slug from the share URL. (string, e.g. love-that-waits)
Responses
200 Success. Read a published answer.200 example
{
"status": true,
"message": "share",
"data": {
"object": "share",
"church": "grace-chapel",
"kind": "answer",
"slug": "forgiveness",
"title": "What did we teach about forgiveness?",
"summary": "Forgiveness is a decision to release a debt.",
"payload": {
"question": "What did we teach about forgiveness?",
"short": "Forgiveness is a decision to release a debt. [1]",
"blocks": [
{
"h": "",
"p": "Pastor Ade taught that forgiving is releasing the debt. [1]"
}
],
"sources": [
{
"n": 1,
"t": "Seventy times seven",
"by": "Pastor Ade"
}
],
"reviewed": true,
"standing": "current"
},
"published_at": "2026-11-01T12:31:00Z",
"indexable": true,
"unlisted": 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"
}
}
404 Nothing is published at that address.404 example
{
"status": false,
"message": "That share is not available.",
"error": {
"code": "not_found",
"status": 404,
"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"
}
}
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/public/grace-chapel/ask/love-that-waits"
Verified against API version 0.0.0-dev. Generated from the live OpenAPI document.