Skip to main content

SDKs

Three official clients wrap the API so you can call methods instead of writing GraphQL. All three are MIT licensed and published.

LanguagePackageSource
Rubybibleql-ruby on RubyGemslporras/bibleql-ruby
Node.js / TypeScriptbibleql-js on npmlporras/bibleql-js
Pythonbibleql on PyPIlporras/bibleql-python
Gemfile
gem "bibleql-ruby"
npm
npm install bibleql-js
pip
pip install bibleql

Then see Configuring the SDKs for where to initialize the client.

There is also an examples repository showing the Ruby and Node clients in use.

Coverage​

No SDK covers the whole schema yet. Where a method is missing, use the GraphQL or cURL form — every example on this site shows both.

QueryRubyNode.jsPython
translations✅✅✅
translation✅✅✅
books✅✅✅
languages✅✅✅
passage✅✅✅
chapter✅✅✅
verse✅✅✅
randomVerse✅✅✅
search✅✅✅
verseOfTheDay✅✅✅
bibleIndex✅✅✅
semanticSearch❌✅✅
concordance❌❌✅
concordanceIndex❌❌✅

The concordance family is only in the Python client so far. Concordance shows the GraphQL directly. Offline packages are not in any client yet.

All are server-side only​

Never ship an API key to a browser

bibleql-js is built for Node.js and its README says explicitly not to use it in frontend code. Bundling it into a browser app exposes your key to anyone who opens devtools.

If you need Bible text in a client application, call BibleQL from your own backend and proxy the result.

Typed errors​

All three map API failures to exception classes, so you can branch on type rather than parsing messages:

ConditionRubyNode.jsPython
Bad keyBibleQL::AuthenticationErrorAuthenticationErrorbibleql.AuthenticationError
Rate limitedBibleQL::RateLimitErrorRateLimitErrorbibleql.RateLimitError
Not foundBibleQL::NotFoundErrorNotFoundErrorbibleql.NotFoundError
Server errorBibleQL::ServerErrorServerErrorbibleql.ServerError
TimeoutBibleQL::TimeoutErrorTimeoutErrorbibleql.RequestTimeoutError
Network failureBibleQL::ConnectionErrorConnectionErrorbibleql.NetworkError
GraphQL errorBibleQL::QueryErrorQueryErrorbibleql.QueryError

See Errors for the underlying wire format.

Check the default endpoint

The Ruby and Node SDKs currently default to a Render-hosted URL rather than https://bibleql.org/graphql. The Python client already defaults to bibleql.org. If you want to pin the canonical endpoint, set it explicitly — api_url in Ruby, apiUrl in Node. Each SDK page shows how.