Bible Gateway API: Get Bible passage
Reads up to one chapter of a Bible passage in a chosen Bible Gateway translation. Licensed translations may show only part of the requested passage.
Unofficial. Not affiliated with or endorsed by Bible Gateway.
Inputs
Values from the run on Oct 23, 2026, shown under Output.
- Reference, required
reference Bible passage, for example John 3:16, Psalm 23, or Romans 8:28-39.
Psalm 23
- Translation optional
translation Translation name or abbreviation, for example King James Version or KJV. Defaults to NIV.
King James Version
Default
NIV.
Input as JSON
{ "reference": "Psalm 23", "translation": "King James Version"}Output
{ "link": "https://www.biblegateway.com/passage/?search=Psalm%2023&version=KJV" , "verses": [ { "book": "Psalm", "text": "The Lord is my shepherd; I shall not want.", "chapter": 23, "verse_number": 1 }, { "book": "Psalm", "text": "He maketh me to lie down in green pastures: he leadeth me beside the still waters.", "chapter": 23, "verse_number": 2 }, { "book": "Psalm", "text": "He restoreth my soul: he leadeth me in the paths of righteousness for his name's sake.", "chapter": 23, "verse_number": 3 } ], "copyright": "Public Domain", "reference": "Psalm 23", "translation_name": "King James Version", "translation_abbreviation": "KJV"}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"biblegateway.com/get_passage","input":{"reference":"Psalm 23","translation":"King James Version"}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "biblegateway.com/get_passage" , "input": { "reference": "Psalm 23", "translation": "King James Version" }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "biblegateway.com/get_passage" , "input": { "reference": "Psalm 23", "translation": "King James Version" } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run biblegateway.com/get_passage# with {"reference":"Psalm 23","translation":"King James Version"}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "required": [ "reference" ], "properties": { "reference": { "type": "string", "description": "Bible passage, for example John 3:16, Psalm 23, or Romans 8:28-39." }, "translation": { "type": "string", "default": "NIV", "description": "Translation name or abbreviation, for example King James Version or KJV. Defaults to NIV." } }}Output schema
{ "type": "object", "required": [ "reference", "translation_name", "translation_abbreviation", "verses", "copyright", "link" ], "properties": { "link": { "type": "string", "description": "Bible Gateway passage page." }, "verses": { "type": "array", "items": { "type": "object", "required": [ "book", "chapter", "verse_number", "text" ], "properties": { "book": { "type": "string" }, "text": { "type": "string" }, "chapter": { "type": "integer" }, "verse_number": { "type": "integer" } }, "additionalProperties": false } }, "copyright": { "type": [ "string", "null" ], "description": "Copyright line shown for the translation." }, "reference": { "type": "string", "description": "Passage reference as shown on Bible Gateway." }, "translation_name": { "type": "string" }, "translation_abbreviation": { "type": "string" } }, "additionalProperties": false}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
biblegateway.com/get_passage- Returns
- reference, translation name and abbreviation, verses, copyright, passage link
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method biblegateway.com/get_passage with the inputs above.
Ask your agent
- Can you pull up Psalm 23 in the King James Version?
- I need the text of Romans 8:28-39 in the NIV.
- Show me John 3:16 from the ESV translation on Bible Gateway.
- What does Isaiah 40:28-31 say in the New Living Translation?
- Read Genesis 1:1-5 for me in the NASB.
See more
All Bible Gateway methodsFinds Bible verses on Bible Gateway that contain the search words or relate to a topic. Returns the verse text and links in Bible order.
biblegateway.com/search_bibleGets Bible Gateway's Verse of the Day in the requested translation (NIV by default). The date is the one Bible Gateway assigns, which may differ from the local date.
biblegateway.com/get_verse_of_the_dayFinds Quran.com verses matching a word or topic, with Arabic text and a translation in the selected language, in Quran.com search order.
quran.com/search_quranFinds free public-domain Project Gutenberg books by title, author or topic, with authors, languages, subjects, recent downloads, and reading and download links. Public-domain status is based on the United States.
gutenberg.org/search_free_booksGets the plain text of a public-domain Project Gutenberg book by title, optionally matching its author and language. Chooses the most downloaded matching edition with a plain-text file, removes the Gutenberg header and license, and can cut the text after a chosen number of words.
gutenberg.org/get_book_textTranslates a word or phrase between languages using WordReference, including usage notes, example sentences and compound forms when shown. Only language pairs listed by WordReference are available.
wordreference.com/translate_wordTranslates up to 5,000 characters on Google Translate, with the detected source language, Latin-letter pronunciation when shown, and dictionary alternatives for words or short phrases.
translate.google.com/translate_textTranslates a word between English and a language Cambridge supports. Returns the meanings, the translations and any paired examples.
dictionary.cambridge.org/translate_word