Public Tender Assist

Read-only JSON API over Lithuanian public-procurement data scraped from viesiejipirkimai.lt (CVP IS). Two streams: tenders (Pirkimas) and procurement plans (Pirkimų suvestinė).

Endpoints

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

Examples

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

Response shape

{
  "data": [ {...}, {...} ],
  "meta": {
    "limit": 50,
    "offset": 0,
    "total": 1867,
    "next_offset": 50,
    "filters": { ... }
  }
}

Notes