esBiblia API - Documentación NET

Accede a la Palabra de Dios desde tu aplicación

Descripción General

La Biblia API proporciona acceso programático a la base de datos bíblica con múltiples versiones, libros, capítulos y versículos. Esta documentación describe las rutas disponibles, los parámetros requeridos y cómo usarla desde diferentes lenguajes de programación.

Características

Estructura de la API


1. Listado de versiones disponibles


GET /versions/

Retorna una lista con todas las versiones disponibles.

{
    "count": 2,
    "next": null,
    "previous": null,
    "results": [
        {
            "id": "RVR1960",
            "name": "Reina Valera 1960"
        },
        {
            "id": "JER",
            "name": "Biblia de Jerusalen"
        }
    ]
}

2. Listado de libros


GET /books/

Retorna la lista canónica de libros bíblicos ordenados.

{
    "count": 66,
    "next": null,
    "previous": null,
    "results": [
        {
            "id": "GEN",
            "name": "Génesis"
        },
        {
            "id": "EXO",
            "name": "Éxodo"
        }
    ]
}

3. Lectura de un capítulo específico


GET /books/{book_id}/{chapter}/?v={version}

Retorna todos los versículos del capítulo especificado.

  • Parámetros:
  • book_id: Código del libro (ej: GEN, EXO)
  • chapter: Número del capítulo
  • v (opcional): Versión de la Biblia (por defecto RVR1960)
GET /books/GEN/1/?v=RVR1960

4. Búsqueda global



GET /search/?q={query}&v={version}&t={type}

Realiza una búsqueda de texto en los versículos.

  • Parámetros:
  • q: Término de búsqueda (mínimo 3 caracteres)
  • v (opcional): Versión de la Biblia (por defecto RVR1960
GET /search/?q=amor&v=RVR1960&t=0

5. Visualización de versículos específicos


GET /view/{book_id}/{chapter}/{verse}/?v={version}

Retorna uno o varios versículos del capítulo.

  • Parámetros:
  • book_id: Código del libro
  • chapter: Número del capítulo
  • verse: Número del primer versículo
  • verse2: (Opcional) Número del segundo versículo para rangos
  • v (opcional): Versión de la Biblia
                    GET /view/GEN/1/3/?v=RVR1960
                    GET /view/JHN/3/16/17/?v=JER
                

6. Versículo aleatorio


GET /api/random/{book_id}/{chapter}/?v={version}

GET /api/random/{book_id}/?v={version}

GET /api/random/?v={version}

Retorna un versículo aleatorio de la Biblia.

  • Parámetros:
  • v (opcional): Versión de la Biblia (por defecto RVR1960)
  • book_id (opcional): Libro de la Biblia (por defecto aleatorio)
  • chapter (opcional): Capitulo del Libro (por defecto aleatorio)
GET /api/random/?v=RVR1960

Adicionalmente, puede especificarse un libro o capítulo para obtener un versículo aleatorio dentro de ese contexto:

GET /api/random/GEN/?v=RVR1960
GET /api/random/GEN/1/?v=RVR1960

Ejemplo de respuesta:

{
    "reference": "RVR1960 GEN 1 3",
    "version": "RVR1960",
    "count": 1,
    "verses": [
        {
            "book_id": "GEN",
            "chapter": 1,
            "verse": 3,
            "text": "Y dijo Dios: Sea la luz; y fue la luz."
        }
    ]
}

Ejemplos por Lenguaje

JavaScript (Node.js)

const axios = require('axios');

// Obtener versiones disponibles
async function getVersionList() {
try {
const response = await axios.get('http://esbiblia.net/api/versions/');
console.log(response.data);
} catch (error) {
console.error(error.response.data);
}
}

// Buscar en la Biblia
async function searchBible(query, version = 'RVR1960') {
try {
const response = await axios.get(`http://esbiblia.net/api/search/?q=${query}&v=${version}`);
console.log(response.data);
} catch (error) {
console.error(error.response.data);
}
}

// Leer capítulo
async function readChapter(book, chapter, version = 'RVR1960') {
try {
const response = await axios.get(`http://esbiblia.net/api/view/${book}/${chapter}/?v=${version}`);
console.log(response.data);
} catch (error) {
console.error(error.response.data);
}
}

Python


import requests

# Configurar la base URL de la API
BASE_URL = "http://esbiblia.net/api"

def get_versions():
"Obtener lista de versiones disponibles"
response = requests.get(f"{BASE_URL}/versions/")
if response.status_code == 200:
return response.json()
else:
print("Error:", response.text)
return None

def search_bible(query, version="RVR1960"):
"Buscar en la Biblia"
params = {
"q": query,
"v": version
}
response = requests.get(f"{BASE_URL}/search/", params=params)
if response.status_code == 200:
return response.json()
else:
print("Error:", response.text)
return None

def read_chapter(book_id, chapter, version="RVR1960"):
"Leer un capítulo"
params = {
"v": version
}
response = requests.get(f"{BASE_URL}/view/{book_id}/{chapter}/", params=params)
if response.status_code == 200:
return response.json()
else:
print("Error:", response.text)
return None

# Ejemplo de uso
versions = get_versions()
search_results = search_bible("amor")
chapter_data = read_chapter("GEN", 19, "RVR1960")
print(versions)
print(search_results)
print(chapter_data)

PHP

<?php
class BibleAPI {
private $base_url;

public function __construct($url) {
$this->base_url = rtrim($url, '/');
}

public function getVersions() {
return json_decode(file_get_contents($this->base_url . '/versions/'), true);
}

public function searchBible($query, $version = 'RVR1960') {
$params = http_build_query([
'q' => $query,
'v' => $version
]);

return json_decode(file_get_contents($this->base_url . '/search/?' . $params), true);
}

public function readChapter($book, $chapter, $version = 'RVR1960') {
$params = http_build_query([
'v' => $version
]);

return json_decode(file_get_contents($this->base_url . "/view/{$book}/{$chapter}/?{$params}"), true);
}
}

// Ejemplo de uso
$bibleAPI = new BibleAPI('http://esbiblia.net/api');
$versions = $bibleAPI->getVersions();
$searchResults = $bibleAPI->searchBible('amor');
$chapterData = $bibleAPI->readChapter('GEN', 1, 'RVR1960');
?>