> ## Documentation Index
> Fetch the complete documentation index at: https://docs.usecroma.com/llms.txt
> Use this file to discover all available pages before exploring further.

# RUNT

> Resolve a Colombian vehicle in RUNT by plate: the registry record, technical data, SOAT and inspections; and a person's driver record, licences, fines and certificates by document or plate.

Resolves a vehicle from RUNT (Registro Único Nacional de Tránsito), Colombia's
national traffic and vehicle registry. Given a plate and the registered owner's
document, it returns the vehicle's registry record: make and model, technical
specifications, identifiers, registering authority, dates, and lien/pledge flags.

The owner's document is required: RUNT only returns a vehicle when the plate and
the document match an active owner.

## Request

`POST /co/runt/vehicle-by-plate/v1`

| Field | Type | Notes |
| - | - | - |
| `plate` | string | **Required.** Vehicle plate, e.g. `ABC123` (cars) or `ABC12D` (motorcycles). |
| `document_type` | string | Optional. One of `CC`, `CE`, `TI`, `RC`, `PA`, `NIT`, `PPT`. Defaults to `CC`. |
| `document_number` | string | **Required.** The registered owner's document number (3-30 alphanumeric characters). |

```bash theme={"dark"}
curl https://api.croma.run/co/runt/vehicle-by-plate/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "plate": "ABC123", "document_type": "CC", "document_number": "1234567890" }'
```

`document_type` maps to these identity types: `CC` (cédula de ciudadanía), `CE`
(cédula de extranjería), `TI` (tarjeta de identidad), `RC` (registro civil), `PA`
(pasaporte), `NIT`, and `PPT` (Permiso por Protección Temporal).

## Response

| Field | Notes |
| - | - |
| `found` | `true` when the plate and owner document have an active match; `false` leaves `vehicle` null and the lists empty. |
| `plate` | The queried plate (uppercased). |
| `vehicle` | The vehicle registry record (see below), or `null` when not found. |
| `soat_policies` | SOAT insurance policy history (newest first). |
| `inspections` | Técnico-mecánica (RTM) inspection history. |
| `specifications` | Extended specifications (dimensions, weights, capacities), or `null`. |
| `pledges` | Registered guarantees/liens (garantías), including the creditor (e.g. a financing bank). |
| `ownership_limitations` | Ownership limitations (limitaciones a la propiedad). |
| `armoring` | Armoring (blindaje) status and level, or `null` when unarmored. |
| `civil_liability` | Civil-liability (responsabilidad civil) policies. |
| `dijin_certificate` | DIJIN certificate, or `null` when none on record. |
| `scrapping_certificate` | Scrapping certificate (certificado de desintegración), or `null`. |
| `normalization` | Normalization (normalización) records. |
| `scrapping` | Scrapping (desintegración) status, or `null`. |

All sections beyond `vehicle` are best-effort: if a section is unavailable for a
given vehicle it comes back empty (`[]` or `null`) rather than failing the call.

### `vehicle`

| Field | Notes |
| - | - |
| `plate` | The vehicle's plate. |
| `registration_status` | Registration status, e.g. `ACTIVO`. |
| `service_type` | Service type, e.g. `Particular` / `Público`. |
| `vehicle_class`, `classification`, `body_type` | Class (e.g. `AUTOMOVIL`), classification, and body type. |
| `brand`, `line`, `model_year`, `color` | Make, line, model year, and color. |
| `fuel_type`, `engine_displacement` | Fuel type and engine displacement (cc). |
| `doors`, `seated_passengers`, `total_passengers` | Doors and passenger capacity. |
| `axle_count`, `gross_weight`, `load_capacity` | Axles, gross weight, and load capacity. |
| `vin`, `engine_number`, `chassis_number`, `serial_number` | Vehicle identifiers. |
| `traffic_license_number` | Traffic-license number (licencia de tránsito). |
| `traffic_authority` | Registering traffic authority (organismo de tránsito). |
| `country_name` | Origin country, when applicable. |
| `registration_date`, `enrollment_date`, `days_registered` | Registration dates and days registered. |
| `has_liens`, `has_pledges` | Whether the vehicle carries registered liens (gravámenes) or pledges (prendas). |
| `is_repowered`, `is_classic`, `is_teaching_vehicle`, `is_state_security` | Status flags. |
| `engine_restamped`, `chassis_restamped`, `serial_restamped`, `vin_restamped` | Whether each identifier was re-stamped (regrabado). |

`SI`/`NO` indicators are returned as booleans, numeric fields as numbers, and
dates as `yyyy-mm-dd`. Missing values are `null`.

### `soat_policies[]`

Each SOAT policy carries `policy_number`, `insurer`, `is_current` (the
currently-valid policy), `issue_date`, `start_date`, `expiry_date`, `origin`, and
`tariff_type`.

### `inspections[]`

Each técnico-mecánica (RTM) record carries `certificate_number`, `center_name`
(the CDA), `inspection_type`, `status`, `is_current`, `issue_date`, `expiry_date`,
and `plate`.

### `specifications`

`load_capacity`, `gross_weight`, `axle_count`, `tire_count`, `height`, `width`,
`length`, `total_passengers`, `seated_passengers`.

### `pledges[]` and `ownership_limitations[]`

`pledges` lists registered guarantees/liens (garantías): `creditor`,
`creditor_document_type`, `creditor_document_number`, `registered_date`,
`trust_estate`. A financed vehicle shows its creditor here (e.g. the bank that
holds the prenda). `ownership_limitations` lists limitaciones a la propiedad
(`limitation_type`, `document_number`, `legal_entity`, `department`,
`municipality`, `issue_date`, `filing_date`). Both are empty for unencumbered
vehicles.

### `armoring`, `civil_liability[]`, certificates, `normalization[]`, `scrapping`

`armoring` reports blindaje status: `is_armored`, `level` (e.g. `TRES`),
`level_number`, `armored_date`, `dearmored_date`, `resolution_number`,
`armoring_type`, `certificate_issue_date`, `authorization`.
`civil_liability[]` lists responsabilidad-civil policies (`policy_number`,
`insurer`, `start_date`, `expiry_date`, `is_current`).
`dijin_certificate` and `scrapping_certificate` carry a `certificate_number`,
dates, issuing entity, and `status`. `normalization[]` reports normalización
records, and `scrapping` reports desintegración status. Each is `null`/empty when
not applicable to the vehicle.

<Note>
  This lookup can take longer than a typical request. It's an
  [async job](/async-jobs). By default the request waits inline and returns
  `{ data }`, or you can set `Prefer: wait=N`, poll `GET /jobs/{id}`, or supply a
  `callback_url`.
</Note>

## Vehicle history by plate

`POST /co/runt/vehicle-history-by-plate/v1`

Looks up a vehicle's RUNT history by plate alone, without the owner's document.
It returns the registered owner(s) with their identification numbers, the vehicle
characteristics, the traffic-license and import records, SOAT and técnico-mecánica
history, any accident on record, recent and pending procedures (trámites), and
guarantee/lien and ownership-limitation summaries.

| Field | Type | Notes |
| - | - | - |
| `plate` | string | **Required.** Vehicle plate, e.g. `ABC123` (cars) or `ABC12D` (motorcycles). |

```bash theme={"dark"}
curl https://api.croma.run/co/runt/vehicle-history-by-plate/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "plate": "ABC123" }'
```

The response carries `found`, `plate`, `vehicle`, `owners[]` (each with
`document_type`, `name`, `document_number`, ownership dates, and `owner_type`),
`traffic_license`, `import_record`, `soat_policies[]`, `inspections[]`,
`accident`, `pending_procedures[]`, `guarantee`, and `limitation`. Sections are
best-effort: anything unavailable comes back empty (`[]` or `null`) rather than
failing the call. Like the lookup above, this is an async job.

## Citizen by document

`POST /co/runt/citizen-by-document/v1`

Looks up a person in RUNT by identification document alone. It returns the
driver record (name, registration id and date, person and driver status), every
driving licence with its categories, traffic-fine standing (paz y salvo),
procedure requests (solicitudes), driving-aptitude and medical certificates with
their detail, CUPL registrations, SICOV validations, ANSV payments and the
identity-validation history. The first surname is optional: when omitted, the
surname on record is used.

| Field | Type | Notes |
| - | - | - |
| `document_type` | string | Optional. One of `CC`, `CE`, `TI`, `RC`, `PA`, `PPT`. Defaults to `CC`. |
| `document_number` | string | **Required.** The person's document number (3-30 alphanumeric characters). |
| `first_surname` | string | Optional. The person's first surname (primer apellido). When omitted, the surname on record is used. |

```bash theme={"dark"}
curl https://api.croma.run/co/runt/citizen-by-document/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "document_type": "CC", "document_number": "1234567890" }'
```

| Field | Notes |
| - | - |
| `found` | `true` when the registry has a record for the document; `false` leaves `person` null and the lists empty. |
| `document_type`, `document_number` | The queried document. |
| `first_surname` | The first surname the record opened with (the one given, or the one on record), or `null` when none matched. |
| `person` | The driver record: `full_name`, `registration_id`, `registration_date`, `person_status`, `driver_status`, `has_licenses`. `null` when the registry knows the document but no driver record could be opened; only `cupl_registrations` may then be populated. |
| `licenses[]` | Driving licences: `license_number`, `issuing_authority`, `issue_date`, `status`, `is_retained`, `restrictions`, `cancellation_date`, `suspension_start_date`, `suspension_end_date`, `resolution_number`, `cancelling_authority`, and `categories[]` with `category`, `issue_date`, `expiry_date`, `exam_expiry_date` and `previous_category`. |
| `fines` | Traffic-fine standing: `has_fines` and `clearance_number` (paz y salvo). |
| `requests[]` | Procedure requests: `request_number`, `request_date`, `identifier`, `status`, `procedure_status`, `procedure`, `procedures_completed`, `entity`, `registry`, `validation_type`, `validation_description`. |
| `aptitude_certificates[]` | Driving-aptitude certificates from driving schools (CEA): `certificate_number`, `certificate_type`, `status`, `center_name`, `issue_date`, `expiry_date`, plus the detail fields below. |
| `medical_certificates[]` | Medical certificates from recognised centres (CRC): `certificate_number`, `center_name`, `issue_date`, `expiry_date`, `status`, plus the detail fields below. |
| `cupl_registrations[]` | CUPL registrations: `cupl_number`, `traffic_authority`, `issue_date`, `status`. |
| `sicov_validations[]` | SICOV validations: `validation_date`, `status`, `description`, `plate`. |
| `ansv_payments[]` | Payments registered with the ANSV: `registration_date`, `center_name`, `category`, `certificate_type`, `status`. |
| `identity_validation` | `user_status`, `unlock_date` and `validations[]` with `validation_date`, `status`, `description`, `plate`. |

Both certificate lists carry the same detail fields: `request_number`,
`request_date`, `fua_number`, `procedure`, `category`, `restrictions`,
`limitations`, `limitation_expiry_date`, `elements_to_overcome_limitations` and
`traffic_authority`. A certificate with no expiry has `expiry_date: null`. Dates
are `yyyy-mm-dd` and missing values are `null`. Sections are best-effort:
anything unavailable comes back empty (`[]` or `null`) rather than failing the
call. Like the lookups above, this is an async job.

## Citizen by plate

`POST /co/runt/citizen-by-plate/v1`

Resolves a vehicle's current registered owner from the plate alone and returns
that person's citizen record: the same driver record, licences, fines,
requests, certificates, validations and payments as the lookup above.

| Field | Type | Notes |
| - | - | - |
| `plate` | string | **Required.** Vehicle plate, e.g. `ABC123` (cars) or `ABC12D` (motorcycles). |

```bash theme={"dark"}
curl https://api.croma.run/co/runt/citizen-by-plate/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "plate": "ABC123" }'
```

The response carries `found`, `plate`, `owner` (`document_type`,
`document_number` and `name` of the current owner) and `citizen`, the owner's
record in the shape documented above. `found` is `false` with `owner: null` when
the plate has no current natural-person owner, for example a company's vehicle.
This is an async job.

<Card title="Full reference" icon="code" href="/api-reference/overview">
  Schemas, response fields, and an interactive playground.
</Card>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.