API REST dos Salmos

Documentação completa para integrar os Salmos em suas aplicações

Versão 1.0.0

Introdução

A API REST dos Salmos permite acesso gratuito aos 150 Salmos da Bíblia em português e hebraico. A API é baseada em REST e retorna dados em formato JSON.

URL Base
https://ferramentasdaweb.com.br/db/salmos/api
Características
  • 100% gratuita
  • Sem necessidade de autenticação
  • Suporte a português e hebraico
  • Respostas em JSON
  • CORS habilitado
  • Rate limit por IP

Rate Limit

Limite: 5 requisições por hora por IP
Headers de Rate Limit
Header Descrição Exemplo
X-RateLimit-Limit Limite total de requisições 5
X-RateLimit-Remaining Requisições restantes 4
X-RateLimit-Reset Timestamp para reset 1705320000
Quando o limite é excedido, a API retorna o código 429 com informações sobre o tempo restante para reset.

Autenticação

A API não requer autenticação. Todas as requisições podem ser feitas diretamente via GET sem necessidade de tokens ou chaves de API.

Pronto para usar! Basta fazer uma requisição GET para qualquer endpoint disponível.

Endpoints

GET /salmos/{id}

Obtém um salmo específico pelo número.

Parâmetros:
  • id (obrigatório): Número do salmo (1-150)
  • lingua (opcional): pt ou heb (padrão: pt)
GET https://ferramentasdaweb.com.br/db/salmos/api/salmos/23?lingua=pt

GET /salmos

Lista salmos com paginação.

Parâmetros:
  • page (opcional): Número da página (padrão: 1)
  • per_page (opcional): Itens por página (máx. 50, padrão: 10)
  • lingua (opcional): pt ou heb
GET https://ferramentasdaweb.com.br/db/salmos/api/salmos?page=1&per_page=10&lingua=pt

GET /busca

Busca salmos por texto.

Parâmetros:
  • termo (obrigatório): Texto para buscar
  • lingua (opcional): pt ou heb
GET https://ferramentasdaweb.com.br/db/salmos/api/busca?termo=amor&lingua=pt

GET /random

Obtém um salmo aleatório.

GET https://ferramentasdaweb.com.br/db/salmos/api/random?lingua=pt

GET /stats

Obtém estatísticas dos salmos.

GET https://ferramentasdaweb.com.br/db/salmos/api/stats

Parâmetros Comuns

Parâmetro Tipo Descrição Valores Válidos Padrão
lingua string Idioma do salmo pt, heb pt
page integer Número da página 1 até total de páginas 1
per_page integer Itens por página 1 até 50 10
termo string Termo para busca Qualquer texto -

Exemplos de Uso

JavaScript (Fetch API)
// Obter Salmo 23 em português
fetch('https://ferramentasdaweb.com.br/db/salmos/api/salmos/23?lingua=pt')
  .then(response => response.json())
  .then(data => {
    console.log('Salmo:', data.data.numero);
    console.log('Texto:', data.data.texto);
  })
  .catch(error => console.error('Erro:', error));
PHP (cURL)
<?php
// Obter Salmo 91 em hebraico
$curl = curl_init();
curl_setopt_array($curl, [
    CURLOPT_URL => 'https://ferramentasdaweb.com.br/db/salmos/api/salmos/91?lingua=heb',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_SSL_VERIFYPEER => false
]);
$response = curl_exec($curl);
$data = json_decode($response, true);
curl_close($curl);

if ($data['success']) {
    echo $data['data']['texto'];
}
Python (requests)
import requests

# Buscar salmos com a palavra "amor"
response = requests.get(
    'https://ferramentasdaweb.com.br/db/salmos/api/busca',
    params={'termo': 'amor', 'lingua': 'pt'}
)

data = response.json()
if data['success']:
    for salmo in data['data']:
        print(f"Salmo {salmo['numero']}")
        print(salmo['texto'][:100])
        print()
Node.js (axios)
const axios = require('axios');

// Obter salmo aleatório
async function getSalmoAleatorio() {
    try {
        const response = await axios.get(
            'https://ferramentasdaweb.com.br/db/salmos/api/random',
            { params: { lingua: 'pt' } }
        );
        
        console.log('Salmo:', response.data.data.numero);
        console.log('Texto:', response.data.data.texto);
    } catch (error) {
        console.error('Erro:', error.message);
    }
}

getSalmoAleatorio();
jQuery (AJAX)
// Listar salmos com paginação
$.ajax({
    url: 'https://ferramentasdaweb.com.br/db/salmos/api/salmos',
    method: 'GET',
    data: {
        page: 1,
        per_page: 5,
        lingua: 'pt'
    },
    success: function(response) {
        response.data.forEach(function(salmo) {
            console.log('Salmo ' + salmo.numero + ':');
            console.log(salmo.texto.substring(0, 100) + '...');
        });
    },
    error: function(xhr, status, error) {
        console.error('Erro:', error);
    }
});

Formato de Respostas

Resposta de Sucesso
{
    "success": true,
    "data": {
        "numero": 23,
        "texto": "1 O Senhor é meu pastor, nada me faltará...",
        "lingua": "pt",
        "versiculos": [
            {
                "numero": 1,
                "texto": "O Senhor é meu pastor, nada me faltará"
            },
            {
                "numero": 2,
                "texto": "Deitar-me faz em verdes pastos..."
            }
        ],
        "links": {
            "self": "https://ferramentasdaweb.com.br/db/salmos/api/salmos/23?lingua=pt",
            "anterior": "https://ferramentasdaweb.com.br/db/salmos/api/salmos/22?lingua=pt",
            "proximo": "https://ferramentasdaweb.com.br/db/salmos/api/salmos/24?lingua=pt",
            "web": "https://ferramentasdaweb.com.br/db/salmos/index.php?salmo=23&lingua=pt"
        }
    },
    "rate_limit": {
        "limit": 5,
        "remaining": 4,
        "reset_in_seconds": 3600
    }
}
Resposta de Erro (Rate Limit Excedido)
{
    "success": false,
    "error": {
        "code": 429,
        "message": "Limite de requisições excedido. Tente novamente mais tarde.",
        "rate_limit": {
            "limit": 5,
            "remaining": 0,
            "reset_in_seconds": 1800,
            "reset_at": "2024-01-15 14:30:00"
        }
    }
}

Códigos de Erro

Código Descrição Causa Comum
200 Sucesso Requisição processada com sucesso
400 Parâmetros inválidos Número do salmo fora do range, termo de busca vazio
404 Recurso não encontrado Salmo não existe, endpoint inválido
405 Método não permitido Usando POST, PUT, DELETE (apenas GET é permitido)
429 Limite excedido Muitas requisições em pouco tempo

Testar API

Use o formulário abaixo para testar a API diretamente: