Welcome to the InfoServices API documentation. This comprehensive guide provides all the information you need to integrate with our powerful vehicle information and document management services.
Our API offers endpoints for:
- Retrieving vehicle mileage history using license plates or VIN numbers
- Managing documents with creation and synchronization capabilities
- Secure authentication and authorization for all operations
<aside>As you scroll, you'll see code examples for working with the API in different programming languages in the dark area to the right (or as part of the content on mobile).
You can switch the language used with the tabs at the top right (or from the nav menu at the top left on mobile).</aside>
To authenticate requests, include an Authorization header with the value "Bearer {YOUR_AUTH_KEY}".
All authenticated endpoints are marked with a requires authentication badge in the documentation below.
Use the key given to you to authenticate.
APIs for user authentication
curl --request POST \
"https://infoservices.guisoft.pt/api/auth/login" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"john_doe\",
\"password\": \"password123\"
}"
{
"message": "Login successful",
"token": "1|a1b2c3d4e5f6g7h8i9j0..."
}
APIs for retrieving vehicle information
This endpoint retrieves the most recently inserted transaction registration for a vehicle identified by its license plate.
The license plate of the vehicle.
curl --request GET \
--get "https://infoservices.guisoft.pt/api/vehicle/plate/07-IS-81" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" {
"data": {
"id": 42,
"plate": "07IS81",
"company_id": 1,
"vin": "TEST82633A123456",
"brand": "Renault",
"model": "Clio",
"processed": false,
"created_at": "2026-06-19 10:00:00",
"updated_at": "2026-06-19 10:00:00"
}
}
This endpoint retrieves the most recently inserted transaction registration for a vehicle identified by its VIN.
The Vehicle Identification Number (VIN).
curl --request GET \
--get "https://infoservices.guisoft.pt/api/vehicle/vin/TEST82633A123456" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" {
"data": {
"id": 42,
"plate": "07IS81",
"company_id": 1,
"vin": "TEST82633A123456",
"brand": "Renault",
"model": "Clio",
"processed": false,
"created_at": "2026-06-19 10:00:00",
"updated_at": "2026-06-19 10:00:00"
}
}
This endpoint retrieves the vehicle registration data for a vehicle identified by its license plate, formatted as the legacy plate number info structure.
The license plate of the vehicle.
curl --request GET \
--get "https://infoservices.guisoft.pt/api/vehicle/plate/73-QJ-74/registration" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"plate\": \"bngzmi\"
}"
{
"nErrorCode": 0,
"sVehiclePlateNumber": "73-QJ-74",
"sVehicleVin": "WBA4E91020G287318",
"nVehicleVtId": 0,
"oVehiclePlateNumberInfo": {
"matric": "73-QJ-74",
"DtMatric": "20150929",
"NRegAnt": "",
"Marca": "BMW",
"Modelo": "4 Gran Coupe (F36)",
"AnoFab": "2015",
"Cor": "AZUL E OUTRAS",
"Quadro": "WBA4E91020G287318",
"PBruto": "",
"CatVeic": "",
"TipVeic": "",
"TipCx": "ND",
"HomUE": "",
"HomPt": "",
"Cm3": "1995",
"KW": "140",
"Comb": "DIESEL",
"NLug": "",
"CO2Comb": "",
"DtRegProp": "",
"TipTt": "",
"TipId": "",
"CP4": "",
"CP3": "",
"LocPost": "",
"tips_token": "",
"FuelType": "DIESEL",
"BodyType": "",
"DriveType": "TRAÇÃO TRASEIRA",
"Transmission": "ND"
},
"aTecdocInfo": [
{
"MakeName": "BMW",
"RangeName": "4 Gran Coupe (F36)",
"TypeName": "420 d",
"Ktypnr": "5D9981083FCBAF50",
"Build_From": "",
"Build_To": "",
"EngineCapacity": "1995",
"Kw": "140",
"Ps": "190",
"Doors": "5",
"MotorCode": ""
}
]
}
This endpoint retrieves the mileage information for a vehicle identified by its license plate.
The license plate of the vehicle.
curl --request GET \
--get "https://infoservices.guisoft.pt/api/vehicle/plate/07-IS-81/mileage" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" {
"data": {
"plate": "07IS81",
"vin": "TEST82633A123456",
"events": [
{
"event_date": "2015-10-13 00:00:00",
"vehicle_mileage": 200000
},
{
"event_date": "2015-03-06 00:00:00",
"vehicle_mileage": 171000
},
]
}
}
This endpoint retrieves the mileage information for a vehicle identified by its Vehicle Identification Number (VIN).
The Vehicle Identification Number (VIN).
curl --request GET \
--get "https://infoservices.guisoft.pt/api/vehicle/vin/1TEST82633A123456/mileage" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" {
"data": {
"plate": "07IS81",
"vin": "TEST82633A123456",
"events": [
{
"event_date": "2015-10-13 00:00:00",
"vehicle_mileage": 200000
},
{
"event_date": "2015-03-06 00:00:00",
"vehicle_mileage": 171000
},
]
}
}
This endpoint queues a job that stores the raw response of an external vehicle data lookup. When the plate and source pair does not exist yet a new row is created, otherwise its response is updated.
curl --request POST \
"https://infoservices.guisoft.pt/api/vehicle/import" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"plate\": \"73-QJ-74\",
\"source\": \"naps\",
\"response\": {
\"make\": \"BMW\",
\"model\": \"420 d\"
}
}"
{
"message": "Vehicle import queued"
}
This endpoint synchronously imports spreadsheets into the vehicle specs table. Row 1 must hold the exact vehicle_specs column names and row 2 onwards the data; no mapping table is involved. Rows are upserted on the (id, category) primary key: new pairs are inserted, existing pairs have every other imported column refreshed. Rows without an id or category value are skipped.
curl --request POST \
"https://infoservices.guisoft.pt/api/vehicle/specs/import" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: multipart/form-data" \
--header "Accept: application/json" \
--form "files[]=@/tmp/phpCSj5pA" {
"results": [
{
"file": "vehicle_specs.xlsx",
"status": "processed",
"imported": 250,
"skipped": 0
}
]
}
This endpoint synchronously imports spreadsheets into the vehicle registrations table. Row 1 must hold the vehicle_registrations column names (compared case-insensitively) and row 2 onwards the data; no mapping table is involved. Rows are upserted on the plate number (plate_nbr): unknown plates are inserted, known plates have every imported column refreshed. Rows without a plate number are skipped.
curl --request POST \
"https://infoservices.guisoft.pt/api/vehicle/registrations/import" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: multipart/form-data" \
--header "Accept: application/json" \
--form "files[]=@/tmp/phpZigK5y" {
"results": [
{
"file": "vehicle_registrations.xlsx",
"status": "processed",
"imported": 250,
"skipped": 0
}
]
}