All endpoints are available at:
https://tc-helps.mcp.servant.bible/api/
The following endpoints have been permanently removed:
/api/fetch-ult-scripture- Usefetch-scripturewithresource=ult/api/fetch-ust-scripture- Usefetch-scripturewithresource=ust/api/fetch-resources- Use specific endpoints for each resource type/api/resource-recommendations- AI recommendations removed/api/language-coverage- Coverage data removed/api/get-words-for-reference- Usefetch-translation-words
Most endpoints accept these standard parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
reference |
string | Usually | Bible reference (e.g., "John 3:16", "Genesis 1:1-5") |
language |
string | Often | Language code (e.g., "en", "es", "fr") |
organization |
string | Often | Organization name (e.g., "unfoldingWord") |
format |
string | No | Response format: "json" (default), "md", "markdown", "text", "tsv" (where applicable) |
ALL endpoints now support markdown format for LLM consumption via the format parameter:
- JSON (default) - Structured data for programmatic access
- Markdown (
format=mdorformat=markdown) - Human-readable with rich formatting for LLMs - Text (
format=text) - Plain text for simple consumption - TSV (
format=tsv) - Tab-separated values (for TSV-based resources only)
{
"data_field": [...], // "scripture", "items", etc.
"metadata": {
"totalCount": 10,
"reference": "John 3:16",
"language": "en",
"organization": "unfoldingWord",
"source": "DCS API" // Always real data now
}
}# Response Title
## Metadata
- **Reference**: John 3:16
- **Language**: en
- **Organization**: unfoldingWord
- **Source**: DCS API
## Content
...formatted content...{
"error": "Human-readable error message",
"details": {
"endpoint": "endpoint-name",
"path": "/api/endpoint",
"params": {...},
"timestamp": "2024-12-20T12:00:00Z"
},
"status": 404
}Fetches scripture text in multiple translations from DCS.
Parameters:
reference(required) - Bible referencelanguage- Language code (default: "en")organization- Organization (default: "unfoldingWord")resource- Comma-separated resources (e.g., "ult,ust,t4t,ueb")format- Response format: "json", "text", "md", "markdown"
Response:
{
"scripture": [
{
"text": "For God so loved the world...",
"translation": "ULT v86"
},
{
"text": "This is because God loved...",
"translation": "UST v86"
}
],
"reference": "John 3:16",
"language": "en",
"organization": "unfoldingWord",
"metadata": {
"totalCount": 2,
"resources": ["ULT v86", "UST v86"],
"license": "CC BY-SA 4.0"
}
}Fetches translation notes from TSV data in DCS.
Parameters:
reference(required)languageorganizationformat- "json", "md", "markdown", "text", "tsv"
Response:
{
"items": [
{
"Reference": "John 3:16",
"ID": "figs-metaphor",
"Tags": "keyterm",
"SupportReference": "rc://*/ta/man/translate/figs-metaphor",
"Quote": "For God so loved",
"Occurrence": "1",
"Note": "This is a metaphor..."
}
],
"metadata": {...}
}Fetches comprehension questions from TSV data.
Parameters: Same as translation-notes
Fetches translation word articles (key terms) from markdown files.
Parameters:
reference(required)languageorganizationformat- "json", "md", "markdown", "text"
Response:
{
"items": [
{
"term": "faith",
"definition": "Trust or confidence in someone...",
"category": "kt",
"content": "# faith\n\n## Definition\n\n..."
}
],
"metadata": {...}
}Fetches links between Bible text and translation word entries from TSV data.
Parameters:
reference(required)languageorganizationformat- "json", "md", "markdown", "text", "tsv"
Response:
{
"items": [
{
"id": "twl1",
"reference": "John 3:16",
"occurrence": 1,
"quote": "world",
"word": "kt/world",
"rcLink": "rc://*/tw/dict/bible/kt/world"
}
],
"metadata": {...}
}Fetches a specific translation word article.
Parameters:
word(required) - Word ID (e.g., "kt/faith")languageorganizationformat- "json", "md", "markdown", "text"
Browse all translation words (requires ZIP scanning - not fully implemented).
Parameters:
language(required)organizationcategory- Filter by category: "all", "kt", "names", "other"format- "json", "md", "markdown"
Note: Currently returns an error as ZIP content scanning is not yet implemented.
Fetches a specific translation academy module.
Parameters:
moduleId(required) - Module ID (e.g., "figs-metaphor")languageorganizationformat- "json", "md", "markdown"
Response:
{
"module": {
"id": "figs-metaphor",
"title": "Metaphor",
"category": "translate",
"content": "# Metaphor\n\n## Description\n\n...",
"supportReference": "rc://*/ta/man/translate/figs-metaphor"
},
"metadata": {...}
}Browse all translation academy modules from TOC.
Parameters:
language(required)organizationcategory- Filter: "all", "translate", "checking", "process", "audio", "gateway"format- "json", "md", "markdown"
Response:
{
"items": [
{
"id": "figs-metaphor",
"title": "Metaphor",
"category": "translate",
"path": "translate/figs-metaphor",
"categoryName": "Translation",
"supportReference": "rc://*/ta/man/translate/figs-metaphor"
}
],
"metadata": {
"totalModules": 45,
"categories": [
{ "id": "all", "name": "All Modules", "count": 45 },
{ "id": "translate", "name": "Translation", "count": 30 }
]
}
}Lists available languages from DCS catalog.
Parameters:
resource- Filter by resource typeincludeMetadata- Include resource availabilityincludeStats- Include coverage statisticsformat- "json", "md", "markdown"
Response:
{
"items": [
{
"code": "en",
"name": "English",
"direction": "ltr",
"resources": ["ult", "ust", "tn", "tw", "tq", "ta"]
}
],
"metadata": {...}
}Lists available Bible books from DCS.
Parameters:
language(required)organizationresource- Filter by resource typetestament- Filter by testament: "ot", "nt"includeChapters- Include chapter countsincludeCoverage- Include coverage dataformat- "json", "md", "markdown"
Lists available resource types from DCS catalog.
Parameters:
languageorganizationincludeMetadata- Include detailed metadataformat- "json", "md", "markdown", "text"
Browse the full DCS resource catalog.
Parameters:
metadataType- Type of metadata (e.g., "rc", "sb")subject- Filter by subjectlanguage- Filter by languagestage- Filter by stage: "prod", "preprod", "draft"includeMetadata- Include full metadataformat- "json", "md", "markdown", "text"
Basic health check.
Response:
{
"status": "healthy",
"version": "6.6.3",
"timestamp": "2024-12-20T12:00:00Z",
"deployment": {
"environment": "production",
"platform": "cloudflare-pages"
}
}Checks DCS API connectivity with real test.
Response:
{
"status": "healthy",
"dcsStatus": {
"reachable": true,
"responseTime": 234,
"lastChecked": "2024-12-20T12:00:00Z"
},
"version": "6.6.3"
}Extracts Bible references from text.
Parameters:
text(required) - Text to analyzeformat- "json", "md", "markdown", "text"
Response:
{
"references": [
{
"reference": "John 3:16",
"position": { "start": 10, "end": 19 }
}
],
"metadata": {
"totalReferences": 1
}
}Aggregates all resources for a reference (currently limited implementation).
Parameters:
reference(required)languageorganizationincludeEmpty- Include empty resources (default: true)format- "json", "md", "markdown"
Response:
{
"reference": "John 3:16",
"scripture": null,
"translationNotes": [...],
"translationWords": [],
"translationQuestions": [],
"translationAcademy": [],
"crossReferences": [],
"metadata": {
"resourcesFound": {
"notes": 2,
"words": 0,
"questions": 0
}
}
}All responses use real-time data from DCS with intelligent caching:
- KV Cache: Catalog metadata (1 hour TTL)
- R2 Storage: ZIP file caching
- Cache API: Extracted file caching
Response headers:
X-Cache-Status- "hit", "miss", "partial"X-Response-Time- Processing time in millisecondsX-XRay-Trace- Base64 encoded trace data for debugging
- No hard rate limits currently enforced
- Please be respectful of DCS upstream services
- Contact support for high-volume use cases
curl "https://tc-helps.mcp.servant.bible/api/fetch-scripture?reference=John%203:16&resource=ult,ust"curl "https://tc-helps.mcp.servant.bible/api/translation-notes?reference=Genesis%201:1&format=md"curl "https://tc-helps.mcp.servant.bible/api/fetch-translation-word-links?reference=Titus%201:1"curl "https://tc-helps.mcp.servant.bible/api/browse-translation-academy?language=en&category=translate"For development and testing with KV/R2 bindings:
cd ui && npx wrangler pages dev .svelte-kit/cloudflare --port 8787See tests/TESTING_REQUIREMENTS.md for details.
See MIGRATION_GUIDE.md for migrating from:
- Mock data endpoints to real data endpoints
- Removed endpoints to their replacements
- Old response formats to new standardized formats
ARCHITECTURE.md- System architecture overviewAPI_EXPLORER_GUIDE.md- Interactive API testing guideMIGRATION_GUIDE.md- Detailed migration instructionstests/TESTING_REQUIREMENTS.md- Testing with Wrangler