සංවර්ධකයින් · உருவாக்குனர்கள் · Developers

API, SDK & Agents

All data is served in-platform via REST. Optional Cursor SDK automates catalog quality.

Lanka TypeScript SDK

import { createLankaClient } from "@lanka/sdk";

const lanka = createLankaClient("https://lanka-platform-sand.vercel.app");
const stats = await lanka.stats();
const live = await fetch("/api/v1/live/fuel_lk").then(r => r.json());
const rag = await lanka.ragQuery("minimum wage labour law");

Cursor SDK (catalog automation)

Use @cursor/sdk to run agents that review catalog sync, enrich descriptions, and report data gaps. Package: packages/catalog-agent

# Get API key: https://cursor.com/dashboard/integrations
export CURSOR_API_KEY="cursor_..."

# After catalog sync — agent reviews 379 datasets
npm run catalog:agent

# Enrich empty descriptions
npm run enrich --workspace=@lanka/catalog-agent

# HTTP trigger (set ADMIN_SECRET + CURSOR_API_KEY on Vercel)
curl -X POST /api/v1/agent/catalog \
  -H "Authorization: Bearer $ADMIN_SECRET" \
  -d '{"task":"Audit priority sync manifest"}'

Optional environment variables

CRON_SECRET              # Protect /api/cron/sync
BLOB_READ_WRITE_TOKEN    # Persistent sync cache across cold starts
MEILISEARCH_URL          # Meilisearch Cloud host
MEILISEARCH_API_KEY      # Meilisearch admin key
OPENAI_API_KEY           # LLM synthesis (legal + RAG)
OPENAI_MODEL             # Default: gpt-4o-mini
CURSOR_API_KEY           # Catalog agent automation
ADMIN_SECRET             # POST /api/v1/agent/catalog

REST endpoints

GET /api/v1/stats

Platform statistics

GET /api/v1/datasets

Browse catalog

GET /api/v1/fuel?sample=30

Fuel shed status sample

GET /api/v1/elections/highlights

Election results highlights

GET /api/v1/search?q=

Meilisearch or keyword fallback

GET /api/v1/sync/status

Last cron sync (Vercel Blob)

GET /api/v1/analytics/news/timeline

News feed

GET /api/v1/cabinet/search?q=

Cabinet search

GET /api/v1/federation/datagov?q=

data.gov.lk CKAN

GET /api/v1/federation/ldflk

LDFLK index (175+ datasets)

GET /api/v1/federation/ldflk/data?year=&name=

LDFLK JSON payload

GET /api/v1/geo/topojson/{layer}

Proxied provinces/districts geo

POST /api/v1/rag/query

Multi-corpus RAG (+ synthesize)

POST /api/v1/agent/catalog

Cursor SDK catalog agent (admin)

GET /api/cron/sync

Warm sync cache (cron)

OpenAPI spec · Dataset catalog