Servicio de consulta y validación oficial de la Clave Única de Registro de Población (CURP) en tiempo real. Esta API permite verificar la autenticidad, vigencia y datos biométricos/registrales asociados ante el Registro Nacional de Población (RENAPO).
Todas las peticiones van al gateway de idoo.dev con tu API key:
Servicio de consulta y validación oficial de la Clave Única de Registro de Población (CURP) en tiempo real. Esta API permite verificar la autenticidad, vigencia y datos biométricos/registrales asociados ante el Registro Nacional de Población (RENAPO).
La API se encuentra integrada con el gateway de idoo.dev, por lo que toda la autenticación, cuotas de plan y control de límites (rate limiting) son gestionados automáticamente mediante tu API Key de idoo.dev.
Todas las llamadas deben realizarse a través del gateway de idoo.dev incluyendo tu clave de API en el encabezado X-Idoo-Key:
X-Idoo-Key: tu_api_key_aqui
Nota para desarrolladores: En ambiente
sandbox, utiliza las credenciales de prueba proporcionadas por idoo.dev.
Permite obtener los datos de identidad y registro civil de una persona física mediante su CURP de 18 caracteres.
GET/v2/rest/curp/porCurp/{curp}/v2/rest/curp/porCurp?curp={curp}https://api.idoo.dev/v1/{slug-de-tu-api}application/json| Parámetro | Tipo | Ubicación | Obligatorio | Descripción | Ejemplo |
|---|---|---|---|---|---|
curp |
string |
Path o Query | Sí | Cadena alfanumérica de 18 caracteres con el formato oficial de CURP. | ROMA900101HDFRRN01 |
^[A-Z]{4}\d{6}[HMX][A-Z]{5}[A-Z0-9]\d$curl -X GET "https://api.idoo.dev/v1/{slug-de-tu-api}/v2/rest/curp/porCurp/ROMA900101HDFRRN01" \
-H "X-Idoo-Key: tu_api_key_aqui" \
-H "Accept: application/json"
const response = await fetch('https://api.idoo.dev/v1/{slug-de-tu-api}/v2/rest/curp/porCurp/ROMA900101HDFRRN01', {
method: 'GET',
headers: {
'X-Idoo-Key': 'tu_api_key_aqui',
'Accept': 'application/json'
}
});
const data = await response.json();
console.log(data);
import requests
url = "https://api.idoo.dev/v1/{slug-de-tu-api}/v2/rest/curp/porCurp/ROMA900101HDFRRN01"
headers = {
"X-Idoo-Key": "tu_api_key_aqui",
"Accept": "application/json"
}
response = requests.get(url, headers=headers)
print(response.json())
En el ambiente sandbox, puedes utilizar la siguiente CURP de prueba sintética para validar tu flujo de integración sin consumir créditos reales:
AAAA000000HDFRRR01Todas las respuestas de la API utilizan un sobre JSON consistente:
{
"valid": true,
"status": 200,
"message": "Mensaje descriptivo",
"data": { ... },
"timestamp": "2026-09-08T18:00:00-06:00"
}
{
"valid": true,
"status": 200,
"message": "CURP localizada exitosamente",
"data": {
"Curp": "ROMA900101HDFRRN01",
"ApellidoPaterno": "RODRIGUEZ",
"ApellidoMaterno": "MARTINEZ",
"Nombre": "ALEJANDRO",
"Sexo": "H",
"FechaNacimiento": "01/01/1990",
"Nacionalidad": "MEX",
"DocProbatorio": "1",
"AnioReg": "1990",
"Foja": "12",
"Tomo": "3",
"Libro": "5",
"NumActa": "345",
"CRIP": "0900123456789",
"NumEntidadReg": "09",
"CveMunicipioReg": "005",
"NumRegExtranjeros": "",
"FolioCarta": "",
"CveEntidadEmisora": "DF",
"StatusCurp": "AN",
"Historicos": []
},
"timestamp": "2026-09-08T18:00:00-06:00"
}
data| Campo | Tipo | Descripción |
|---|---|---|
Curp |
string |
CURP validada de 18 caracteres. |
ApellidoPaterno |
string |
Primer apellido del titular. |
ApellidoMaterno |
string |
Segundo apellido del titular. |
Nombre |
string |
Nombre(s) de pila. |
Sexo |
string |
Género (H = Hombre, M = Mujer, X = No binario). |
FechaNacimiento |
string |
Fecha de nacimiento en formato DD/MM/AAAA. |
Nacionalidad |
string |
Clave de país de nacionalidad (ej. MEX). |
DocProbatorio |
string |
Clave de documento probatorio (1: Acta de Nacimiento). |
AnioReg |
string |
Año de registro en el Registro Civil. |
Foja |
string |
Foja de registro del acta. |
Tomo |
string |
Tomo del libro de actas. |
Libro |
string |
Número de libro del acta. |
NumActa |
string |
Número de acta de nacimiento. |
CRIP |
string |
Clave del Registro de Identificación Personal (si existe). |
NumEntidadReg |
string |
Código de dos dígitos del estado de registro. |
CveMunicipioReg |
string |
Código del municipio de registro. |
NumRegExtranjeros |
string |
Número de registro para personas extranjeras (si aplica). |
FolioCarta |
string |
Folio de carta de naturalización (si aplica). |
CveEntidadEmisora |
string |
Entidad federativa emisora de la CURP. |
StatusCurp |
string |
Estatus de la clave (AN: Activa normal, etc.). |
Historicos |
array |
Arreglo de CURPs históricas asociadas por modificación o unificación. |
{
"valid": false,
"status": 400,
"message": "La longitud de la CURP debe ser exactamente de 18 caracteres",
"data": null,
"timestamp": "2026-09-08T18:00:00-06:00"
}
{
"valid": false,
"status": 401,
"message": "No autorizado: Cabeceras X-Idoo-Signature o X-Idoo-Timestamp ausentes (tráfico directo no permitido)",
"data": null,
"timestamp": "2026-09-08T18:00:00-06:00"
}
{
"valid": false,
"status": 404,
"message": "CURP no encontrada o no registrada en RENAPO",
"data": null,
"timestamp": "2026-09-08T18:00:00-06:00"
}
Controlado directamente por el gateway de idoo.dev según el plan suscrito por el consumidor.
{
"valid": false,
"status": 503,
"message": "Servicio de consulta no disponible temporalmente",
"data": null,
"timestamp": "2026-09-08T18:00:00-06:00"
}
| Código | Significado | Causa y Solución |
|---|---|---|
200 |
OK |
Consulta exitosa. Se devuelven los datos completos de la CURP en el campo data. |
400 |
Bad Request |
Parámetro curp no enviado, longitud distinta de 18 caracteres o caracteres que no corresponden a la estructura de una CURP. |
401 |
Unauthorized |
Falta la API Key en idoo.dev, o se intentó llamar a la API directamente omitiendo el gateway y la firma HMAC. |
403 |
Forbidden |
La API Key de idoo.dev no tiene permisos para el recurso o la suscripción no está activa. |
404 |
Not Found |
La CURP proporcionada no existe o fue dada de baja en las bases de datos de RENAPO. |
422 |
Unprocessable Entity |
Formato sintáctico válido pero inconsistencia en las reglas de negocio (ej. entidad federativa inexistente o fecha fuera de rango). |
429 |
Too Many Requests |
Se excedió la cuota de peticiones por segundo o mensual asignada a tu plan en idoo.dev. Espera el intervalo o sube de plan. |
502 |
Bad Gateway |
El servicio central de RENAPO no respondió o devolvió un formato no interpretable. |
503 |
Service Unavailable |
Servicio externo en mantenimiento o saturado. Reintentar con retroceso exponencial (exponential backoff). |
Esta API todavía no tiene reseñas.