Before you start
Use exact version keys from /translations.json.
For King James Version, use:
en-kjv
Do not use:
kjv
Do not use:
en-KJV
Browser examples
Specific verse lookup
https://scriptureflow-api-preview.pages.dev/api/verse?version=en-kjv&book=John&chapter=3&verse=16
Same-chapter passage range
https://scriptureflow-api-preview.pages.dev/api/verse?version=en-kjv&book=Proverbs&chapter=3&verse=5&end_verse=6
Free-text reference lookup
https://scriptureflow-api-preview.pages.dev/api/verse?version=en-kjv&reference=Micah%206%3A8
Verse of the Day
https://scriptureflow-api-preview.pages.dev/en-kjv/random.json
Quick Verse
https://scriptureflow-api-preview.pages.dev/api/quick-verse?version=en-kjv
Use
/[version]/random.json for the stable Verse of the Day.
Use /api/quick-verse for a refreshable random verse.
JavaScript Fetch examples
Single verse
const baseUrl = "https://scriptureflow-api-preview.pages.dev";
const response = await fetch(
`${baseUrl}/api/verse?version=en-kjv&book=John&chapter=3&verse=16`
);
const data = await response.json();
console.log(data.reference);
console.log(data.result.text);
Same-chapter passage
const baseUrl = "https://scriptureflow-api-preview.pages.dev";
const response = await fetch(
`${baseUrl}/api/verse?version=en-kjv&book=Proverbs&chapter=3&verse=5&end_verse=6`
);
const data = await response.json();
console.log(data.reference);
console.log(data.result);
Free-text reference
const baseUrl = "https://scriptureflow-api-preview.pages.dev";
const reference = encodeURIComponent("Micah 6:8");
const response = await fetch(`${baseUrl}/api/verse?version=en-kjv&reference=${reference}`);
const data = await response.json();
console.log(data.reference);
console.log(data.result.text);
Verse of the Day
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);
Quick Verse
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 examples
Single verse
import requests
url = "https://scriptureflow-api-preview.pages.dev/api/verse?version=en-kjv&book=John&chapter=3&verse=16"
response = requests.get(url, timeout=30)
data = response.json()
print(data["reference"])
print(data["result"]["text"])
Verse of the Day
import requests
url = "https://scriptureflow-api-preview.pages.dev/en-kjv/random.json"
response = requests.get(url, timeout=30)
data = response.json()
print(data["reference"])
print(data["text"])
Quick Verse
import requests
url = "https://scriptureflow-api-preview.pages.dev/api/quick-verse?version=en-kjv"
response = requests.get(url, timeout=30)
data = response.json()
print(data["reference"])
print(data["text"])
cURL examples
Specific verse
curl "https://scriptureflow-api-preview.pages.dev/api/verse?version=en-kjv&book=John&chapter=3&verse=16"
Same-chapter passage
curl "https://scriptureflow-api-preview.pages.dev/api/verse?version=en-kjv&book=Proverbs&chapter=3&verse=5&end_verse=6"
Free-text reference
curl "https://scriptureflow-api-preview.pages.dev/api/verse?version=en-kjv&reference=Micah%206%3A8"
Verse of the Day
curl "https://scriptureflow-api-preview.pages.dev/en-kjv/random.json"
Quick Verse
curl "https://scriptureflow-api-preview.pages.dev/api/quick-verse?version=en-kjv"
Endpoint selection guide
| Use case | Endpoint |
|---|---|
| Search box where user enters “John 3:16” | /api/verse?version=en-kjv&reference=John%203%3A16 |
| Form with book/chapter/verse fields | /api/verse?version=en-kjv&book=John&chapter=3&verse=16 |
| Daily devotional card | /en-kjv/random.json |
| “Surprise me” or refreshable random verse button | /api/quick-verse?version=en-kjv |