API de licencias de conducción de Colombia por documento

PlacApi expone una API REST para consultar las licencias de conducción de una persona en Colombia usando su tipo y número de documento. Devuelve en JSON el estado del conductor en el RUNT, cada licencia con su categoría y vigencias, si tiene multas asociadas y el número de paz y salvo. Es un endpoint por persona (no por placa): las licencias son del conductor, no del vehículo.

¿No eres desarrollador? Consulta el RUNT por placa aquí sin escribir código.

Qué problema resuelve

Validar la licencia de un conductor —para vincularlo a una flota, una app de movilidad o un seguro— exige consultar el RUNT ciudadano, que resuelve por captcha y no ofrece API pública. PlacApi lo entrega como un endpoint REST por documento, con la respuesta ya normalizada en JSON.

Para quién sirve

Apps de movilidad y última milla que verifican conductores, aseguradoras, empresas de transporte y flotas que exigen licencia vigente antes de asignar un vehículo.

Datos requeridos

  • docType — tipo de documento de la persona (CC, CE…).
  • docNumber — número de documento de la persona. No se requiere placa.

Fuentes y cobertura

  • RUNT ciudadanoLicencias de conducción por persona: categoría, vigencias, estado del conductor, multas asociadas y paz y salvo. Consultado por cédula, sin placa.

¿Se consulta por placa o por cédula?

Por documento de la persona (docType y docNumber). Las licencias son del conductor, no del vehículo, así que no se envía placa.

¿Devuelve todas las licencias y categorías?

Sí: data.licenses[] lista cada licencia con su categoría (A1, B1, C1…), estado y fechas de expedición y vencimiento. data.totalLicenses indica cuántas hay.

Ejemplo de solicitud

POST https://placapi.com/api/licencia. Autenticación por API key en el header x-api-key. Los datos del ejemplo son ficticios.

Ejemplo cURL de la solicitud
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"}'

Ejemplo de respuesta

Respuesta JSON (fragmento con los campos de esta consulta; la API integral devuelve todas las fuentes en el mismo objeto).

Ejemplo de respuesta JSON
{
  "data": {
    "documentType": "CC",
    "documentNumber": "1020304050",
    "fullName": "JUAN PÉREZ",
    "driverStatus": "ACTIVO",
    "citizenStatus": "ACTIVA",
    "inscriptionNumber": "20310213",
    "inscriptionDate": "08/02/2021",
    "totalLicenses": "1",
    "licenses": [
      {
        "category": "B1",
        "status": "ACTIVA",
        "licenceNumber": "885466652067",
        "expeditionDate": "23/04/2025",
        "dueDate": "23/04/2035",
        "substratum": "12345678"
      }
    ],
    "infractions": {
      "tieneMultas": "NO",
      "nroPazYSalvo": "PS-20310213"
    },
    "requests": [],
    "aptitudeCertificates": [],
    "medicalCertificates": []
  },
  "mode": "live"
}

Explicación campo por campo

CampoTipoDescripción
data.driverStatusstringEstado del conductor en el RUNT (ACTIVO, INACTIVO…).
data.citizenStatusstringEstado del ciudadano en el RUNT (ACTIVA, INACTIVA…).
data.totalLicensesstringCantidad de licencias registradas para la persona.
data.licenses[].categorystringCategoría de la licencia (A1, A2, B1, C1…).
data.licenses[].statusstringEstado de cada licencia (ACTIVA, VENCIDA, SUSPENDIDA…).
data.licenses[].dueDatestring (DD/MM/YYYY)Fecha de vencimiento de la licencia.
data.licenses[].expeditionDatestring (DD/MM/YYYY)Fecha de expedición de la licencia.
data.infractions.tieneMultasstring"SI"/"NO": si la persona tiene multas asociadas.
data.infractions.nroPazYSalvostringNúmero de paz y salvo cuando aplica.

Tiempo de respuesta

Entre 30 y 90 segundos la primera vez —es lo que tardan los portales oficiales en responder—. Reconsultar la misma placa es casi instantáneo porque el resultado queda en caché.

Precio y cobro

1 crédito por consulta con datos, desde 349 COP. El precio por crédito baja por volumen: 349 COP desde 30, 249 COP desde 1.000, 149 COP desde 5.000, 139 COP desde 10.000, 119 COP desde 20.000, 99 COP desde 50.000. Los créditos se compran por adelantado (mínimo 30 = 10.470 COP), no vencen y no hay mensualidad. El mismo precio aplica por la web y por API. Solo se cobra cuando la consulta devuelve datos; por API, las consultas sin resultado (404) tienen 10 gratis al mes por cada tipo de respuesta sin datos y después cobran igual.

Caché y actualización

El estado de una licencia cambia poco, así que se cachea por días; una suspensión o renovación reciente puede requerir refrescar.

Seguridad y privacidad

La placa y el documento se usan solo para ejecutar la consulta; el resultado queda en caché temporal. No se almacenan datos de tarjetas (los pagos los procesa Wompi). Ver privacidad y seguridad.

Limitaciones y posibles errores

  • La consulta es por persona (documento), no por placa.
  • Las fechas vienen en formato DD/MM/YYYY, tal como las expone el RUNT.
  • Si el RUNT ciudadano no responde, la consulta devuelve error.
  • PlacApi reporta lo que el RUNT expone; no emite, renueva ni gestiona licencias.

Códigos de error del endpoint (401, 402, 429, 5xx) en la referencia de errores.

Otras preguntas frecuentes

¿Informa si el conductor tiene multas?

+

Sí: data.infractions.tieneMultas devuelve "SI"/"NO" y data.infractions.nroPazYSalvo el número de paz y salvo cuando aplica.

Seguir explorando

Última revisión: 27 de julio de 2026 · Versión de la API: v1 · Fuentes y metodología

Contacto