Skip to main content

Developer

HolyArc API

Free REST API for Bible data, cross-references, and search. Use it to build devotional apps, widgets, or Bible study tools.

Authentication

All API requests require a bearer token. Generate your key in Settings → API Keys.

AUTHORIZATION HEADER

Authorization: Bearer ha_your_api_key_here

Rate limit: 60 requests/minute per key. Response headers include X-RateLimit-Remaining and X-RateLimit-Reset.

Base URL

https://holyarc.com

Endpoints

GET/api/v1/versesscope: verses

Retrieve verse(s) by reference or list by book/chapter.

Query Parameters

refstringoptionalVerse reference e.g. "John 3:16"
bookintegeroptionalBook index 0–65 (Genesis=0, Revelation=65)
chapterintegeroptionalChapter number (requires book)
limitintegeroptionalResults per page (1–200, default 50)
offsetintegeroptionalPagination offset (default 0)

Example

GET /api/v1/verses?ref=John+3:16
{
  "data": {
    "id": 26136,
    "reference": "John 3:16",
    "bookIndex": 42,
    "chapter": 3,
    "verseNum": 16,
    "kjvText": "For God so loved the world, that he gave his only begotten Son...",
    "nivText": "For God so loved the world that he gave his one and only Son..."
  }
}
GET/api/v1/cross-refsscope: cross-refs

Retrieve cross-references. Filter by verse or connection type.

Query Parameters

versestringoptionalVerse reference to fetch connections for
typestringoptionalprophecy | typology | parallel | theme
limitintegeroptionalMax results (1–200, default 50)
offsetintegeroptionalPagination offset

Example

GET /api/v1/cross-refs?verse=John+3:16&type=parallel
{
  "data": [
    {
      "id": 12345,
      "type": "parallel",
      "label": null,
      "confidence": 0.95,
      "fromVerse": {
        "id": 26136,
        "reference": "John 3:16",
        "kjvText": "..."
      },
      "toVerse": {
        "id": 23145,
        "reference": "Rom 5:8",
        "kjvText": "..."
      }
    }
  ],
  "meta": {
    "total": 1,
    "limit": 50,
    "offset": 0,
    "returned": 1
  }
}
GET/api/v1/searchscope: search

Keyword search across verse text and references.

Query Parameters

qstringrequiredSearch query (min 2 chars)
limitintegeroptionalMax results (1–50, default 20)

Example

GET /api/v1/search?q=shepherd
{
  "data": [
    {
      "id": 14012,
      "reference": "Psa 23:1",
      "kjvText": "The LORD is my shepherd; I shall not want."
    }
  ],
  "meta": {
    "query": "shepherd",
    "returned": 20
  }
}

Error Codes

400Bad Request — missing or invalid parameters.
401Unauthorized — missing or invalid API key.
403Forbidden — key is expired, disabled, or lacks required scope.
404Not Found — resource does not exist.
429Too Many Requests — rate limit exceeded. See Retry-After header.
500Internal Server Error — something went wrong on our side.

Usage Example

// JavaScript / TypeScript
const response = await fetch(
  'https://holyarc.com/api/v1/verses?ref=Psa+23:1',
  { headers: { Authorization: 'Bearer ha_your_key' } }
);
const { data } = await response.json();
console.log(data.kjvText);
// → "The LORD is my shepherd; I shall not want."

Questions or issues? Post in the HolyArc community or email api@holyarc.com