Skip to navigation

Vehicles

The vehicles registered to the person, from the Spanish traffic authority (DGT)

View as Markdown

Where it lives: in the Spain Public Administration results, at data.driver.vehicles. APIs with dedicated per-product results endpoints return this model directly.

Each entry is a vehicle registered to the person: identification, insurance situation, inspection status and administrative state. Use it for asset verification and to spot liabilities at a glance.

Read the incident flags first. simple_vehicle_report.flags names what makes a vehicle a risk to buy, finance or insure — a seizure, a seal, a financing charge, a deregistration, an expired inspection — and any one of them sets has_incidents to true. The report comes when vehicles_data asks for it. What each flag means.

product"driver_data"Required
sub_family"driver_data:eu_owned_vehicle"Required
fetch_datestringRequiredformat: "datetime"
Date this product was fetched
countrystringRequiredformat: "country"
Country where the vehicle is registered.
registration_datedateRequiredDeprecated

Deprecated: read last_registration_date and first_registration_date instead. A registration date as the source reports it, which is not always the same registration: the one in country when the source gives it, the vehicle's first registration when the source gives only that one. Still present, and filled as before.

first_registration_datedateOptional

Date the vehicle was registered for the first time, in any country: for an imported vehicle, its original registration abroad. It belongs to the vehicle, not to its owner — a vehicle bought second hand keeps it — and it is the date that tells the vehicle's age. Equal to last_registration_date when the vehicle was first registered in country. Absent when the source consulted does not give it — and then last_registration_date may well be the first registration too: the absence only says the source does not tell.

last_registration_datedateOptional

Date the vehicle was registered in country: the registration in force. Equal to first_registration_date for a vehicle first registered there, later for one registered abroad before. It belongs to the vehicle, not to its owner — a change of owner leaves it as it was. Absent when the source consulted does not give it — and then first_registration_date may well be the registration in country too: the absence only says the source does not tell.

inspection_expiry_datedateOptional
Expiry date of the vehicle inspection.
inspection_pendingbooleanOptional
If true, the vehicle has failed the previous inspection or is pending to be inspected.
license_platestringOptional
License plate number of the vehicle.
administrative_situationstringOptional
Current administrative situation of the vehicle.
vinstringOptional
Vehicle Identification Number.
makestringOptional
Vehicle manufacturer.
modelstringOptional
Vehicle model name.
trimstringOptional

Specific vehicle trim/variant.

colorstringOptional
Color of the vehicle.
mileageintegerOptional>=0
mileage_datedateOptional
Date when the mileage was recorded.
fuel_typestringOptional
Fuel type of the vehicle.
emission_classstringOptional
Emission class of the vehicle.
insuranceobjectOptional
Vehicle insurance policy.
simple_vehicle_reportobjectOptional

Whether the vehicle has incidents, and which ones. Present only when vehicles_data is requested with simple_vehicle_report: true in its configurations.

Registration dates

A vehicle carries up to two registrations, each in a field of its own. Both belong to the vehicle, not to its owner: a vehicle bought second hand keeps them.

FieldThe registration it is
first_registration_dateThe vehicle’s first registration, in any country — for an imported vehicle, the original one abroad. It is the date that tells how old the vehicle is.
last_registration_dateThe registration in force: the day the vehicle was registered in country.

Reading them together:

  • Both present and the same day — the vehicle was first registered in country.
  • Both present, first_registration_date earlier — it was registered elsewhere before: abroad, for an imported vehicle.
  • One of them absent — the connection that read the vehicle does not give it, and nothing more. The date that is present may well be both: a missing last_registration_date does not mean the vehicle was registered again in country, and a missing first_registration_date does not mean it was registered elsewhere before.

Some connections give both registrations, some only one of them; when a session reads the vehicle through more than one, the results put together what each gives. To know what a given connection returns, write to support@infonite.tech.

registration_date is deprecated

Depending on the connection it is the registration in country or the first one, so it cannot tell which. It is still there and filled as before: read last_registration_date and first_registration_date instead.

Insurance

The vehicle’s insurance situation:

Vehicle insurance policy.
is_activebooleanRequired
Whether the vehicle has an active insurance policy.
companystringOptional
Name of the insurance company.
start_datedateOptional
Start date of the insurance policy.
end_datedateOptional
End date of the insurance policy.

Incident report

A quick yes/no on whether the vehicle has recorded incidents, and which ones. It exists only when you ask for it — {"code": "vehicles_data", "configurations": {"simple_vehicle_report": true}} — and then whenever a source issues one or the vehicle’s inspection has expired; with no report from a source, it holds that flag alone, dated when the vehicle was read:

  • has_incidents is the verdict. It is true whenever flags names an incident.
  • flags lists the incidents found on the vehicle, each code once — the table below. It is absent when the source does not say, and empty when it says there are none.
  • An empty flags is not a clean vehicle. A vehicle can carry incidents no flag names, so read has_incidents for the verdict and flags for the reasons you can act on.

The registry’s own flags come from the DGT. Seizures, seals, financing charges and deregistrations are named only when the DGT is the source of the report. Other connections may return the verdict without them, and the detailed flags may be missing unless the connection is configured for them. inspection_expired is the exception: it is raised whichever source returned the vehicle. To know what a given connection returns, write to support@infonite.tech.

What each flag means

FlagThe DGT calls itWhat it means
seizureEmbargoA judicial or administrative seizure: the vehicle answers for a debt.
sealPrecintoAn order immobilising the vehicle: it may not circulate.
financing_chargeCarga de entidad financieraA charge in favour of a financial institution, such as a retention of title (reserva de dominio) on a financed vehicle.
temporary_deregistrationBaja temporalTemporarily deregistered: the vehicle may not circulate.
permanent_deregistrationBaja definitivaPermanently deregistered: the vehicle can never circulate again.
theft_deregistrationBaja por sustracciónDeregistered as stolen.
transfer_deregistrationBaja por transferenciaDeregistered while a change of owner is pending.
inspection_expiredITV caducadaThe inspection had expired on the day the report was taken: the vehicle may not circulate. It is not a registry annotation but a reading of inspection_expiry_date against the report’s date, so it is raised whichever source returned the vehicle — on a report built for it when there was none, if the report was asked for.

Whether the vehicle has incidents, and which ones. Present only when vehicles_data is requested with simple_vehicle_report: true in its configurations.

report_datestringRequiredformat: "datetime"
Date when the information was consulted.
has_incidentsbooleanRequired

Whether the vehicle has incidents, meaning that at the time of the inquiry, there are one or more annotations that prevent administrative processing or the circulation of the vehicle. For your safety, request a full vehicle report to know the details of all the information held in the Registry regarding the vehicle consulted. Always true when flags names any — an expired inspection included.

flagslist of enumsOptional

The incidents that make this vehicle a risk to buy, finance or insure: what the registry flags on it — a seizure, a seal, a financing charge, a deregistration — and inspection_expired when its inspection (ITV) had expired at the time of the report. Each code appears once, in no particular order. Absent when the source does not say; empty when it says there are none. A vehicle can have incidents no flag names, so an empty list does not mean has_incidents is false.