Skip to content
REST API

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.

/v1

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>
reportsOrder a DGT report, list them, read one, download its PDF.
reports/batchSubmit many plates at once; the load runs off the request.
usageBalance, plan and the movement ledger.
vehiclesYour fleet — optional, since ordering a report registers its vehicle.
locations · departments · subsidiaries · batchesHow 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_limited

Full 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.

Open the reference

Ready to integrate?

Tell us about your request volume and integration needs. We’ll help prepare access for your business.

Request API access