API RUNT Colombia: consulta la ficha del vehículo por placa vía REST

PlacApi permite consultar el Registro Único Nacional de Tránsito (RUNT) de Colombia desde un backend mediante una API REST. Con la placa y el documento del propietario devuelve en JSON la ficha del vehículo —marca, línea, modelo, cilindraje, servicio, clase, motor, chasis, VIN, organismo de tránsito y estado del registro— junto con el histórico de SOAT y de revisión tecnomecánica, los gravámenes y las limitaciones a la propiedad, tal como los expone el RUNT. Todo llega bajo la clave data.

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

Qué problema resuelve

El portal del RUNT (runt.gov.co) exige captcha y no ofrece una API pública para desarrolladores. Integrar la ficha de un vehículo en un CRM, un flujo de compraventa o un score de crédito obliga a scrapear un sitio inestable. PlacApi encapsula esa consulta en un único endpoint REST estable que devuelve la ficha del RUNT normalizada en JSON.

Para quién sirve

Concesionarios, plataformas de usados, talleres, aseguradoras y fintechs que necesiten la ficha técnica y el estado del RUNT de un vehículo colombiano dentro de su propio software.

Datos requeridos

  • placa — placa del vehículo.
  • docType — tipo de documento del propietario (CC, CE, NIT…).
  • docNumber — número de documento del propietario actual, exigido por el RUNT.

Fuentes y cobertura

  • RUNT (runt.gov.co)Ficha del vehículo: marca, línea, modelo, cilindraje, combustible, servicio, clase, motor, chasis, VIN, organismo de tránsito y estado del registro.
  • SOAT y tecnomecánica vía RUNTEl RUNT reporta el histórico de pólizas SOAT y de revisiones tecnomecánicas (RTM), que se devuelven como arrays dentro de la misma ficha.

¿Cómo consultar el RUNT por API en Colombia?

Con una llamada POST a /api/consulta enviando la placa y el documento del propietario. La respuesta llega en JSON con la ficha del vehículo —marca, línea, modelo, cilindraje, motor, chasis, estado del registro— y el histórico de SOAT y tecnomecánica dentro del mismo objeto. No hay captcha ni navegador de por medio: es una API REST y se integra desde cualquier backend en minutos.

¿Necesito el documento del dueño para consultar el RUNT?

Sí. Es una medida de privacidad del Estado: se requiere placa + número de documento del propietario actual.

Ejemplo de solicitud

POST https://placapi.com/api/consulta. 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/consulta' \
  -H 'x-api-key: pk_live_TU_CLAVE' \
  -H 'content-type: application/json' \
  -d '{"placa":"ABC123","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": {
    "documentNumber": "1020304050",
    "plate": "ABC123",
    "vin": "9FB10000001",
    "informacionGeneral": {
      "noPlaca": "ABC123",
      "marca": "MAZDA",
      "linea": "CX-30",
      "modelo": "2023",
      "cilindraje": "2000",
      "color": "ROJO",
      "claseVehiculo": "CAMIONETA",
      "tipoServicio": "Particular",
      "tipoCombustible": "GASOLINA",
      "noMotor": "MTR0000001",
      "noChasis": "9FB10000001",
      "noVin": "9FB10000001",
      "fechaMatricula": "15/03/2023",
      "organismoTransito": "SEC. MOVILIDAD BOGOTA",
      "estadoDelVehiculo": "ACTIVO",
      "tieneGravamenes": "NO",
      "prendas": "NO"
    },
    "datosTecnicos": {
      "pesoBrutoVehicular": "1650",
      "noEjes": "2",
      "pasajerosSentados": "5"
    },
    "soat": [
      {
        "entidadExpideSoat": "SBS SEGUROS",
        "estado": "VIGENTE",
        "noPoliza": "40001234567",
        "fechaVigencia": "20/09/2025",
        "fechaVencimiento": "19/09/2026"
      }
    ],
    "tecnoMecanica": [
      {
        "cdaExpide": "CDA FONTIBON",
        "estado": "APROBADA",
        "vigente": "SI",
        "fechaVencimiento": "22/09/2026",
        "nroCertificado": "20250012345",
        "url": "20250012345"
      }
    ],
    "polizasResponsabilidadCivil": [],
    "tarjetaOperacion": null,
    "informacionBlindaje": null,
    "solicitudes": [],
    "garantiasMobiliarias": [],
    "garantiasFavorDe": [],
    "limitacionPropiedad": [],
    "normalizacionSaneamiento": []
  },
  "mode": "live",
  "fetchedAt": "2026-07-11T21:00:00.000Z"
}

Explicación campo por campo

CampoTipoDescripción
data.platestringPlaca consultada.
data.vinstringNúmero de identificación vehicular (VIN).
data.informacionGeneral.marcastringMarca del vehículo (p. ej. MAZDA).
data.informacionGeneral.lineastringLínea o referencia comercial.
data.informacionGeneral.modelostringAño-modelo del vehículo.
data.informacionGeneral.cilindrajestring (cc)Cilindraje del motor en centímetros cúbicos.
data.informacionGeneral.tipoServiciostringParticular o Público.
data.informacionGeneral.claseVehiculostringClase (AUTOMÓVIL, CAMIONETA, MOTO…).
data.informacionGeneral.noMotorstringNúmero de motor reportado al RUNT.
data.informacionGeneral.noChasisstringNúmero de chasis reportado al RUNT.
data.informacionGeneral.estadoDelVehiculostringEstado del registro (p. ej. ACTIVO).
data.informacionGeneral.fechaMatriculastring (DD/MM/YYYY)Fecha de matrícula inicial.
data.informacionGeneral.tieneGravamenesstringSI/NO: si el vehículo tiene gravámenes.
data.soat[0].estadostringEstado del SOAT más reciente (VIGENTE / NO VIGENTE).
data.tecnoMecanica[0].vigentestringSI/NO: si la revisión tecnomecánica está vigente.
modestringlive cuando se consultó al RUNT en vivo; cache si vino del caché.
fetchedAtstring (ISO)Marca de tiempo en que se obtuvo el dato.

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

La ficha del RUNT cambia poco, así que se cachea por días. Un traspaso o un SOAT recién pagado puede tardar en reflejarse; reconsultar la misma placa devuelve el resultado cacheado casi al instante.

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

  • Sin el documento del propietario actual el RUNT no devuelve la ficha del vehículo.
  • Si runt.gov.co está en mantenimiento, la consulta puede fallar o devolver campos vacíos.
  • Las multas SIMIT, el impuesto vehicular, el avalúo FASECOLDA y el pico y placa no vienen en esta ficha: cada uno tiene su propio endpoint dedicado.
  • PlacApi no es el RUNT ni una entidad oficial; solo consolida y normaliza lo que el RUNT expone.

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

Otras preguntas frecuentes

¿Devuelve motor y chasis?

+

Cuando el RUNT los expone, sí: llegan en data.informacionGeneral.noMotor y data.informacionGeneral.noChasis. Útil para validar que coincidan con la tarjeta de propiedad antes de comprar.

¿El SOAT y la tecnomecánica vienen en esta consulta?

+

Sí. El RUNT los reporta como histórico: data.soat es un array de pólizas SOAT (la más reciente primero) y data.tecnoMecanica un array de revisiones RTM, cada uno con su estado y vigencia.

Seguir explorando

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

Contacto