ZoneLens logo Site Screening · Risk Analysis · Feasibility
8 Cities Live • 4M+ Parcels Indexed

Before you analyze NYC sites,
run them through ZoneLens.

ZoneLens screens NYC parcels for zoning risk, dead-end detection, and approval friction in minutes — not weeks. Eliminate 25-40% of candidate sites as NO-GO before you spend on due diligence. Automated GO/REVIEW/NO_GO classification across 8 US cities.

LIVE CITIES
NYC Los Angeles San Francisco Chicago Miami Phoenix San Diego Philadelphia
Example API Response GET /api/v1/envelope/1008720030?city=nyc
{
  "parcel_id": "1008720030",
  "city": "nyc",
  "zoning_district": "R6B",
  "buildable_sqft": 3400,
  "max_height_ft": 55,
  "lot_coverage_pct": 65,
  "setbacks": {
    "front_ft": 10,
    "side_ft": 8,
    "rear_ft": 30
  },
  "far_base": 2.0,
  "overlays": [],
  "envelope_geojson": { "type": "Polygon", "..." }
}

From Discovery to Decision

1
Discover
Explore 4M+ parcels across 8 cities on the interactive map
2
Filter
Search by zoning family, lot size, FAR, height, and flood zone
3
Screen
Run batch screening with automated risk analysis and scoring
4
Decide
GO / REVIEW / NO_GO classification with confidence scores
5
Export
Download shortlists as CSV, PDF, or JSON with full audit trail

Why ZoneLens?

🔍

Site Screening

Batch-screen parcels with composite scoring and automated ranking. Process entire portfolios and surface the strongest candidates.

⚠️

Risk Analysis

Six risk categories, dead-end detection, and approval friction scoring help you identify obstacles before they become costly surprises.

GO / REVIEW / NO_GO

Deterministic classification for every screened parcel. Transparent logic, confidence-scored, and overridable when your team has local context.

🌐

Cross-City Comparison

Normalized zoning data across 8 cities lets you compare districts, entitlements, and feasibility side by side.

🗺️

Interactive Map

4M+ parcels rendered via vector tiles. Search by zoning family, lot size, FAR, and flood zone. Add parcels to projects directly from the map.

📄

Export & Audit

Download screening results as CSV, PDF, JSON, or Markdown. Every decision includes a full audit trail with citations and provenance.

Real NYC Screening Examples

Every example below uses real NYC parcel data from ZoneLens.

GO — R6 Residential

Parcel 3056840059 in an R6 district. Residential use is by-right, no overlays, no special permits. Confidence: 0.85, approval difficulty: 12. Result: GO — proceed to detailed due diligence.

REVIEW — C6-9 Commercial

Parcel 1000550016 in a C6-9 district. High-density commercial appears feasible but carries moderate approval friction due to discretionary review processes. Result: REVIEW — viable but needs closer analysis.

NO-GO — M1-1 Manufacturing

Parcel 2047530102 in an M1-1 manufacturing district screened for residential use. Dead-end detected: residential is prohibited in M1-1 manufacturing zones. Result: NO_GO — saved weeks of wasted due diligence.

Quick Start

Python
JavaScript
cURL
import requests # Get your API key at https://zonelens.dev/signup API_KEY = "your_api_key_here" BASE_URL = "http://localhost:8000/api/v1" headers = {"X-API-Key": API_KEY} # Get zoning rules for a NYC parcel response = requests.get( f"{BASE_URL}/zoning/1008720030", params={"city": "nyc"}, headers=headers ) zoning = response.json() print(f"District: {zoning['zoning_district']}") print(f"Base FAR: {zoning['far_base']}") print(f"Height Limit: {zoning['height_limit_ft']} ft") # Batch process multiple parcels batch_response = requests.post( f"{BASE_URL}/batch", headers=headers, json={ "parcels": [ {"parcel_id": "1008720030", "city": "nyc", "endpoints": ["zoning", "envelope"]}, {"parcel_id": "5149-021-001", "city": "la", "endpoints": ["zoning", "feasibility"]} ] } ) results = batch_response.json() print(f"Processed {results['total']} parcels in {results['processing_time_ms']}ms")
// Get your API key at https://zonelens.dev/signup const API_KEY = "your_api_key_here"; const BASE_URL = "http://localhost:8000/api/v1"; const headers = { "X-API-Key": API_KEY, "Content-Type": "application/json" }; // Get zoning rules for a NYC parcel const response = await fetch( `${BASE_URL}/zoning/1008720030?city=nyc`, { headers } ); const zoning = await response.json(); console.log(`District: ${zoning.zoning_district}`); console.log(`Base FAR: ${zoning.far_base}`); console.log(`Height Limit: ${zoning.height_limit_ft} ft`); // Batch process multiple parcels const batchResponse = await fetch( `${BASE_URL}/batch`, { method: "POST", headers, body: JSON.stringify({ parcels: [ { parcel_id: "1008720030", city: "nyc", endpoints: ["zoning", "envelope"] }, { parcel_id: "5149-021-001", city: "la", endpoints: ["zoning", "feasibility"] } ] }) } ); const results = await batchResponse.json(); console.log(`Processed ${results.total} parcels in ${results.processing_time_ms}ms`);
# Get your API key at https://zonelens.dev/signup API_KEY="your_api_key_here" BASE_URL="http://localhost:8000/api/v1" # Get zoning rules for a NYC parcel curl -X GET "$BASE_URL/zoning/1008720030?city=nyc" \ -H "X-API-Key: $API_KEY" # Get buildable envelope curl -X GET "$BASE_URL/envelope/1008720030?city=nyc" \ -H "X-API-Key: $API_KEY" # Batch process multiple parcels curl -X POST "$BASE_URL/batch" \ -H "X-API-Key: $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "parcels": [ {"parcel_id": "1008720030", "city": "nyc", "endpoints": ["zoning", "envelope"]}, {"parcel_id": "5149-021-001", "city": "la", "endpoints": ["zoning", "feasibility"]} ] }'

Simple, Transparent Pricing

Explorer

$0

5 parcels/month

  • • Zoning + constraint detection
  • • Feasibility snapshot
  • • 1 city
  • • Community support
Get Started Free
POPULAR

Professional

$99

500 parcels/month

  • • Full screening engine
  • • Exports + comparison
  • • 2 cities (+$39/ea extra)
  • • Email support
Start 7-Day Free Trial

Team

$299

2,000 parcels/month

  • • Batch screening
  • • Team workspaces
  • • 5 cities (+$29/ea extra)
  • • Priority support
Start 7-Day Free Trial

Developer / API

$499

10,000 parcels/month

  • • Full API + webhooks
  • • Automated pipelines
  • • 10 cities
  • • Priority support
Contact Sales

All paid plans support add-ons: zoning memos ($19/ea), change alerts ($29/mo), and credit packs ($25/100).

View full pricing, add-ons & comparison →