curl --request POST \
--url https://api.croma.run/co/runt/vehicle-by-plate/v1 \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"plate": "ABC123",
"document_type": "CC",
"document_number": "1234567890"
}
'import requests
url = "https://api.croma.run/co/runt/vehicle-by-plate/v1"
payload = {
"plate": "ABC123",
"document_type": "CC",
"document_number": "1234567890"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({plate: 'ABC123', document_type: 'CC', document_number: '1234567890'})
};
fetch('https://api.croma.run/co/runt/vehicle-by-plate/v1', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.croma.run/co/runt/vehicle-by-plate/v1",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'plate' => 'ABC123',
'document_type' => 'CC',
'document_number' => '1234567890'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.croma.run/co/runt/vehicle-by-plate/v1"
payload := strings.NewReader("{\n \"plate\": \"ABC123\",\n \"document_type\": \"CC\",\n \"document_number\": \"1234567890\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.croma.run/co/runt/vehicle-by-plate/v1")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"plate\": \"ABC123\",\n \"document_type\": \"CC\",\n \"document_number\": \"1234567890\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.croma.run/co/runt/vehicle-by-plate/v1")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"plate\": \"ABC123\",\n \"document_type\": \"CC\",\n \"document_number\": \"1234567890\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"found": true,
"plate": "<string>",
"vehicle": {
"plate": "<string>",
"registration_status": "<string>",
"service_type": "<string>",
"vehicle_class": "<string>",
"classification": "<string>",
"body_type": "<string>",
"brand": "<string>",
"line": "<string>",
"model_year": "<string>",
"color": "<string>",
"fuel_type": "<string>",
"engine_displacement": 123,
"doors": 123,
"seated_passengers": 123,
"total_passengers": 123,
"axle_count": 123,
"gross_weight": 123,
"load_capacity": 123,
"vin": "<string>",
"engine_number": "<string>",
"chassis_number": "<string>",
"serial_number": "<string>",
"traffic_license_number": "<string>",
"traffic_authority": "<string>",
"country_name": "<string>",
"registration_date": "<string>",
"enrollment_date": "<string>",
"days_registered": 123,
"has_liens": true,
"has_pledges": true,
"is_repowered": true,
"is_classic": true,
"is_teaching_vehicle": true,
"is_state_security": true,
"engine_restamped": true,
"chassis_restamped": true,
"serial_restamped": true,
"vin_restamped": true
},
"soat_policies": [
{
"policy_number": "<string>",
"insurer": "<string>",
"is_current": true,
"issue_date": "<string>",
"start_date": "<string>",
"expiry_date": "<string>",
"origin": "<string>",
"tariff_type": "<string>"
}
],
"inspections": [
{
"certificate_number": "<string>",
"center_name": "<string>",
"inspection_type": "<string>",
"status": "<string>",
"is_current": true,
"issue_date": "<string>",
"expiry_date": "<string>",
"plate": "<string>"
}
],
"specifications": {
"load_capacity": 123,
"gross_weight": 123,
"axle_count": 123,
"tire_count": 123,
"height": 123,
"width": 123,
"length": 123,
"total_passengers": 123,
"seated_passengers": 123
},
"pledges": [
{
"creditor": "<string>",
"creditor_document_type": "<string>",
"creditor_document_number": "<string>",
"registered_date": "<string>",
"trust_estate": "<string>"
}
],
"ownership_limitations": [
{
"limitation_type": "<string>",
"document_number": "<string>",
"legal_entity": "<string>",
"department": "<string>",
"municipality": "<string>",
"issue_date": "<string>",
"filing_date": "<string>"
}
],
"armoring": {
"is_armored": true,
"level": "<string>",
"level_number": 123,
"armored_date": "<string>",
"dearmored_date": "<string>",
"resolution_number": "<string>",
"armoring_type": "<string>",
"certificate_issue_date": "<string>",
"authorization": "<string>"
},
"civil_liability": [
{
"policy_number": "<string>",
"insurer": "<string>",
"start_date": "<string>",
"expiry_date": "<string>",
"is_current": true
}
],
"dijin_certificate": {
"certificate_number": "<string>",
"issue_date": "<string>",
"issuing_entity": "<string>",
"status": "<string>"
},
"scrapping_certificate": {
"certificate_number": "<string>",
"status": "<string>",
"issue_date": "<string>",
"scrapping_entity": "<string>"
},
"normalization": [
{
"initial_registration_deficiency": true,
"normalized_status": "<string>",
"date": "<string>",
"administrative_act_number": "<string>"
}
],
"scrapping": {
"plate": "<string>",
"should_scrap": true
}
}
}{
"job": {
"id": "<string>",
"status": "queued",
"endpoint": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"finished_at": "2023-11-07T05:31:56Z",
"status_url": "<string>"
},
"data": {},
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"param": "<string>",
"details": {}
}
}{
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"param": "<string>",
"details": {}
}
}{
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"param": "<string>",
"details": {}
}
}{
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"param": "<string>",
"details": {}
}
}{
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"param": "<string>",
"details": {}
}
}RUNT Vehicle by Plate
Resolve a Colombian vehicle in RUNT (Registro Único Nacional de Tránsito) by plate and the registered owner’s document. Returns the vehicle record (brand, line, model year, class, body, color, engine displacement, fuel, weights, VIN, engine/chassis/serial numbers, traffic authority, registration dates, lien/pledge flags) plus SOAT insurance history, técnico-mecánica (RTM) inspection history, extended technical data, registered guarantees/liens (with the creditor, e.g. a financing bank), ownership limitations, armoring (blindaje) status, civil-liability policies, DIJIN and scrapping certificates, normalization records, and scrapping status. document_type defaults to CC. found: false when the plate and owner document have no active match.
Supports async delivery: set Prefer: wait=N for an inline result, pass callback_url to receive a POST when ready, or poll GET /jobs/{id}.
curl --request POST \
--url https://api.croma.run/co/runt/vehicle-by-plate/v1 \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"plate": "ABC123",
"document_type": "CC",
"document_number": "1234567890"
}
'import requests
url = "https://api.croma.run/co/runt/vehicle-by-plate/v1"
payload = {
"plate": "ABC123",
"document_type": "CC",
"document_number": "1234567890"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({plate: 'ABC123', document_type: 'CC', document_number: '1234567890'})
};
fetch('https://api.croma.run/co/runt/vehicle-by-plate/v1', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.croma.run/co/runt/vehicle-by-plate/v1",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'plate' => 'ABC123',
'document_type' => 'CC',
'document_number' => '1234567890'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.croma.run/co/runt/vehicle-by-plate/v1"
payload := strings.NewReader("{\n \"plate\": \"ABC123\",\n \"document_type\": \"CC\",\n \"document_number\": \"1234567890\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.croma.run/co/runt/vehicle-by-plate/v1")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"plate\": \"ABC123\",\n \"document_type\": \"CC\",\n \"document_number\": \"1234567890\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.croma.run/co/runt/vehicle-by-plate/v1")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"plate\": \"ABC123\",\n \"document_type\": \"CC\",\n \"document_number\": \"1234567890\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"found": true,
"plate": "<string>",
"vehicle": {
"plate": "<string>",
"registration_status": "<string>",
"service_type": "<string>",
"vehicle_class": "<string>",
"classification": "<string>",
"body_type": "<string>",
"brand": "<string>",
"line": "<string>",
"model_year": "<string>",
"color": "<string>",
"fuel_type": "<string>",
"engine_displacement": 123,
"doors": 123,
"seated_passengers": 123,
"total_passengers": 123,
"axle_count": 123,
"gross_weight": 123,
"load_capacity": 123,
"vin": "<string>",
"engine_number": "<string>",
"chassis_number": "<string>",
"serial_number": "<string>",
"traffic_license_number": "<string>",
"traffic_authority": "<string>",
"country_name": "<string>",
"registration_date": "<string>",
"enrollment_date": "<string>",
"days_registered": 123,
"has_liens": true,
"has_pledges": true,
"is_repowered": true,
"is_classic": true,
"is_teaching_vehicle": true,
"is_state_security": true,
"engine_restamped": true,
"chassis_restamped": true,
"serial_restamped": true,
"vin_restamped": true
},
"soat_policies": [
{
"policy_number": "<string>",
"insurer": "<string>",
"is_current": true,
"issue_date": "<string>",
"start_date": "<string>",
"expiry_date": "<string>",
"origin": "<string>",
"tariff_type": "<string>"
}
],
"inspections": [
{
"certificate_number": "<string>",
"center_name": "<string>",
"inspection_type": "<string>",
"status": "<string>",
"is_current": true,
"issue_date": "<string>",
"expiry_date": "<string>",
"plate": "<string>"
}
],
"specifications": {
"load_capacity": 123,
"gross_weight": 123,
"axle_count": 123,
"tire_count": 123,
"height": 123,
"width": 123,
"length": 123,
"total_passengers": 123,
"seated_passengers": 123
},
"pledges": [
{
"creditor": "<string>",
"creditor_document_type": "<string>",
"creditor_document_number": "<string>",
"registered_date": "<string>",
"trust_estate": "<string>"
}
],
"ownership_limitations": [
{
"limitation_type": "<string>",
"document_number": "<string>",
"legal_entity": "<string>",
"department": "<string>",
"municipality": "<string>",
"issue_date": "<string>",
"filing_date": "<string>"
}
],
"armoring": {
"is_armored": true,
"level": "<string>",
"level_number": 123,
"armored_date": "<string>",
"dearmored_date": "<string>",
"resolution_number": "<string>",
"armoring_type": "<string>",
"certificate_issue_date": "<string>",
"authorization": "<string>"
},
"civil_liability": [
{
"policy_number": "<string>",
"insurer": "<string>",
"start_date": "<string>",
"expiry_date": "<string>",
"is_current": true
}
],
"dijin_certificate": {
"certificate_number": "<string>",
"issue_date": "<string>",
"issuing_entity": "<string>",
"status": "<string>"
},
"scrapping_certificate": {
"certificate_number": "<string>",
"status": "<string>",
"issue_date": "<string>",
"scrapping_entity": "<string>"
},
"normalization": [
{
"initial_registration_deficiency": true,
"normalized_status": "<string>",
"date": "<string>",
"administrative_act_number": "<string>"
}
],
"scrapping": {
"plate": "<string>",
"should_scrap": true
}
}
}{
"job": {
"id": "<string>",
"status": "queued",
"endpoint": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"finished_at": "2023-11-07T05:31:56Z",
"status_url": "<string>"
},
"data": {},
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"param": "<string>",
"details": {}
}
}{
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"param": "<string>",
"details": {}
}
}{
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"param": "<string>",
"details": {}
}
}{
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"param": "<string>",
"details": {}
}
}{
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"param": "<string>",
"details": {}
}
}Authorizations
Use Authorization: Bearer YOUR_API_KEY
Headers
Optional client-chosen key for this request (any string up to 255 characters, e.g. a UUID). Every Croma operation is an idempotent lookup: repeating a request with the same body returns the same result and creates nothing, so retrying after a timeout or network failure is always safe. The key is echoed back in the Idempotency-Key response header so you can correlate a retry with its first attempt. Each attempt that reaches the API counts against the rate limit.
255"0f8e9a42-6b7c-4d1e-9a3f-2c5d7e8f9a0b"
Set wait=N to hold the connection up to N seconds for an inline result. If the job finishes in time you get the normal 200 body; otherwise a 202 with a status_url to poll.
"wait=30"
Body
Colombian vehicle plate, e.g. ABC123 or ABC12D.
6^[A-Za-z]{3}\d{2}[A-Za-z0-9]$Document number (alphanumeric with hyphens allowed).
3 - 30Colombian document type. Defaults to CC.
CC, CE, TI, RC, PA, NIT, PPT POST the job result here when it finishes.
Response
Successful response
Show child attributes
Show child attributes