Every Caropen figure is available through a public, read-only API. No sign-up or key is needed, and responses are JSON. This website uses the same endpoints. Below is the list of endpoints, generated from the API's description.
Basics
- Base URL:
https://api.caropen.lt; every path starts with/api/public/. - Format:
application/jsononly. SendAccept: application/jsonor noAcceptheader. - Authentication: none. The API serves aggregates only – nothing about an individual car or station.
Attribution
The source data is published under the CC BY 4.0 licence. Wherever you show figures from the API, you must give attribution: the text from GET /api/public/meta → licence.attribution (State Data Agency / Transeksta, Vehicle technical inspection data, data.gov.lt) with the licence, and Caropen.lt with a link. More in Data and licence.
Usage limits
- Responses are cached at the Cloudflare edge for a week and refreshed after each weekly publish, so there is no point requesting the same URL more than once a day.
- No hard limit is enforced yet, but please keep to at most 60 requests per minute per IP address. That limit will be enforced for anonymous use later (a
429response withRetry-After). - Need more, or bulk data (e.g. every model × year group)? Write to info@caropen.lt – keys with higher limits are planned.
- Do not resell the API as your own service without attribution, and do not hammer it to crawl every page – the sitemap sets (
/sitemap/{set}) list every published path.
Caching and revalidation
Every successful response carries Cache-Control: max-age=0, public, s-maxage=604800, stale-while-revalidate=86400, an ETag and Last-Modified. They change only when new figures are published, so with If-None-Match or If-Modified-Since you get a bodiless 304 Not Modified while nothing has changed. Data freshness is in GET /api/public/meta → freshness.lastPublish.
Conventions
- Shares are numbers from 0 to 1 (
passRate,rollbackShare, the values offuelMix).ciLoandciHiare the bounds of the 95 % Wilson interval. nis the number of first attempts (main inspections), not re-inspections.nullis always sent – a missing figure isnull, never an absent key.- Codes (fuels, verdicts) are never localised:
PETROL,DIESEL,NO_DEFECTS,MAJOR_DEFECTSand so on. - Slugs are
[a-z0-9-]and the same in every locale. - Publication thresholds are in
GET /api/public/meta→thresholds. A group below its threshold answers withpublishable: false, and below 30 first attempts with404. More in the methodology.
Errors
Errors use the application/problem+json format with title, detail and status:
| Status | When |
|---|---|
400 | A malformed paging parameter (/sitemap/{set}?page=x). |
404 | Unknown slug, year or period; a group below 30 attempts; a ranking view with no rows. |
406 | An Accept header other than application/json. |
422 | Invalid query parameters; the body adds violations[]. |