DGT queries for portfolios of thousands of vehicles.
Integrate stock or fleet queries using batches of plates. Track each request, retrieve the JSON summary after analysis and download the official PDF when available.
A contract built for integration
Company access
Bearer tokens with defined permissions and revocation from the business portal.
JSON summary and PDF
Report details expose 17 vehicle fields after analysis and access to the available PDF. Results may be null while processing.
Asynchronous batches
POST /reports/batch accepts a plates array and returns 202. Each batch follows the configured limit and runs in the background.
Idempotency and tracking
Idempotency-Key identifies your requests. Retrieve status, progress and outcomes later with GET.
Core endpoints
A versioned REST API at /api/v1, with token authentication, limits and a documented error model.
Authentication
A Bearer token is linked to a company, with permissions that restrict the available operations. Revoke one credential from the portal without affecting the others.
Authorization: Bearer <token>| reports | Order a DGT report, list them, read one, download its PDF. |
| reports/batch | Submit many plates at once; the load runs off the request. |
| usage | Balance, plan and the movement ledger. |
| vehicles | Your fleet — optional, since ordering a report registers its vehicle. |
| locations · departments · subsidiaries · batches | How the fleet is organised. |
Example report request
curl -X POST https://veriflota.es/api/v1/reports \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"plate":"1234BCD"}'Initial response: awaiting processing
{
"id": "01M0ANQ0DFADGVM5PV26ZYV3YX",
"plate": "1234BCD",
"status": "placed",
"progress": "queued",
"requester": { "type": "api_credential", "name": null },
"placedAt": "2026-08-19T09:14:22+00:00",
"settledAt": null,
"outcome": { "returnCode": null, "documentAvailable": false },
"vehicle": null
}Error model
Consistent JSON errors with stable machine codes, mapped from the internal exceptions.
{
"error": {
"code": "insufficient_report_balance",
"message": "Not enough reports left on this account.",
"details": { "needed": 5, "available": 2, "shortfall": 3 }
}
}unauthenticatedinsufficient_scopevalidation_failedinsufficient_report_balancereport_already_in_flightidempotency_key_reusedrate_limitedFull API reference
Every endpoint, request body, response field and error code — generated from the API itself. Sign in to read it; request access first if you do not have an account yet.
Ready to integrate?
Tell us about your request volume and integration needs. We’ll help prepare access for your business.
Request API access