API Reference

Read-only REST API for Feed plan subscribers. Authenticate with your API key and query scored properties programmatically.

Authentication

Pass your API key in the x-api-key header. You can find your key in the dashboard after subscribing to the Feed plan.

curl -H "x-api-key: YOUR_API_KEY" \
  "https://njtaxcheck.com/api/investors/properties?county=ESSEX&minScore=50"

Session-based auth (browser cookies) also works if you're calling from the dashboard.

GET /api/investors/properties

Returns a paginated list of scored properties.

Query Parameters

ParamTypeDefaultDescription
countystring(all)Filter by county. Uppercase, e.g. ESSEX, BERGEN.
municipalitystring(all)Filter by municipality. Uppercase, e.g. NEWARK.
minScoreinteger0Minimum motivation score (0-100).
newOnlybooleanfalseOnly return properties flagged "new this run."
absenteeOnlybooleanfalseOnly return absentee-owner properties.
ownerTypestring(all)Filter by owner classification: estate, trust, entity, or individual. estate flags inherited / probate properties.
vacantOnlybooleanfalseOnly return vacant-land or zero-improvement parcels.
outOfStateOnlybooleanfalseOnly return properties whose owner mailing address is outside NJ.
sortstringmotivation_scoreSort field. Options: motivation_score, net_value, last_year_tax, effective_tax_rate, last_changed_at.
orderstringdescSort order: asc or desc.
pageinteger1Page number (1-indexed).
limitinteger50Results per page. Max 500 (Feed plan).

Example Response

{
  "properties": [
    {
      "pams_pin": "0714_00101_0000_C0001",
      "property_location": "123 BROAD ST",
      "municipality": "NEWARK",
      "county": "ESSEX",
      "motivation_score": 87,
      "score_over_assessment": 85,
      "score_absentee": 100,
      "score_tax_burden": 80,
      "score_deed_staleness": 60,
      "net_value": 245000,
      "implied_market_value": 350000,
      "assessment_over_market_pct": 18.5,
      "effective_tax_rate": 3.42,
      "last_year_tax": 12480,
      "is_absentee": true,
      "owner_name": "SMITH JOHN",
      "sale_price": 210000,
      "deed_date": "2008-03-15",
      "year_constructed": 1965,
      "zip5": "07102",
      "is_new_this_run": true,
      "changed_fields_this_run": [],
      "first_seen_at": "2026-06-01T04:00:00Z",
      "last_seen_at": "2026-06-01T04:00:00Z",
      "last_changed_at": null
    }
  ],
  "total": 14723,
  "page": 1,
  "limit": 50,
  "plan": "feed"
}

GET /api/investors/export

Returns a CSV file with the same filters as the properties endpoint. Feed plan only. Max 10,000 rows per export.

curl -H "x-api-key: YOUR_API_KEY" \
  "https://njtaxcheck.com/api/investors/export?county=ESSEX&minScore=60" \
  -o leads.csv

Score Components

Each property's motivation_score (0-100) is a weighted combination of four signals. Weights auto-adjust when a signal has no input data (e.g., no sale price for over-assessment).

SignalFieldBase WeightRequires
Over-Assessmentscore_over_assessment25%Sale price + county eq. ratio
Absentee Ownerscore_absentee30%Owner mailing address
Tax Burdenscore_tax_burden25%Last year tax + net value
Deed Stalenessscore_deed_staleness20%Deed date

Rate Limits

API key requests are not rate-limited beyond Vercel's standard function concurrency. If you need bulk access beyond 10,000 rows, use the CSV export endpoint or contact us.