Vehicles
The vehicles registered to the person, from the Spanish traffic authority (DGT)
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.
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.
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.
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.
Specific vehicle trim/variant.
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.
Reading them together:
- Both present and the same day — the vehicle was first registered in
country. - Both present,
first_registration_dateearlier — 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_datedoes not mean the vehicle was registered again incountry, and a missingfirst_registration_datedoes 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:
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_incidentsis the verdict. It istruewheneverflagsnames an incident.flagslists 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
flagsis not a clean vehicle. A vehicle can carry incidents no flag names, so readhas_incidentsfor the verdict andflagsfor 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
Whether the vehicle has incidents, and which ones. Present only when vehicles_data is
requested with simple_vehicle_report: true in its configurations.
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.
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.