YouVersion PlatformYouVersion Platform
PlatformBiblesDev Docs
CommunityPartnersSupport

YouVersion Platform

Build applications and integrate with the world's most popular Bible platform.

Platform Products

  • Platform Portal
  • Developer Documentation
  • App Management

Resources

  • Support
  • Press inquiries

Legal

  • Privacy Policy
  • Terms of Use

© 2026 YouVersion. All rights reserved.

  • Overview
  • API Reference
  • SDKs
  • Changelog
<  Back to Platform
bibles
    Get a Bible collectiongetGet a Bible's datagetGet the index for a BiblegetGet a passage of Bible textgetGet a Book collection for a BiblegetGet a Book's datagetGet a Chapter collection for a BookgetGet a Chapter's datagetGet a Verse collection for a ChaptergetGet a Verse's dataget
data exchange
    Show the data exchange approval page.getComplete the data exchange approval flow.postCreate a data exchange token.post
fonts
    Get a collection of fonts supported in the Platform.getGet details about a specific font family in the Platform.getGet a browser-consumable stylesheet for a specific font family.get
highlights
    Get a collection of highlights for a user.getCreate or update a highlight on a passage.postClear highlights for a passage.delete
languages
    Get a collection of languages supported in the Platform.getGet details about a specific language in the Platform.get
licenses
    Get a collection of licensesget
organizations
    Get a collection of organizations in the Platform.getGet details about a specific organization in the Platform.getGet bibles associated with a specific organization in the Platform.get
permissions
    Get permissions granted to an app.get
verse of the days
    Get the verse of the day calendar for an entire year.getGet the verse of the day for a specific day of the year.get
search_queries
    Get suggested or trending search queries.get
search_unified
    Search the Platform for Bible verses and related topics.get
search_topics
    Search the Platform for topics related to a query.get
search_verses
    Search the Platform for Bible verses.get
apps
    Get details about a specific app in the Platform.get
Schemas
Transformers
Transformers

languages

Endpoint

Provides data about the languages supported by the YouVersion platform. Use for presenting language options in your UI.


Get a collection of languages supported in the Platform.

GET
https://api.youversion.com
/v1/languages

Get a collection of language objects. Add the Country parameter to filter to prominent languages for that country. Send an Accept-Language header to control which name is returned in each language's localized_name; the negotiated locale is echoed in the Content-Language response header. Each object's display_names map carries a name in every supported locale and is therefore large, so request fields[] without display_names (and use page_size) when you only need localized_name.

Get a collection of languages supported in the Platform. › query Parameters

page_size
​

The number of items to return in the collection. Numeric values must be between 1 and 99. Special value "" is supported only when used in combination with the fields parameter and when the client requests three or fewer fields (see fields parameter). When "" is used the server will return all matching items for the requested resource (no numeric page limit).

fields[]
​string[]

A list of top-level fields to include in each resource object. Use bracket notation to pass multiple values, for example: fields[]=id&fields[]=name&fields[]=language. When provided, page_size=* is allowed only if the number of fields requested is three (3) or fewer.

Example: ["id","name","language"]
page_token
​string

The page token to retrieve results from.

Example: eyJzdGFydF9hdCI6IDI2fQ==
country
​string

The ISO 3166 2 character country code

Example: US
bibles_available
​boolean

Filter languages based on whether Bible content is available for that language.

Default: false

Get a collection of languages supported in the Platform. › Headers

Accept-Language
​string

The localization preferred as a response to the request. See RFC 2616 section 14.4 for further details.

Example: en
Default: en

Get a collection of languages supported in the Platform. › Responses

Successful request

​object[] · readOnly · required
next_page_token
​string · readOnly

Token to send to server when retrieving the next page of results.

Example: eyJzdGFydF9hdCI6IDI2fQ==
total_size
​integer · int32

Total number of languages in collection matching parameters.

Example: 6000
GET/v1/languages
curl --request GET \ --url https://api.youversion.com/v1/languages
shell
Example Responses
{ "data": [ { "id": "en", "language": "sr", "script": "Latn", "script_name": "Latin", "aliases": [], "display_names": { "en": "German" }, "localized_name": "allemand", "scripts": [ "Cyrl", "Latn" ], "variants": [ "1996", "fonipa" ], "countries": [ "RS", "BA", "ME" ], "text_direction": "rtl", "writing_population": 1327104050, "speaking_population": 1636485840, "default_bible_id": 3034 } ], "next_page_token": "eyJzdGFydF9hdCI6IDI2fQ==", "total_size": 6000 }
json
application/json

Get details about a specific language in the Platform.

GET
https://api.youversion.com
/v1/languages/{language_id}

Get a single language resource by its BCP47 language code. Send an Accept-Language header to control which name is returned in localized_name; the negotiated locale is echoed in the Content-Language response header. The display_names map carries a name in every supported locale and is therefore large, so request fields[] without display_names when you only need localized_name.

Get details about a specific language in the Platform. › path Parameters

language_id
​string · required

The language identifier uses the canonical BCP 47 language code, optionally including the script subtag when it distinguishes writing systems (for example, sr-Latn vs sr-Cyrl). Region subtags are excluded because they usually represent contextual or user-specific preferences rather than the intrinsic identity of the language, with one exception: a small, enumerated set of region variants that speakers treat as distinct languages is preserved (es-419, es-ES, pt-BR, pt-PT, zh-Hant-HK, zh-Hant-TW). Every other region, plus variants and extensions, is excluded, and a request for one redirects to the canonical region-agnostic id. This keeps identifiers stable and minimal while still surfacing the variants users distinguish.

Example: en

Get details about a specific language in the Platform. › Headers

Accept-Language
​string

The localization preferred as a response to the request. See RFC 2616 section 14.4 for further details.

Example: en
Default: en

Get details about a specific language in the Platform. › Responses

Successful request

Region-agnostic language resource keyed by canonical BCP 47 language or language+script. Variants and a simple extensions indicator are included for completeness, but regions are excluded except for a small, enumerated set of region variants that speakers treat as distinct languages (for example pt-PT vs pt-BR, es-ES vs es-419); full extension data is always excluded.
id
​string · pattern: ^(?:[a-z]{2,3}(?:-[A… · required

Canonical BCP 47 id limited to language, language+script, or one of the enumerated region-significant variants (es-419, es-ES, pt-BR, pt-PT, zh-Hant-HK, zh-Hant-TW). Other regions, variants, and extensions are not allowed.

Example: en
language
​string · pattern: ^[a-z]{2,3}$ · required

ISO 639 canonical language subtag

Example: sr
script
​string | null · pattern: ^[A-Z][a-z]{3}$

ISO 15924 script code if present in id

Example: Latn
script_name
​string | null

The English name for the script

Example: Latin
aliases
​string[]

Deprecated or legacy subtags mapped during canonicalization for this language.

Example: []
​object

A map of every known display name for this language, keyed by the locale the name is written in. Covers all locales the platform can render (e.g. the English, endonym, and hundreds of other localized names), so this object is large; request fields[] without display_names to omit it when you only need localized_name.

localized_name
​string | null

The single display name chosen from display_names for the request's Accept-Language header. Selection is per language and uses the Accept-Language priority list, then falls back to the English name, then the first available name. The Content-Language response header reports the locale negotiated for the response as a whole; in a collection an individual language may fall back to a different locale than that header when it has no name in the negotiated one. Use this when you want one name to show the user; use display_names when you need the full set.

Example: allemand
scripts
​string[]

All scripts known for this language (CLDR/ISO-15924)

Example: ["Cyrl","Latn"]
variants
​string[]

Variants associated with this language (not part of the id)

Example: ["1996","fonipa"]
countries
​string[]

Ids of countries where this language is used or supported. Extended details can be retrieved from the countries API with the provided id.

Example: ["RS","BA","ME"]
text_direction
​string · enum

Default text direction for this language. ltr is left to right and rtl is right to left.

Enum values:
ltr
rtl
Example: rtl
writing_population
​integer · int32

Estimated number of souls that write in this language.

Example: 1327104050
speaking_population
​integer · int32

Estimated number of souls that speak in this language.

Example: 1636485840
default_bible_id
​integer · int32

The chosen default Bible version for this language.

Example: 3034
GET/v1/languages/{language_id}
curl --request GET \ --url https://api.youversion.com/v1/languages/:language_id
shell
Example Responses
{ "id": "en", "language": "sr", "script": "Latn", "script_name": "Latin", "aliases": [], "display_names": { "en": "German" }, "localized_name": "allemand", "scripts": [ "Cyrl", "Latn" ], "variants": [ "1996", "fonipa" ], "countries": [ "RS", "BA", "ME" ], "text_direction": "rtl", "writing_population": 1327104050, "speaking_population": 1636485840, "default_bible_id": 3034 }
json
application/json

highlightslicenses