Data API — /api/v1

Free plan: query /records and /changelog, 1000 requests/day.

Pro plan ($19/mo, Paddle test mode): everything above + /export CSV download.

Endpoints

MethodPathPlanNotes
GET/api/v1/records?city=&category=&min_price=&max_price=freeall filters optional
GET/api/v1/changelog?days=30freediff vs previous snapshot
GET/api/v1/exportproCSV download, same filters
POST/api/v1/register—{"email": "you@x.com"} → api_key
POST/api/v1/upgrade—{"api_key"} → pro (Paddle test)

Authentication & rate limit

Authorization: Bearer <your-api-key>
# 1000 requests per key per UTC day → HTTP 429 when exceeded
# missing / bad key → HTTP 401
# /export on a free key → HTTP 402

Example

curl -H "Authorization: Bearer $KEY" \
  "https://pseo-sample.pseo-web.workers.dev/api/v1/records?city=austin&category=moving"

Try it

Register a throwaway key below (stored only in your browser):

The production /api/v1 service is provisioned on the same Cloudflare account; this page's register button hits the live endpoint. Billing (Paddle test mode) is wired to the upgrade call — switch to live Paddle mode when you are ready to charge real money.