{"name":"NYC Permit Data Extraction API","version":"3.0.0","description":"Production-ready API for querying NYC building permit data with advanced search, map capabilities, analytics, and detailed permit views. Optimized with caching, rate limiting, and compression.","documentation":"Interactive API docs available at /docs (Swagger UI)","performance":{"caching":"In-memory cache for expensive queries","rateLimit":"100 requests per minute per IP","compression":"Gzip/deflate compression (>1KB responses)","indexes":"4 performance indexes for fast queries"},"endpoints":{"health":"GET /health - Health check endpoint","stats":"GET /stats - Database statistics","permitsSummary":"GET /permits/summary - Get permit metadata and monthly breakdown","permits":"GET /permits - Query permits with filters","permitById":"GET /permits/:jobFilingNumber - Get single permit","searchPermits":"GET /search/permits - Full-text search across permits","searchAddresses":"GET /search/addresses - Address autocomplete","searchApplicants":"GET /search/applicants - Search by applicant name or business","searchSuggest":"GET /search/suggest - Smart search suggestions","mapBounds":"GET /map/bounds - Get permits within map viewport (GeoJSON)","mapClusters":"GET /map/clusters - Get clustered permit data for map","mapNearby":"GET /map/nearby - Find permits near a location","analyticsTrends":"GET /analytics/trends - Time-based trends (daily/weekly/monthly)","analyticsDistribution":"GET /analytics/distribution - Distribution charts (pie/bar)","analyticsComparison":"GET /analytics/comparison - Compare metrics across categories","analyticsTopApplicants":"GET /analytics/top-applicants - Most active applicants","analyticsHeatmap":"GET /analytics/heatmap - Calendar heatmap data","permitDetailsFull":"GET /permits/:jobFilingNumber/full - Complete formatted permit details","permitDetailsRelated":"GET /permits/:jobFilingNumber/related - Find related permits","permitDetailsHistory":"GET /permits/:jobFilingNumber/history - Permit timeline history","propertyOwnersList":"GET /property-owners - List property owners with filters","propertyOwnerById":"GET /property-owners/:id - Get individual property owner","propertyOwnerUpdate":"PATCH /property-owners/:id - Update property owner contact info","permitApplicantsList":"GET /permit-applicants - List permit applicants with filters","permitApplicantById":"GET /permit-applicants/:id - Get individual permit applicant","permitApplicantUpdate":"PATCH /permit-applicants/:id - Update permit applicant contact info","enrichmentStatus":"GET /enrichment/status - Get enrichment service status and statistics","enrichOwner":"POST /enrichment/property-owners/:id - Enrich single property owner","enrichApplicant":"POST /enrichment/permit-applicants/:id - Enrich single permit applicant","enrichBatch":"POST /enrichment/batch - Trigger batch enrichment","etlTrigger":"POST /etl/run - Manually trigger ETL job"}}