Endpoint: licencias de conducción

Con el tipo y número de documento —más el primer apellido del titular, que la fuente oficial exige desde el 6 de agosto de 2026— devuelve las licencias de conducción de una persona: categorías, vigencias, estado, suspensiones, multas y paz y salvo.

POST/api/licencia1 crédito

Licencias de conducción por cédula (RUNT ciudadano): datos del conductor (nombre, estado de conductor y de ciudadano, número y fecha de inscripción), el arreglo `licenses` con una entrada por categoría —categoría, estado, número, organismo que expide, expedición, vencimiento, restricciones y, si aplica, resolución y fechas de suspensión— y los bloques de infracciones, solicitudes, certificados de aptitud y médicos, trámites SICOV, pagos ANSV, validaciones de identidad e impuestos de tránsito. Los bloques que el RUNT devuelve vacíos para la mayoría de documentos llegan como arreglos vacíos, no como null. Desde el 6-ago-2026 la fuente oficial exige el `primerApellido` del titular y devuelve el nombre ENMASCARADO (`J**N P***Z`): si no mandas el apellido se intenta resolver, y si no se logra la respuesta es 400 `apellido_requerido` sin cobrar.

Cuerpo de la solicitud

body (JSON)
{
  "docType": "CC",
  "docNumber": "1020304050",
  "primerApellido": "PÉREZ"
}
Parámetros del cuerpo de la solicitud
CampoTipoQué es
docTypeobligatoriostringTipo de documento (CC, CE, NIT, PA, TI, CD, PPT, RC). Se aceptan alias comunes: PAS y PASAPORTE se normalizan a PA, y P.P.T. y P.P. se normalizan a PPT.Valores: CC · CE · NIT · PA · TI · CD · PPT · RC
docNumberobligatoriostringNúmero de documento. Alias aceptado: `doc`.
primerApellidostringPrimer apellido del titular del documento. La fuente oficial lo exige desde el 6-ago-2026: si no lo mandas se intenta resolver y, si no se logra, la respuesta es 400 con `code: "apellido_requerido"` y NO se cobra el crédito. Alias aceptado: `apellido`.
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' \
  -H 'x-api-key: pk_live_TU_CLAVE' \
  -H 'content-type: application/json' \
  -d '{"docType":"CC","docNumber":"1020304050","primerApellido":"PÉREZ"}'
JavaScript (fetch)
const res = await fetch("https://placapi.com/api/licencia", {
  method: "POST",
  headers: {
    "x-api-key": "pk_live_TU_CLAVE",
    "content-type": "application/json",
  },
  body: JSON.stringify({"docType":"CC","docNumber":"1020304050","primerApellido":"PÉREZ"}),
});
const data = await res.json();
Python (requests)
import requests

res = requests.post(
    "https://placapi.com/api/licencia",
    headers={"x-api-key": "pk_live_TU_CLAVE"},
    json={"docType":"CC","docNumber":"1020304050","primerApellido":"PÉREZ"},
)
data = res.json()

Respuesta exitosa

200 OK — datos ficticios de ejemplo
{
  "data": {
    "documentType": "CC",
    "documentNumber": "1020304050",
    "fullName": "J**N P***Z",
    "driverStatus": "ACTIVO",
    "citizenStatus": "ACTIVA",
    "inscriptionNumber": "20310213",
    "inscriptionDate": "08/02/2021",
    "consultationDateTime": "11/07/2026",
    "totalLicenses": "1",
    "licenses": [
      {
        "category": "B1",
        "status": "ACTIVA",
        "licenceNumber": "1020304050",
        "otExpide": "INSTITUTO DE MOVILIDAD",
        "expeditionDate": "23/04/2025",
        "dueDate": "23/04/2035",
        "examExpirationDate": null,
        "restrictions": null,
        "authorityTransit": null,
        "resolutionNumber": null,
        "startDateSuspension": null,
        "endDateSuspension": null,
        "substratum": "1020304050"
      }
    ],
    "infractions": {
      "tieneMultas": "NO",
      "nroPazYSalvo": "885466652067"
    },
    "requests": [],
    "aptitudeCertificates": [],
    "medicalCertificates": [],
    "sicovRequests": [],
    "ANSVpayments": [],
    "identityValidationAttempts": {
      "estadoUsuario": "ACTIVO",
      "fechaDesbloqueo": null,
      "validaciones": []
    },
    "identityValidationRequests": {
      "estadoUsuario": "ACTIVO",
      "fechaDesbloqueo": null,
      "validaciones": []
    },
    "transitTaxes": {}
  },
  "mode": "live",
  "fetchedAt": "2026-07-24T15:04:05.000Z"
}

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: 6 de agosto de 2026 · PlacApi opera desde Colombia. PlacApi no es una entidad oficial del Gobierno.

Contacto