Examples directory

Every URL, in one place

All current public landing variations, admin pages and API endpoints — populated with live data from Supabase. Use this as a click-through tour or a sanity-check before demos.

0 partners0 assets0 POIs0 locations0 templates0 experiences0 scans 7d

API endpoints

Server routes. POST endpoints aren't directly clickable — example curl recipes provided.

GET/api/cron/litto-sync

Litto sync cron target

Vercel Cron (every 30 min) hits this with bearer auth. Local hits without CRON_SECRET set are allowed for testing.

Try in browser
GET/api/geocode?q=…

Mapbox geocoding proxy

Server-side typeahead for POI submissions. Returns 503 with enabled:false when MAPBOX_TOKEN is unset.

Try in browser
POST/api/scan

Scan ingest

Fired client-side after the public landing renders. Logs to scans table + emits PostHog event.

curl -X POST http://localhost:3001/api/scan \
  -H "Content-Type: application/json" \
  -d '{"partner_slug":"casa-bella","asset_slug":"sunshine-suite","qr_slug":"7K9X2"}'
POST/api/webhook/litto

Litto booking webhook

HMAC-SHA256 verified inbound from litto.co. Idempotent on litto_booking_id. Handles completed / refunded / cancelled.

curl -X POST http://localhost:3001/api/webhook/litto \
  -H "Content-Type: application/json" \
  -d '{"event":"booking.completed","litto_booking_id":"abc-123","ref":"casa-bella","qr_slug":"7K9X2","amount_total":95,"commission_amount":9.5}'