Authentication
API.Bible allows any developer to include Scripture content and text anywhere in their website or application for non-commercial purposes.
Before you can access the API you must first create an Account to retrieve your own personalized API key. Head on over to our sign up page to get started.
Once your application has been approved you can find your API key in your Dashboard settings.
If at any point you need further assistance, please visit our support page!
Authenticate your account when using the API by including your secret API key in each request. You can manage your API keys your account's dashboard. Your API keys carry many privileges, so be sure to keep them private.
The authentication process uses a variation of HTTP Basic Auth. For each request you must place your private key into the api-key header
curl --request GET \
--url https://api.scripture.api.bible/v1/bibles \
--header 'api-key: test_okikJOvBiI2HlWgH4'
Errors
200
Success
400
Invalid ID supplied
401
The API key provided is either missing, invalid, or unauthorized for API access.
403
Server understood the request, but provided API key is not authorized to retrieve this information.
404
Resource not found.
Rate Limiting
The API.Bible allows any developer to include Scripture content and text anywhere in their website or application for non-commercial purposes.
API.Bible is free for non-commercial usage. The API is rate limited to prevent abuse that would degrade our ability to maintain consistent API performance for all users. Each API key or app is allowed to request up to 500 consecutive verses at a time and make 5,000 queries per day.
If you are interested in commercial usage or more access, contact us!
Versioning
When we make backwards-incompatible changes to the API, we release new versions. The version is indicated in the URI using a path prefix. The current version is v1
.
Below is an example URI. Notice the included v1
:https://api.scripture.api.bible/v1/bibles
/v1/bibles/{bibleId}/books/{bookId}
Gets a single Book
object for a given bibleId
and bookId
/v1/audio-bibles/{audioBibleId}/books
Gets an array of Book
objects for a given audioBibleId
/v1/audio-bibles/{audioBibleId}/books/{bookId}
Gets a single Book
object for a given audioBibleId
and bookId
/v1/bibles/{bibleId}/books/{bookId}/chapters
Gets an array of Chapter
objects for a given bibleId
and bookId
/v1/bibles/{bibleId}/chapters/{chapterId}
Gets a single Chapter
object for a given bibleId
and chapterId
.
This Chapter object also includes an content
property with all verses for the Chapter.
/v1/audio-bibles/{audioBibleId}/books/{bookId}/chapters
Gets an array of Chapter
objects for a given audioBibleId
and bookId
/v1/audio-bibles/{audioBibleId}/chapters/{chapterId}
Gets a single Chapter
object for a given audioBibleId
and chapterId
.
This AudioChapter object also includes an resourceUrl
property with a HTTP URL
to the mp3 audio resource for the chapter. The resourceUrl
is unique per request
and expires in XX minutes. The expiresAt
property provides the Unix time value ofresourceUrl
expiration.
/v1/bibles/{bibleId}/passages/{passageId}
Gets a Passage
object for a given bibleId
and passageId
. This
Passage object also includes an content
property with all verses
corresponding to the passageId.
The passageId
parameter can represent a chapter, verse, or range of verses.
/v1/bibles/{bibleId}/books/{bookId}/sections
Gets an array of Section
objects for a given bibleId
and bookId
/v1/bibles/{bibleId}/chapters/{chapterId}/sections
Gets an array of Section
objects for a given bibleId
and chapterId
/v1/bibles/{bibleId}/sections/{sectionId}
Gets a single Section
object for a given bibleId
and sectionId
. This Section
object also includes an content
property with all verses for the Section.
/v1/bibles/{bibleId}/chapters/{chapterId}/verses
Gets an array of Verse
objects for a given bibleId
and chapterId
/v1/bibles/{bibleId}/verses/{verseId}
Gets a Verse
object for a given bibleId
and verseId
. This
Verse object also includes an content
property with the verse
corresponding to the verseId.
/v1/bibles/{bibleId}/search
Gets search results for a given bibleId
and query string. Searches
will match all verses with the list of keywords provided in the query string.
Order of the keywords does not matter. However all keywords must be
present in a verse for it to be considered a match.
The total number of results returned from a search can be limited by populating the limit
attribute in the query string with a non-negative integer value. If no
limit value is provide a default of 10 is used.offset
can be used to traverse paginated results. So for example if you are using
the default limit
of 10, using an offset
of 10 will return the second page of results,
namely results 11-20.
The text
property of each verse object contains only the verse text. It does not
contain footnote references. However, those can be queried directly using the/bibles/{bibleId}/verses/{verseId}
endpoint.