Read-only JSON API over Lithuanian public-procurement data scraped from viesiejipirkimai.lt (CVP IS). Two streams: tenders (Pirkimas) and procurement plans (Pirkimų suvestinė).
| Path | Description |
|---|---|
GET /api/health |
Service status, row counts, latest seen. |
GET /api/tenders |
List tenders, newest first. Each row carries the full upstream record (raw) plus indexed columns and a detail_url. Filters: since, until, authority (LIKE on ca_name), status, cpv (LIKE), plan (LIKE on plan_reference). Pagination: limit (≤500), offset. |
GET /api/plans |
List procurement plans, newest commencement first. Filters: since, until, authority, cpv. Pagination: limit (≤500), offset. |
GET /api/stats |
Per-day counts (last 60 days) + top authorities + top CPV classes. |
GET /api/tenders?limit=20
GET /api/tenders?authority=Vilniaus&since=2026-05-01
GET /api/tenders?cpv=33&limit=50
GET /api/tenders?plan=PIRK-2026 # tenders linked to a specific plan reference
GET /api/plans?cpv=33&since=2026-06-01&limit=100
GET /api/stats
GET /api/health
{
"data": [ {...}, {...} ],
"meta": {
"limit": 50,
"offset": 0,
"total": 1867,
"next_offset": 50,
"filters": { ... }
}
}
Access-Control-Allow-Origin: *)./api/health.YYYY-MM-DD or YYYY-MM-DD HH:MM:SS.date_published; plans by the commencement-window day.detail_url and 37 raw fields via raw (sourced from the official VPT API). Plans are still CSV-sourced (no API equivalent yet) and lack per-row URLs.