📘 ScriptureFlow Developer Docs

Developer Quickstart

Start using ScriptureFlow with specific verse lookup, Verse of the Day, and Quick Verse.

Base URL

https://scriptureflow-api-preview.pages.dev

Step 1 — Use exact version keys

The version value is an exact lookup key, not a display name.

For the King James Version, use:

en-kjv

Do not use:

kjv

Do not use:

en-KJV

To see available translations and version keys, use:

https://scriptureflow-api-preview.pages.dev/translations.json

Step 2 — Choose the right endpoint

Need Use
A specific verse or same-chapter passage /api/verse
A stable daily verse for a translation /[version]/random.json
A fresh random verse on refresh /api/quick-verse?version=[version]

Lookup a single verse

Use /api/verse with version, book, chapter, and verse.

https://scriptureflow-api-preview.pages.dev/api/verse?version=en-kjv&book=John&chapter=3&verse=16

JavaScript

const baseUrl = "https://scriptureflow-api-preview.pages.dev";

const url = `${baseUrl}/api/verse?version=en-kjv&book=John&chapter=3&verse=16`;

const response = await fetch(url);
const data = await response.json();

console.log(data.reference);
console.log(data.result.text);

Python

import requests

base_url = "https://scriptureflow-api-preview.pages.dev"

url = f"{base_url}/api/verse?version=en-kjv&book=John&chapter=3&verse=16"

response = requests.get(url, timeout=20)
data = response.json()

print(data["reference"])
print(data["result"]["text"])

cURL

curl "https://scriptureflow-api-preview.pages.dev/api/verse?version=en-kjv&book=John&chapter=3&verse=16"

Lookup a same-chapter passage

To request a passage range within the same chapter, add end_verse.

https://scriptureflow-api-preview.pages.dev/api/verse?version=en-kjv&book=Amos&chapter=8&verse=4&end_verse=6

JavaScript

const baseUrl = "https://scriptureflow-api-preview.pages.dev";

const url = `${baseUrl}/api/verse?version=en-kjv&book=Amos&chapter=8&verse=4&end_verse=6`;

const response = await fetch(url);
const data = await response.json();

console.log(data.reference);
console.log(data.result);

Lookup by free-text reference

You can also request a verse using a URL-encoded reference value.

https://scriptureflow-api-preview.pages.dev/api/verse?version=en-kjv&reference=John%203%3A16

JavaScript

const baseUrl = "https://scriptureflow-api-preview.pages.dev";

const reference = encodeURIComponent("John 3:16");
const url = `${baseUrl}/api/verse?version=en-kjv&reference=${reference}`;

const response = await fetch(url);
const data = await response.json();

console.log(data.reference);
console.log(data.result.text);

Use Verse of the Day

Verse of the Day is available at /[version]/random.json. It is static generated JSON. It does not return a new verse on every refresh.

https://scriptureflow-api-preview.pages.dev/en-kjv/random.json

JavaScript

const baseUrl = "https://scriptureflow-api-preview.pages.dev";

const response = await fetch(`${baseUrl}/en-kjv/random.json`);
const data = await response.json();

console.log(data.reference);
console.log(data.text);
Verse of the Day is generated separately for each translation because translations may differ in canon, book availability, chapter divisions, and verse numbering.

Use Quick Verse

Quick Verse returns a runtime-selected verse from the requested translation. Refreshing the request can return a different verse.

https://scriptureflow-api-preview.pages.dev/api/quick-verse?version=en-kjv

JavaScript

const baseUrl = "https://scriptureflow-api-preview.pages.dev";

const response = await fetch(`${baseUrl}/api/quick-verse?version=en-kjv`);
const data = await response.json();

console.log(data.reference);
console.log(data.text);

Python

import requests

url = "https://scriptureflow-api-preview.pages.dev/api/quick-verse?version=en-kjv"

response = requests.get(url, timeout=20)
data = response.json()

print(data["reference"])
print(data["text"])

cURL

curl "https://scriptureflow-api-preview.pages.dev/api/quick-verse?version=en-kjv"

Next steps

  • Use /translations.json to let users select valid translation keys.
  • Use /api/verse for specific lookup and passage tools.
  • Use /[version]/random.json for stable daily displays.
  • Use /api/quick-verse for “surprise me” or refreshable verse experiences.