Pro + Power

    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-api

    Authentication

    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

    60 requests per minute per key. Requests over the limit return HTTP 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

    StatusCodeMeaning
    401invalid_api_keyKey missing, malformed, or revoked
    403subscription_inactiveTier downgraded below Pro
    403insufficient_scopeKey lacks required scope
    404not_foundResource does not exist or not yours
    429rate_limitedRetry 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);