Endpoint: licencia de conducir en México (CDMX, GRO, MIC, PUE y BCN)

Valida la licencia de conducir de México según el estado que la emitió. La Ciudad de México (CMX, el valor por defecto) se consulta por CURP sola y devuelve la vigencia tal como la publica su registro; la negativa agrupa dos situaciones distintas que la respuesta conserva en el mensaje: sin datos registrados en CDMX o licencia permanente (el programa 2024+, que por diseño no tiene vigencia). Guerrero (GRO), Michoacán (MIC) y Puebla (PUE) piden CURP más número de licencia —en Guerrero, el folio— y devuelven si ese par figura, si está vencida, la vigencia, la expedición, el tipo y la oficina; Guerrero agrega clase, plazo y municipio. Puebla manda la CURP completa. Baja California (BCN) NO usa CURP: pide número de licencia, fecha de expedición y fecha de nacimiento (dd/mm/yyyy) y devuelve si ese conjunto forma un registro válido, con vigencia, expedición y tipo; ⚠️ BC no distingue «no existe» de «los datos no coinciden», así que su negativa solo dice que la licencia y esas dos fechas no forman un registro válido. México no tiene registro nacional de licencias: fuera de esos cinco estados no hay una validación habilitada, y el pedido responde 400. Una negativa es una respuesta válida y cobra; solo la caída de la fuente reembolsa. Una CURP mal formada o una licencia ausente con GRO/MIC/PUE, y una fecha ausente o imposible con BCN, responden 400 sin cobrar. Nunca se devuelve nombre, fotografía ni documento del titular.

POST/api/licencia-mx1 crédito

Licencia de conducir de México por estado. CMX (Ciudad de México, el valor por defecto) va por CURP sola y devuelve si el registro reporta vigencia y la vigencia publicada. GRO (Guerrero), MIC (Michoacán) y PUE (Puebla) validan CURP + número de licencia —el folio, en Guerrero— y devuelven si ese par figura, si está vencida, la vigencia, la expedición, el tipo y la oficina; Guerrero agrega clase, plazo y municipio. BCN (Baja California) NO usa CURP: pide número de licencia + fecha de expedición + fecha de nacimiento y devuelve si ese conjunto forma un registro válido, con vigencia, expedición y tipo. La negativa es una respuesta válida y cobra; solo la fuente caída reembolsa. Una CURP mal formada o una licencia ausente con GRO/MIC/PUE, y una fecha ausente o imposible con BCN, responden 400 sin cobrar. Nunca se devuelve nombre, fotografía ni documento del titular. Cuesta 1 crédito.

Cuerpo de la solicitud

body (JSON)
{
  "curp": "AAAA000000HDFXXX01"
}
Parámetros del cuerpo de la solicitud
CampoTipoQué es
curpstringCURP de 18 caracteres (4 letras, 6 dígitos, 1 letra y 7 alfanuméricos). Se aceptan espacios y guiones. Obligatoria en `CMX`, `GRO`, `MIC` y `PUE`; `BCN` no la pide y la ignora si llega.
estadostringEstado que emitió la licencia, como código ISO 3166-2:MX sin el prefijo: `CMX` (Ciudad de México), `GRO` (Guerrero), `MIC` (Michoacán), `PUE` (Puebla), `BCN` (Baja California), Se acepta en minúsculas y con espacios alrededor, y `CDMX` es alias de `CMX`. Ausente o vacío = `CMX`, que es la consulta de la CDMX de siempre. Cualquier otro valor responde 400 con los admitidos.Valores: CMX · CDMX · GRO · MIC · PUE · BCN
licenciastringNúmero de la licencia (en Guerrero, el folio). Obligatoria con `estado` `GRO`, `MIC`, `PUE` o `BCN`; con `CMX` se ignora. Se aceptan los alias `numeroLicencia`, `noLicencia`, `no_licencia` y `folio`. Se normaliza con trim, mayúsculas y sin espacios internos (los guiones se conservan): de 3 a 20 caracteres de letras, números o guiones, máximo 15 en Guerrero, exactamente 15 dígitos en MEX y 1 a 14 letras/números sin guiones en SON.
fechaExpedicionstringSolo BCN: fecha de expedición de la licencia, en `dd/mm/yyyy` o `yyyy-mm-dd`; se normaliza a `dd/mm/yyyy`. Se aceptan los alias `fecha_expedicion` y `expedicion`. En los demás estados se ignora.
fechaNacimientostringSolo BCN: fecha de nacimiento del titular, en `dd/mm/yyyy` o `yyyy-mm-dd`; se normaliza a `dd/mm/yyyy`. Se aceptan los alias `fecha_nacimiento` y `nacimiento`. En los demás estados se ignora.
refreshbooleanIgnora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no).

Ejemplos por lenguaje

cURL
curl -X POST 'https://placapi.com/api/licencia-mx' \
  -H 'x-api-key: pk_live_TU_CLAVE' \
  -H 'content-type: application/json' \
  -d '{"curp":"AAAA000000HDFXXX01"}'
JavaScript (fetch)
const res = await fetch("https://placapi.com/api/licencia-mx", {
  method: "POST",
  headers: {
    "x-api-key": "pk_live_TU_CLAVE",
    "content-type": "application/json",
  },
  body: JSON.stringify({"curp":"AAAA000000HDFXXX01"}),
});
const data = await res.json();
Python (requests)
import requests

res = requests.post(
    "https://placapi.com/api/licencia-mx",
    headers={"x-api-key": "pk_live_TU_CLAVE"},
    json={"curp":"AAAA000000HDFXXX01"},
)
data = res.json()

Respuesta exitosa

200 OK — ejemplo (placas y documentos ficticios)
{
  "source": "licencia",
  "status": "ok",
  "data": {
    "pais": "MX",
    "curp": "AAAA000000HDFXXX01",
    "encontrada": true,
    "vigencia": "2027-05-10",
    "mensaje": null
  },
  "portalUrl": "https://data.finanzas.cdmx.gob.mx/consulta_adeudos",
  "mode": "live",
  "fetchedAt": "2026-07-24T15:04:05.000Z",
  "cost": 1
}

Errores y cobro

Cuesta 1 crédito cuando devuelve datos. Códigos posibles: 400 401 402 404 429 500 502 — qué significa cada uno, cuál reintentar y cuál cobra, en errores y rate limits. Autenticación por x-api-key: cómo generar la clave.

Última revisión: 30 de octubre de 2026 · PlacApi opera desde Colombia. PlacApi no es una entidad oficial del Gobierno.