GET/v1/outputs
List published outputs#
Lists published outputs: devotionals, blog posts, newsletters and study guides written from a note. Pass teaching to see the outputs of one teaching. Drafts and outputs in review are never returned to a key. If the note an output was written from changes, the output is taken back to review and disappears from this list until it is published again; the output.unpublished webhook tells you.
Auth. A church API key. Needs the outputs:read scope, or a wildcard that includes it (machine:read, machine:*, * on a partner key). A partner key can call it for a customer church by sending X-Folio-Church.
Limits. Responses carry RateLimit-Limit and RateLimit-Remaining; a 429 carries Retry-After.
- Auth
- Church API key
- Scope
outputs:read- Operation id
machineListOutputs
Parameters
| Name | In | Description |
|---|---|---|
teaching | query | Only outputs written from this teaching. (string, e.g. {{tch}}) |
X-Folio-Church | header | Partner keys only: run this call as one of your customer churches (its org_ id or slug). The church must be one of yours, the key must be allowed to act for it, and plan checks run against that church. (string, e.g. org_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012) |
Responses
| Field | Type | Description |
|---|---|---|
body_md | string | The full text as Markdown. |
id | string | The output id, prefixed out_. |
kind | enum: devotional | blog | newsletter | study_guide | What it is. |
language | string | The language code. |
meta | object | Extra fields for the kind, such as a subject line for a newsletter. |
note_id | string | The note it was written from. |
object | enum: output | Always output. |
status | string | The output status. Keys only see published outputs. |
teaching_id | string | The teaching it was written from. |
title | string | The title. |
updated_at | string (date-time) | When it last changed. |
verses | object[] | The passages it quotes, checked against the King James Version. |
word_count | integer (int64) | The length in words. |
200 Success. List published outputs.
{
"status": true,
"message": "outputs",
"data": [
{
"id": "out_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012",
"object": "output",
"teaching_id": "tch_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012",
"note_id": "note_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012",
"kind": "devotional",
"status": "published",
"language": "en",
"title": "Held by a love that does not let go",
"body_md": "Paul's question in Romans 8 is not rhetorical…",
"meta": {},
"verses": [
{
"ref": "Romans 8:38-39",
"status": "verified"
}
],
"word_count": 312,
"updated_at": "2026-11-02T08:00:00Z"
}
],
"meta": {
"request_id": "req_b337770ecebe03b03a88a8998b59263d",
"has_next": false,
"has_prev": false
}
}400 The request could not be read.
{
"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.
{
"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.
{
"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.
{
"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.
{
"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.
{
"status": false,
"message": "A field is not valid.",
"error": {
"code": "validation",
"status": 422,
"request_id": "req_b337770ecebe03b03a88a8998b59263d"
}
}429 Rate limited. Wait Retry-After seconds.
{
"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.
{
"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/outputs?teaching=%7B%7Btch%7D%7D" \
-H "Authorization: Bearer $FOLIO_API_KEY"