Referencia de la API

Encuentra una CURP por datos personales

Encuentra una CURP por datos personales y obtén la identidad registrada, el estado de certificación y las CURP asociadas por corrección.

POST /v1/curp/search

Encuentra la CURP de una persona a partir de sus datos personales: la misma búsqueda que el formulario "Datos personales" de gob.mx. RENAPO compara los nombres, la fecha de nacimiento, el sexo y el estado de nacimiento tal como están registrados. Tarda alrededor de 5 segundos y cuesta 10 créditos.

Úsalo cuando alguien no conoce su CURP, para llenarla durante el onboarding o para revisar que la CURP que te dieron coincida con sus datos.

Cuerpo de la solicitud

Campo Tipo Requerido Descripción
names string Sí Nombre o nombres, como están registrados.
paternal_surname string Sí Primer apellido.
mothers_maiden_name string No Segundo apellido. Omítelo si la persona solo tiene uno.
birthdate string Sí Fecha de nacimiento como AAAA-MM-DD.
sex string Sí H (hombre), M (mujer), o X (no binario).
state string Sí Clave de dos letras del estado de nacimiento, las mismas que usa la CURP (p. ej. DF, JC, NL), o NE para personas nacidas en el extranjero.
include_pdf boolean No Usa true para incluir el PDF oficial de la CURP en pdf_base64. El valor predeterminado es false.

Los nombres no distinguen mayúsculas de minúsculas. Los acentos se quitan igual que en gob.mx (la Ñ y la Ü se conservan) y los espacios extra se eliminan. Los nombres pueden contener letras, espacios, puntos y guiones.

Pruébalo

POST /v1/curp/search
Pruébalo

Inicia sesión para enviar una solicitud real desde esta página.

Las cuentas nuevas reciben $5 USD de crédito al registrarse, sin tarjeta.

Solicitud de ejemplo

curl bash
curl -X POST https://curpcheck.com/v1/curp/search \
  -H "x-api-key: rfc_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{"names": "Juan", "paternal_surname": "Pérez", "mothers_maiden_name": "Martínez",
       "birthdate": "1980-01-01", "sex": "H", "state": "DF"}'

Respuesta (200)

200 OK json
{
  "curp": "PEMJ800101HDFRRN07",
  "found": true,
  "message": "Identity retrieved from RENAPO",
  "person": {
    "curp": "PEMJ800101HDFRRN07",
    "renapo_valid": true,
    "names": "JUAN",
    "paternal_surname": "PEREZ",
    "mothers_maiden_name": "MARTINEZ",
    "sex": "HOMBRE",
    "birthdate": "01/01/1980",
    "nationality": "MEXICO",
    "entity_birth": "DF",
    "status_curp": "RCN",
    "certified": true,
    "certification": "CURP Certificada: verificada con el Registro Civil",
    "associated_curps": [],
    "probation_document": "ACTA DE NACIMIENTO",
    "probation_document_data": {},
    "homonimo": false
  }
}

found es true (curp y person contienen la coincidencia), false (RENAPO no devolvió un registro único; curp es null y person.homonimo es true cuando RENAPO reporta un problema con la clave), o null (no se pudo consultar RENAPO; inténtalo más tarde). Una respuesta false cuesta 10 créditos. Una respuesta null no se cobra.

person.certified es true cuando el PDF incluye una leyenda de certificación, false cuando se pudo leer el PDF y no aparece la leyenda, o null cuando no se pudo leer. La certificación puede ser del Registro Civil, la SRE o el INM. Este campo no determina la nacionalidad ni el derecho a obtener un pasaporte o una credencial del INE.

Cada consulta y búsqueda lee el PDF oficial para incluir person.certification (la leyenda de certificación tal como aparece) y person.associated_curps (CURP asociadas por corrección). Una lista vacía indica que no aparecen CURP asociadas. Si no se puede leer el documento, ambos campos son null y se devuelve la identidad registrada. include_pdf solo controla si se devuelve el archivo en base64.

Con include_pdf en true, una respuesta exitosa también incluye pdf_base64, el PDF oficial de RENAPO codificado en base64. No se cobran créditos adicionales. Si no se puede descargar el PDF solicitado, found es null y no se cobra la solicitud; inténtalo más tarde.

Errores

  • 422 invalid_fields: falta uno o más campos o están mal formados. fields los lista todos, para que los corrijas de una vez. No se cobra.
422 Unprocessable Entity json
{
  "error": "invalid_fields",
  "fields": ["birthdate", "state"]
}