ScriptureFlow Bible Data is structured, multilingual Bible data infrastructure β not a Bible website scraper. ScriptureFlow tracks 200+ discovered translation records, with 199 ready translations currently exposed through this Actor catalog. This Apify Actor returns clean Bible data as JSON: look up any verse or passage, discover available Bible translations in dozens of languages, resolve localized book names (e.g. Juan 3:16 in Spanish or Yohana in Swahili), and validate Scripture references before you use them downstream. It calls the public ScriptureFlow API β no scraping, no setup, no broken HTML selectors β making it dependable for Apify datasets, n8n automations, and AI agents.
ScriptureFlow Bible Data is an Apify Actor for builders who need Scripture data that is structured, translation-aware, and language-aware and ready to drop into automation workflows. You request Bible data by translationId and reference, and the Actor writes predictable rows to the Apify default dataset and an OUTPUT_SUMMARY.json to the default key-value store.
It is not a Bible website scraper. It does not scrape BibleGateway, YouVersion, Blue Letter Bible, Logos, or any third-party Bible website, and it does not depend on any of them keeping the same page layout. It also does not generate sermons, devotionals, commentary, theological interpretation, embeddings, or RAG chunks, and it does not modify Scripture source text.
Scraper-based Bible tools break when a third-party Bible website changes its HTML layout. ScriptureFlow takes a different approach: it returns structured Bible data from a prepared catalog, with deterministic translation IDs, so the same workflow produces the same shape every run. That makes it suitable for repeatable automation and API-style workflows instead of fragile scraper-based pipelines.
You also get the full Apify platform behind it: scheduling, monitoring, the Apify API, dataset storage, and native integrations with tools like n8n β all wrapped around a reliable Bible API call.
Multilingual support is a core strength of ScriptureFlow Bible Data, not an afterthought. ScriptureFlow tracks 200+ discovered translation records, with 199 ready translations currently available through the Actor catalog across many languages. Because the Actor is translation-aware and language-aware, the same workflow can serve completely different audiences just by changing the translationId β no separate pipeline per language.
It also understands localized book names. Where ScriptureFlow has localized book aliases available, reference lookup resolves names in the reader's own language instead of forcing English:
- πͺπΈ Spanish β
Juan 3:16resolves without rewriting it toJohn 3:16 - π°πͺ Swahili β
swh-onenexposes localized books likeYohana(John) andWarumi(Romans) - π African-language coverage β including Akuapem Twi, Asante Twi, Yoruba, Hausa, Igbo, and Ewe
That makes it well suited for ministries, Bible apps, and study tools that need to reach multilingual audiences, including languages that are often missing from mainstream Bible tooling. Alias availability varies by language and translation, so use catalog and translation_books to confirm what's available, and validate_reference before going to production.
Representative coverage includes Protestant, public-domain, open-license, multilingual, and Catholic / deuterocanonical-friendly examples such as the Douay-Rheims American Edition. A few verified translation IDs from the catalog:
| Translation ID | Translation | Language |
|---|---|---|
en-kjv |
King James Version | English |
en-lsv |
Literal Standard Version | English |
en-oeb |
Open English Bible | English |
en-dra |
Douay-Rheims American Edition 1899 (Catholic / deuterocanonical-friendly) | English |
es-vbl |
VersiΓ³n Biblia Libre | Spanish |
es-rv09 |
Reina Valera 1909 | Spanish |
de-luther1912 |
Luther 1912 | German |
it-db1885 |
Italian Diodati Bible 1885 | Italian |
swh-onen |
Biblica Open Kiswahili Contemporary Version | Swahili |
tw-wakna |
Biblica Open Akuapem Twi Contemporary Bible 2020 | Akuapem Twi |
tw-wasna |
Biblica Open Asante Twi Contemporary Bible 2020 | Asante Twi |
yo-oycb |
Biblica Open Yoruba Contemporary Bible 2017 | Yoruba |
ha-bsrk |
Biblica Open Hausa Contemporary Bible 2020 | Hausa |
ig-biuo |
Biblica Open Igbo Contemporary Bible 2020 | Igbo |
ee-oal |
eweOAL20 | Ewe |
To see the exact, current list of supported translations and languages, use catalog mode (see Catalog discovery below) β that is always the source of truth.
ScriptureFlow Bible Data supports five focused modes:
- π
passageβ fetch a single verse or a same-chapter passage (e.g.John 3:16,John 3:16-18,Romans 8:28-30,Psalm 23,1 John 1:9), using free-text references or structuredbook/chapter/verse/endVersefields. - π
catalogβ discover available Bible translations and their language codes; filter bylanguageCode,search, andfullBibleOnly. - π
catalogSummaryβ write one catalog coverage summary row with discovered and ready translation counts, language count, full-Bible count, New Testament-only count, and top language codes when those values can be derived from catalog metadata. - π
translation_booksβ list metadata-only book names for a selected translation (one row per book). Useful for discovering localized book names before a passage lookup. - β
validate_referenceβ check whether a reference resolves before sending it into an automation, database, or agent workflow. - π§± Structured error rows β invalid references, unsupported formats, and invalid translation IDs return dataset rows instead of crashing the run.
This Actor intentionally stays narrow. translation_books is metadata discovery only β it is not full Bible export, book mode, chapter mode, bulk export, or random verse mode.
The Actor writes structured JSON rows to the default Apify dataset. Every row includes recordType, mode, and source (the source field is always an object describing ScriptureFlow as the provider, never a plain string).
| Field | Description |
|---|---|
recordType |
Row type: translation, catalogSummary, book, verse, validation, or error. |
mode |
Mode that produced the row: catalog, catalogSummary, translation_books, passage, or validate_reference. |
source |
Object describing ScriptureFlow as provider, endpoint used, docs URL, CTA URL, and retrieval time. |
translationId |
ScriptureFlow translation ID, such as en-kjv or swh-onen. |
languageCode |
Language code for catalog rows when available. |
translationName |
Human-readable translation name when available. |
reference |
Resolved Scripture reference for verse rows. |
inputReference |
Reference originally supplied by the user. |
normalizedReference |
Reference normalized by ScriptureFlow validation when available. |
book |
Resolved book identifier or human-facing book name for book metadata rows. |
bookSlug |
Book slug when available. |
canonicalBook |
Canonical book key when available. |
chaptersFound |
Number of chapters found for a book metadata row or catalog metadata. |
firstChapter / lastChapter |
Lowest / highest chapter number found for a book metadata row. |
totalVerses |
Sum of available chapter verse counts for a book metadata row. |
chapter / verse |
Resolved chapter and verse numbers. |
text |
Scripture text returned by ScriptureFlow for passage mode. |
valid |
Whether the reference or result is valid. |
errorCode |
Structured code for user / input error rows. |
message |
Human-readable message for validation or error rows. |
status |
Translation status for catalog rows, or HTTP / user-error status when available. |
metadata |
Optional supporting metadata from ScriptureFlow. |
discoveredTranslations / readyTranslations |
Discovered records from ScriptureFlow status metadata and ready translations exposed through the Actor catalog for catalogSummary rows. |
totalTranslations / languageCount |
Catalog-level totals for catalogSummary rows. totalTranslations is the ready catalog count the Actor read. |
fullBibleCount / partialTranslationCount / newTestamentOnlyCount |
Coverage counts derived from available catalog metadata for catalogSummary rows. |
topLanguages |
Most represented language codes for catalogSummary rows. |
You can download the resulting dataset in various formats such as JSON, CSV, Excel, or HTML directly from the Apify platform.
Run the Actor with the default catalogSummary mode. It writes one catalog summary row to the default dataset and OUTPUT_SUMMARY.json to the default key-value store:
{
"mode": "catalogSummary"
}{
"mode": "catalog",
"languageCode": "eng",
"maxResults": 100
}{
"mode": "catalog",
"search": "Douay",
"maxResults": 100
}{
"mode": "catalogSummary"
}Example summary row:
{
"recordType": "catalogSummary",
"mode": "catalogSummary",
"discoveredTranslations": 211,
"readyTranslations": 199,
"totalTranslations": 199
}translation_books returns metadata only β one row per book β not Scripture text or a full Bible export. Useful for discovering valid localized book names (e.g. Swahili swh-onen):
{
"mode": "translation_books",
"translationId": "swh-onen",
"includeMetadata": true,
"maxResults": 100
}{
"mode": "passage",
"translationId": "en-kjv",
"reference": "John 3:16",
"includeMetadata": true
}When localized book names or slugs work better as API fields than as free text, use structured input:
{
"mode": "passage",
"translationId": "swh-onen",
"book": "yohana",
"chapter": 3,
"verse": 2,
"includeMetadata": true
}Use endVerse for same-chapter structured ranges:
{
"mode": "passage",
"translationId": "swh-onen",
"book": "warumi",
"chapter": 8,
"verse": 28,
"endVerse": 30,
"includeMetadata": true
}{
"mode": "validate_reference",
"translationId": "en-kjv",
"reference": "Romans 8:28"
}- Run
catalogwith a language code, e.g.swh. - Run
translation_booksfor the returned translation ID, e.g.swh-onen. - Use the returned
bookSlugor book name in structured passage input. - Retrieve Scripture text.
Manual Trigger β HTTP Request node calling the Apify Actor β Parse returned dataset item β Use Scripture text downstream
After the run finishes, read the default dataset items and use fields such as text, reference, translationId, book, chapter, and verse in later n8n nodes. Use translation_books first when you need to discover localized book names before building a passage reference.
This Actor is useful for agents that need structured Scripture lookup, reference validation, catalog discovery, or translation book metadata. It does not provide theological interpretation, sermon writing, devotional content, embeddings, or RAG chunks.
- Use
catalogto discover valid translation IDs and language codes. - Use
translation_booksto discover book names before lookup. - Use
validate_referencebefore taking downstream action on a user-provided reference. - Use
passagewith structured fields when localized references are better represented as API fields than free text, or withreferencefor simple English / canonical free-text lookup.
{
"recordType": "translation",
"mode": "catalog",
"source": {
"provider": "ScriptureFlow",
"endpoint": "/public-catalog.json",
"docsUrl": "https://scriptureflow-dev-docs.pages.dev",
"apiCtaUrl": "https://scriptureflow-dev-docs.pages.dev?utm_source=apify&utm_medium=actor&utm_campaign=scriptureflow_bible_data",
"retrievedAt": "2026-06-13T00:00:00.000Z"
},
"translationId": "en-kjv",
"languageCode": "eng",
"translationName": "King James Version",
"status": "ready"
}{
"recordType": "book",
"mode": "translation_books",
"translationId": "swh-onen",
"book": "Yohana",
"bookSlug": "yohana",
"canonicalBook": "john",
"chaptersFound": 21,
"firstChapter": 1,
"lastChapter": 21,
"totalVerses": 879,
"source": {
"provider": "ScriptureFlow",
"endpoint": "/swh-onen/chapters.json",
"docsUrl": "https://scriptureflow-dev-docs.pages.dev",
"apiCtaUrl": "https://scriptureflow-dev-docs.pages.dev?utm_source=apify&utm_medium=actor&utm_campaign=scriptureflow_bible_data",
"retrievedAt": "2026-06-13T00:00:00.000Z"
}
}{
"recordType": "verse",
"mode": "passage",
"source": {
"provider": "ScriptureFlow",
"endpoint": "/api/verse",
"docsUrl": "https://scriptureflow-dev-docs.pages.dev",
"apiCtaUrl": "https://scriptureflow-dev-docs.pages.dev?utm_source=apify&utm_medium=actor&utm_campaign=scriptureflow_bible_data",
"retrievedAt": "2026-06-13T00:00:00.000Z"
},
"valid": true,
"translationId": "en-kjv",
"reference": "John 3:16",
"book": "john",
"chapter": 3,
"verse": 16,
"text": "For God so loved the world..."
}{
"recordType": "validation",
"mode": "validate_reference",
"source": {
"provider": "ScriptureFlow",
"endpoint": "/api/verse",
"docsUrl": "https://scriptureflow-dev-docs.pages.dev",
"apiCtaUrl": "https://scriptureflow-dev-docs.pages.dev?utm_source=apify&utm_medium=actor&utm_campaign=scriptureflow_bible_data",
"retrievedAt": "2026-06-13T00:00:00.000Z"
},
"valid": true,
"translationId": "en-kjv",
"inputReference": "Romans 8:28",
"normalizedReference": "Romans 8:28",
"book": "romans",
"chapter": 8,
"verse": 28
}{
"recordType": "error",
"mode": "translation_books",
"source": {
"provider": "ScriptureFlow",
"endpoint": "/bad-id/chapters.json",
"docsUrl": "https://scriptureflow-dev-docs.pages.dev",
"apiCtaUrl": "https://scriptureflow-dev-docs.pages.dev?utm_source=apify&utm_medium=actor&utm_campaign=scriptureflow_bible_data",
"retrievedAt": "2026-06-13T00:00:00.000Z"
},
"valid": false,
"errorCode": "REFERENCE_NOT_FOUND",
"message": "ScriptureFlow could not resolve the requested translation.",
"translationId": "bad-id",
"inputReference": null,
"status": 404
}User / input errors do not fail the Actor β they write structured rows and exit successfully. Infrastructure errors (ScriptureFlow API downtime, malformed JSON, request timeouts after retries, unexpected response shapes, unhealthy status, or Apify storage failure) fail clearly. The Actor does not fake Scripture data and does not use fallback Scripture text.
Default input:
{
"mode": "catalogSummary"
}Example passage input:
{
"mode": "passage",
"translationId": "en-kjv",
"reference": "John 3:16",
"includeMetadata": true,
"maxResults": 100
}| Field | Description |
|---|---|
mode |
One of catalog, catalogSummary, translation_books, passage, validate_reference. |
translationId |
ScriptureFlow translation ID (e.g. en-kjv, swh-onen); required for translation_books, passage, and validate_reference. |
reference |
e.g. John 3:16; used for free-text passage and required for validate_reference. Localized names like Juan 3:16 may work when the translation and ScriptureFlow's canonical book map support that alias. |
book |
Structured passage book value, e.g. yohana; use the bookSlug or book name returned by translation_books. |
chapter |
Structured passage chapter number; required when any structured passage field is used. |
verse |
Structured passage starting verse; required when any structured passage field is used. |
endVerse |
Optional same-chapter ending verse for structured ranges. |
languageCode |
Optional catalog filter for translation language. |
search |
Optional catalog search across safe catalog fields such as translation ID, translation name, language code, and language name when available. |
fullBibleOnly |
Optional catalog filter for translations whose available coverage counts indicate at least 66 books and 1,189 chapters. This is a coverage-count inference, not a denominational canon classification. |
includeMetadata |
Include available non-text metadata in verse rows. |
maxResults |
Maximum number of catalog or translation-book metadata rows to write. |
Supported reference formats: John 3:16, John 3:16-18, Romans 8:28-30, Psalm 23, 1 John 1:9. Localized book aliases (e.g. Juan 3:16) work where they exist in ScriptureFlow's canonical book map. Multi-reference input such as John 3:16; Romans 8:28 is not supported in this version.
If any structured fields are provided, the Actor uses structured lookup and requires book, chapter, and verse; endVerse is optional. For multilingual workflows, structured passage input is often more reliable than free-text localized references. Because mode is a dropdown enum in the Apify UI, invalid mode values may be rejected by the platform before runtime; the Actor still keeps a code-level INVALID_MODE handler as a defensive fallback for local runs and direct API calls. Click the Input tab for the full schema.
The most reliable way to see every supported translation is to run the Actor in catalog mode, which lists each available translation and its language code β perfect for app dropdowns, multilingual workflows, or agent translation selection.
Use search to find catalog rows by translation ID, translation name, or language code. Use fullBibleOnly to limit catalog rows to translations whose current coverage counts indicate full-Bible coverage; it does not classify denominational canons.
A preview translations list is also available here:
https://scriptureflow-api-preview.pages.dev/translations.json
Note that this is a preview endpoint, so treat catalog mode as the authoritative source when building production workflows.
- π Bible verse lookup for apps, spreadsheets, and dashboards.
- π Multilingual Scripture workflows where users select a translation by language.
- π Discovering localized book names for translations such as Swahili
swh-onen. - βοΈ n8n automations that need clean Scripture text and reference fields.
- π€ AI agents that need safe catalog discovery, translation book metadata, reference validation, or structured passage lookup.
- π§ͺ Form validation for Bible references before writing to a database.
- π Translation dropdowns powered by ScriptureFlow catalog metadata.
- π§± Lightweight Scripture lookup without scraping Bible websites.
In the interest of being upfront β please review these before building production workflows:
- Some translations are full Bible; others are New Testament or portion-only.
- Book names and coverage may vary by translation.
- Use
catalog(andtranslation_books) mode to confirm supported translations and books before building production workflows. - Licensing and usage terms may vary by translation (see the disclaimer below).
Because ScriptureFlow returns structured data with deterministic translation IDs and does not depend on any third-party Bible website's HTML, your automations are far less likely to silently break when an external site changes. Structured JSON output, a discoverable catalog, documented modes, predictable dataset rows, and structured error rows instead of crashes give you the repeatability that API-style and agent workflows need. Combined with the Apify platform's scheduling, monitoring, API access, and integrations, that makes ScriptureFlow Bible Data a dependable foundation rather than a fragile scraper.
This Actor does not include pay-per-event logic, API key gating, or custom monetization. Normal Apify platform compute and storage usage may still apply based on your Apify plan. Default passage and validation runs are intentionally small, and catalog and translation-book output can be bounded with maxResults.
ScriptureFlow Bible Data provides structured access to ScriptureFlow data. You are responsible for confirming that your use of any translation complies with applicable copyright, licensing, and attribution requirements. ScriptureFlow does not grant rights to restricted Bible translations unless those rights are explicitly stated.
For higher-volume API access, custom integrations, or direct ScriptureFlow API use, visit the ScriptureFlow developer docs:
β‘οΈ ScriptureFlow developer docs
For Actor run support, include the run ID, input JSON, and OUTPUT_SUMMARY.json content when requesting help.
No. ScriptureFlow Bible Data calls the public ScriptureFlow API only. It does not scrape BibleGateway, YouVersion, Blue Letter Bible, Logos, or any third-party Bible website, and it does not depend on their page layouts.
No. It supports catalog lookup, metadata-only translation_books discovery, passage lookup, and validate_reference only. It does not provide full Bible export, book mode, chapter mode, random verse mode, or bulk export.
No. It returns structured Scripture data and validation results only. It does not generate theological interpretation, sermon content, devotional content, commentary, embeddings, or RAG chunks.
Yes. ScriptureFlow is built around translation-aware and language-aware Bible data. Use catalog mode to discover available translations and language codes, then choose your translationId. Where ScriptureFlow has localized book aliases available, the Actor can resolve names such as Juan 3:16 for Spanish workflows. Alias availability varies by language and translation, so validate references before using them downstream. Use translation_books mode to discover book names for a translation before building passage references.
No. The Actor does not translate Scripture text or convert references between languages. It looks up ScriptureFlow translations and can use localized book aliases only where ScriptureFlow already has them available.
UNSUPPORTED_REFERENCE_FORMATβ the reference is outside the supported simple-reference formats.REFERENCE_NOT_FOUNDβ ScriptureFlow could not resolve the requested reference or translation.INVALID_MODEβ the requested mode is not supported. Use onlycatalog,catalogSummary,translation_books,passage, orvalidate_reference.REQUEST_FAILED_AFTER_RETRIESβ ScriptureFlow returned a retryable infrastructure error after bounded retries.
Yes. The Actor writes predictable dataset rows and includes output and dataset schemas to help automations and agents understand the result structure.
See ./CHANGELOG.md.