LienScout Pro API
A read-only REST API for the same tax sale property, deal, and alert data you see in the app. Query by state or county, hydrate your CRM, feed downstream models, or build custom dashboards.
Generate keys in Dashboard → Settings → API Keys.
Base URL
https://geumnhyismubjnnxuavg.supabase.co/functions/v1/public-apiAuthentication
Pass your key as a Bearer token in the Authorization header.
Authorization: Bearer lsp_live_<your-key>Keys are shown once at creation. If you lose a key, revoke it and generate a new one. Access is revalidated on every request against your subscription tier; a downgrade immediately disables the key.
Rate limits
429 with a Retry-After: 60 header.Response envelope
{
"data": [...] | { ... },
"next_cursor": "uuid" | null,
"meta": { "request_id": "uuid" }
}Cursor pagination: pass the returned next_cursor back as ?cursor= to fetch the next page. When it is null, you've reached the end.
Endpoints
GET /properties
List tax sale properties. Filter by state (2-letter, uppercase) or county.
Query params: state, county, limit (max 100), cursor.
curl -H "Authorization: Bearer lsp_live_..." \
"https://geumnhyismubjnnxuavg.supabase.co/functions/v1/public-api/properties?state=FL&county=Broward&limit=25"GET /properties/:id
Full property record including enrichment fields (assessment, hazards, risk flags).
curl -H "Authorization: Bearer lsp_live_..." \
"https://geumnhyismubjnnxuavg.supabase.co/functions/v1/public-api/properties/abc-123"GET /deals/:id
Fetch a deal you own. Deals for other users return 404.
curl -H "Authorization: Bearer lsp_live_..." \
"https://geumnhyismubjnnxuavg.supabase.co/functions/v1/public-api/deals/abc-123"GET /alerts
List alerts fired for your account. Use ?since= (ISO-8601) for incremental sync.
curl -H "Authorization: Bearer lsp_live_..." \
"https://geumnhyismubjnnxuavg.supabase.co/functions/v1/public-api/alerts?since=2026-07-01T00:00:00Z&limit=50"Errors
| Status | Code | Meaning |
|---|---|---|
| 401 | invalid_api_key | Key missing, malformed, or revoked |
| 403 | subscription_inactive | Tier downgraded below Pro |
| 403 | insufficient_scope | Key lacks required scope |
| 404 | not_found | Resource does not exist or not yours |
| 429 | rate_limited | Retry after 60s |
Node.js example
const res = await fetch("https://geumnhyismubjnnxuavg.supabase.co/functions/v1/public-api/properties?state=TX&limit=10", {
headers: { Authorization: `Bearer ${process.env.LSP_API_KEY}` }
});
const { data, next_cursor } = await res.json();
console.log(data.length, "properties. Next cursor:", next_cursor);