Introducción
La API Pública de Decisiones Judiciales es un servicio web desarrollado por el Poder Judicial que permite consultar información sobre decisiones judiciales de manera programática. Esta API proporciona acceso a datos de casos judiciales utilizando el Número Único de Caso (NUC) como identificador principal.
Propósito
Esta API está diseñada para facilitar el acceso a información pública sobre decisiones judiciales, permitiendo a desarrolladores, instituciones y ciudadanos consultar datos de forma automatizada y eficiente.
Información General
| Versión | 1.0 |
| Protocolo | HTTPS |
| Formato de Respuesta | JSON |
| Framework | .NET 8.0 |
| Autenticación | No requiere (API pública) |
| Documentación Interactiva | Swagger UI |
Requisitos Previos
Para utilizar esta API, necesitará:
- Conexión a Internet: Acceso estable a la red
- Cliente HTTP: Cualquier herramienta capaz de realizar peticiones HTTP (curl, Postman, navegador web, etc.)
- Número Único de Caso (NUC): El identificador del caso judicial que desea consultar
- Conocimientos básicos de:
- Peticiones HTTP
- Formato JSON
- Manejo de respuestas paginadas
Endpoint Disponible
ObtenerDecisiones
Consulta decisiones judiciales asociadas a un Número Único de Caso (NUC).
URL Base
Parámetros de Consulta
Todos los parámetros se envían como query parameters en la URL.
| Parámetro | Tipo | Requerido | Descripción | Validaciones |
|---|---|---|---|---|
Nuc |
string | Sí | Número Único de Caso | No puede estar vacío |
PaginaActual |
integer | Sí | Número de página a consultar | Debe ser mayor a 0 |
RegistrosPorPagina |
integer | Sí | Cantidad de registros por página | Debe ser mayor a 0 |
Descripción Detallada de Parámetros
Nuc (Número Único de Caso)
- Identificador único del caso judicial
- Formato: Cadena de texto
- Ejemplo:
"2024-0002365"
PaginaActual
- Indica qué página de resultados desea obtener
- Valor mínimo: 1
- Ejemplo: Para obtener los primeros resultados, usar
1
RegistrosPorPagina
- Define cuántos registros se devolverán en cada página
- Valor mínimo: 1
- Valor recomendado: Entre 10 y 100
- Ejemplo:
20devolverá 20 registros por página
Estructura de Respuesta
Respuesta Exitosa (200 OK)
La API devuelve un objeto de paginación que contiene los siguientes campos:
{
"paginaActual": 1,
"totalPaginas": 5,
"registrosPorPagina": 20,
"totalRegistros": 100,
"datos": [
{
"asunto": "Descripción del asunto",
"categoriaTribunal": "Primera Instancia",
"nuc": "2024-0002365",
"numeroDecision": "001-2024",
"fechaDecision": "2024-10-15T00:00:00",
"urlDocumentoFirmado": "https://[url-documento]",
"materia": "Civil",
"sala": "Sala Civil",
"tribunal": "Tribunal Superior",
"tipoFallo": "Sentencia",
"tipoDocumento": "Resolución"
}
]
}
Campos de Paginación
| Campo | Tipo | Descripción |
|---|---|---|
paginaActual |
integer | Página actual que se está visualizando |
totalPaginas |
integer | Total de páginas disponibles |
registrosPorPagina |
integer | Cantidad de registros en esta página |
totalRegistros |
integer | Total de registros encontrados |
datos |
array | Lista de decisiones judiciales |
Campos de Decisión Judicial
| Campo | Tipo | Descripción |
|---|---|---|
asunto |
string | Descripción del asunto del caso |
categoriaTribunal |
string | Categoría del tribunal (Primera Instancia, Segunda Instancia, etc.) |
nuc |
string | Número Único de Caso |
numeroDecision |
string | Número identificador de la decisión |
fechaDecision |
datetime | Fecha en que se emitió la decisión |
urlDocumentoFirmado |
string | URL para acceder al documento firmado digitalmente |
materia |
string | Materia del caso (Civil, Penal, Laboral, etc.) |
sala |
string | Sala del tribunal que emitió la decisión |
tribunal |
string | Nombre del tribunal |
tipoFallo |
string | Tipo de fallo emitido |
tipoDocumento |
string | Tipo de documento judicial |
Ejemplos de Uso
Ejemplo 1: Consulta Básica con curl
curl -X GET "https://api.poderjudicial.gob.do/Decisiones/Decisiones/ObtenerDecisiones?Nuc=199-2020-ELAB-00094&PaginaActual=1&RegistrosPorPagina=10"
Ejemplo 2: Consulta con JavaScript (Fetch API)
const obtenerDecisiones = async (nuc, pagina, registrosPorPagina) => {
const url = `https://api.poderjudicial.gob.do/Decisiones/Decisiones/ObtenerDecisiones?Nuc=${nuc}&PaginaActual=${pagina}&RegistrosPorPagina=${registrosPorPagina}`;
try {
const response = await fetch(url);
if (!response.ok) {
throw new Error(`Error HTTP: ${response.status}`);
}
const data = await response.json();
console.log('Decisiones:', data);
return data;
} catch (error) {
console.error('Error al consultar decisiones:', error);
}
};
// Uso
obtenerDecisiones('199-2020-ELAB-00094', 1, 20);
Ejemplo 3: Consulta con Python (requests)
import requests
def obtener_decisiones(nuc, pagina_actual, registros_por_pagina):
url = "https://api.poderjudicial.gob.do/Decisiones/Decisiones/ObtenerDecisiones"
params = {
'Nuc': nuc,
'PaginaActual': pagina_actual,
'RegistrosPorPagina': registros_por_pagina
}
try:
response = requests.get(url, params=params)
response.raise_for_status()
data = response.json()
print(f"Total de registros: {data['totalRegistros']}")
print(f"Total de páginas: {data['totalPaginas']}")
return data
except requests.exceptions.RequestException as e:
print(f"Error al consultar la API: {e}")
return None
# Uso
decisiones = obtener_decisiones('199-2020-ELAB-00094', 1, 20)
Ejemplo 4: Consulta con C# (.NET)
using System;
using System.Net.Http;
using System.Text.Json;
using System.Threading.Tasks;
public class DecisionesClient
{
private readonly HttpClient _httpClient;
public DecisionesClient()
{
_httpClient = new HttpClient();
}
public async Task<PaginacionResponse<DecisionResponse>> ObtenerDecisiones(
string nuc,
int paginaActual,
int registrosPorPagina)
{
var url = $"https://api.poderjudicial.gob.do/Decisiones/Decisiones/ObtenerDecisiones?" +
$"Nuc={nuc}&PaginaActual={paginaActual}&RegistrosPorPagina={registrosPorPagina}";
try
{
var response = await _httpClient.GetAsync(url);
response.EnsureSuccessStatusCode();
var content = await response.Content.ReadAsStringAsync();
var resultado = JsonSerializer.Deserialize<PaginacionResponse<DecisionResponse>>(content);
Console.WriteLine($"Total de registros: {resultado.TotalRegistros}");
return resultado;
}
catch (Exception ex)
{
Console.WriteLine($"Error: {ex.Message}");
return null;
}
}
}
Códigos de Estado HTTP
La API utiliza los siguientes códigos de estado HTTP estándar:
| Código | Descripción | Situación |
|---|---|---|
| 200 OK | Solicitud exitosa | Los datos se devolvieron correctamente |
| 400 | Bad Request | Los parámetros enviados son incorrectos o incompletos |
| 404 | Not Found | No se encontraron resultados para los parámetros especificados |
| 429 | Too Many Requests | Se excedió el límite de peticiones permitidas |
| 500 | Internal Server Error | Ocurrió un error interno en el servidor |
Limitación de Peticiones
La API implementa un sistema de limitación de peticiones (Rate Limiting) para garantizar un uso equitativo del servicio.
Límites Actuales
- Límite: 100 peticiones por minuto
- Ventana de tiempo: 1 minuto
- Identificación: Por dirección IP o API Key (si se proporciona mediante header
X-Api-Key)
Comportamiento al Exceder el Límite
Cuando se excede el límite de peticiones:
- Código de respuesta: 429 Too Many Requests
- Mensaje de error:
{
"error": "Ha superado el límite de peticiones permitidas."
}
Recomendaciones
- Implemente lógica de reintento con retroceso exponencial
- Distribuya sus peticiones a lo largo del tiempo
- Cache los resultados cuando sea posible
- Monitoree sus patrones de uso
Manejo de Errores
Error 400 - Parámetros Inválidos
{
"message": "Errores de validación.",
"codigoError": 400,
"errores": [
"Debe proveer un valor para el parámetro Nuc.",
"El parámetro PaginaActual debe ser mayor a 0."
]
}
Solución: Verifique que todos los parámetros requeridos estén presentes y cumplan con las validaciones.
Error 404 - Sin Resultados
{
"message": "No se encontraron resultados con los parámetros establecidos"
}
Solución: Verifique que el NUC sea correcto y que existan decisiones asociadas a ese caso.
Error 500 - Error del Servidor
{
"message": "Descripción del error interno"
}
Solución: Si persiste el error, contacte al equipo de soporte técnico.
Glosario
| API | Application Programming Interface (Interfaz de Programación de Aplicaciones) |
| NUC | Número Único de Caso |
| JSON | JavaScript Object Notation (formato de intercambio de datos) |
| HTTP | Hypertext Transfer Protocol |
| HTTPS | HTTP Seguro |
| Rate Limiting | Limitación de peticiones por unidad de tiempo |
| Endpoint | Punto de acceso de la API |
| Query Parameter | Parámetro enviado en la URL de la petición |
| Paginación | Dividir resultados en múltiples páginas |




