YouVersion PlatformYouVersion Platform
PlatformContent LibraryDev 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
search
    Get suggested or trending search queries.getSearch the Platform for Bible verses, topics and images.getSearch the Platform for topics related to a query.getSearch the Platform for Bible verses.getSearch the Platform for verse images.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
apps
    Get details about a specific app in the Platform.get
images
    List verse-art images, optionally filtered by language and/or verse.getResolve a verse-art image id to its full metadata.get
Schemas
Transformers
Transformers

data exchange

Endpoint

Provides short-lived tokens and browser redirect flows for app data exchange.


Show the data exchange approval page.

GET
https://api.youversion.com
/data-exchange

Returns the data exchange approval page for a short-lived token. The page renders in a browser. First, the app must create a token with POST /data-exchange/token. Then the app opens this URL in the browser of the user, with the token and app context. On the page, the user reviews the requested permissions. Then the user approves or cancels the exchange.

Approval is a one-time experience. If the user approved these permissions in an earlier exchange, this request does not render the page. The system consumes the token and redirects to the app callback with data_exchange_status=granted. This completes the exchange. The app must accept a granted callback from this URL without a second form submit.

Show the data exchange approval page. › query Parameters

token
​string · required

Short-lived data exchange token created by POST /data-exchange/token.

x-yvp-app-key
​string

Public app key used to resolve the app for direct browser flows.

x-yvp-app-id
​string · uuid

App identifier used when a public app key is not supplied.

Show the data exchange approval page. › Responses

Data exchange approval page rendered as HTML.

string
GET/data-exchange
curl --request GET \ --url 'https://api.youversion.com/data-exchange?token=%3Cstring%3E'
shell
Example Responses
string
html
text/html

Complete the data exchange approval flow.

POST
https://api.youversion.com
/data-exchange

Completes the browser approval flow. Redirects the browser to the configured callback URL of the app. When the user approves, the callback receives data_exchange_status=granted and granted_permissions. When the user cancels on the approval page, the callback receives data_exchange_status=cancelled, denied_permissions, and error=access_denied. After a recoverable error, if the system knows a safe callback, it redirects with data_exchange_status=error, error, and error_description.

Complete the data exchange approval flow. › query Parameters

token
​string

Short-lived data exchange token created by POST /data-exchange/token.

x-yvp-app-key
​string

Public app key used to resolve the app when a token is not supplied.

x-yvp-app-id
​string · uuid

App identifier used when a public app key is not supplied.

Complete the data exchange approval flow. › Headers

Authorization
​string

Bearer access token used only by clients that complete the flow without a token.

Complete the data exchange approval flow. › Responses

Redirects to the app callback URL with the data exchange result.

No data returned
POST/data-exchange
curl --request POST \ --url https://api.youversion.com/data-exchange
shell
Example Responses
No example specified for this content type

Create a data exchange token.

POST
https://api.youversion.com
/data-exchange/token

Creates a short-lived token. The app passes the token to the /data-exchange browser flow as a query parameter. Send requested_permissions in the request body. It declares which permissions the user must review during the browser flow.

Tokens expire after five minutes. Each token is single-use. The system consumes a token when the user submits the form. The system also consumes a token when GET /data-exchange skips the approval page, because the user already approved the requested permissions. Create a new token for each exchange.

Create a data exchange token. › query Parameters

x-yvp-app-key
​string

Public app key used to resolve the app for direct browser flows.

x-yvp-app-id
​string · uuid

App identifier used when a public app key is not supplied.

Create a data exchange token. › Headers

Authorization
​string · required

Bearer access token for the authenticated user.

Create a data exchange token. › Request Body

requested_permissions
​string[] · minItems: 1 · required

Data exchange permissions the user should review in the browser flow.

Enum values:
highlights

Create a data exchange token. › Responses

Data exchange token created.

token
​string · required

Opaque single-use token for the data exchange flow. Returned only once.

token_type
​string · enum · required
Enum values:
data_exchange
Example: data_exchange
expires_in
​integer · int32 · required

Token lifetime in seconds.

Example: 300
POST/data-exchange/token
curl --request POST \ --url https://api.youversion.com/data-exchange/token \ --header 'Authorization: <string>' \ --header 'Content-Type: application/json' \ --data ' { "requested_permissions": [ "highlights" ] } '
shell
Example Request Body
{ "requested_permissions": [ "highlights" ] }
json
Example Responses
{ "token": "token", "token_type": "data_exchange", "expires_in": 300 }
json
application/json

biblesfonts