{"openapi": "3.1.0", "info": {"title": "BuildingDue data API", "version": "1", "description": "Florida building recertification and milestone-inspection deadlines, filing verdicts and permits, from public records. Region-wide; your plan's categories and other firms' exclusive zips apply. Compiled from public records - a reason to call, not proof of a deadline."}, "servers": [{"url": "https://buildingdue.com/api/v1"}], "components": {"securitySchemes": {"bearer": {"type": "http", "scheme": "bearer", "description": "bd_... key from /portal/api"}}, "schemas": {"Lead": {"type": "object", "properties": {"uid": {"type": "string"}, "category": {"type": "string"}, "source_key": {"type": "string"}, "address": {"type": "string"}, "city": {"type": "string"}, "zipcode": {"type": "string"}, "folio": {"type": "string"}, "status": {"type": "string"}, "filing_status": {"type": "string"}, "filing_ref": {"type": "string"}, "description": {"type": "string"}, "owner_name": {"type": "string"}, "contractor_name": {"type": "string"}, "record_date": {"type": "string"}, "first_seen": {"type": "string"}, "last_changed": {"type": "string"}, "url": {"type": "string"}, "valuation": {"type": ["number", "null"], "description": "declared JOB value, never a property value"}, "lat": {"type": ["number", "null"]}, "lon": {"type": ["number", "null"]}, "contractor": {"type": "object", "properties": {"business_name": {"type": "string"}, "phone": {"type": "string"}, "email": {"type": "string"}, "address": {"type": "string"}, "licence": {"type": "string"}}}}}}}, "security": [{"bearer": []}], "paths": {"/leads": {"get": {"summary": "Leads first seen since a moment, newest first", "parameters": [{"name": "since", "in": "query", "schema": {"type": "string", "format": "date-time"}, "description": "poll with the newest first_seen you already hold"}, {"name": "category", "in": "query", "schema": {"type": "string"}, "description": "comma-separated: recertification, permit, reserve_study, violation"}, {"name": "zip", "in": "query", "schema": {"type": "string"}, "description": "comma-separated"}, {"name": "city", "in": "query", "schema": {"type": "string"}, "description": "comma-separated"}, {"name": "limit", "in": "query", "schema": {"type": "integer", "maximum": 1000, "default": 500}}, {"name": "format", "in": "query", "schema": {"type": "string", "enum": ["json", "csv", "xlsx"]}, "description": "json (default), or the same records as a CSV or Excel file"}], "responses": {"200": {"description": "leads", "content": {"application/json": {"schema": {"type": "object", "properties": {"count": {"type": "integer"}, "leads": {"type": "array", "items": {"$ref": "#/components/schemas/Lead"}}}}}}}, "401": {"description": "missing, unknown or revoked key"}, "403": {"description": "the account's plan does not include API access"}, "429": {"description": "over 120 calls a minute or 20,000 a day per key"}}}}, "/buildings": {"get": {"summary": "Every forecast and reserve-study building in one zip, with attributes", "parameters": [{"name": "zip", "in": "query", "required": true, "schema": {"type": "string", "pattern": "^[0-9]{5}$"}}, {"name": "format", "in": "query", "schema": {"type": "string", "enum": ["json", "csv", "xlsx"]}, "description": "json (default), or the same records as a CSV or Excel file"}], "responses": {"200": {"description": "buildings: year built, cycle year, storeys, units, roof, association and manager"}, "400": {"description": "bad zip"}, "401": {"description": "missing, unknown or revoked key"}, "403": {"description": "the account's plan does not include API access"}, "429": {"description": "over 120 calls a minute or 20,000 a day per key"}}}}, "/buildings/{folio}": {"get": {"summary": "One building: its attributes and every record on file", "parameters": [{"name": "folio", "in": "path", "required": true, "schema": {"type": "string"}}], "responses": {"200": {"description": "building and records"}, "404": {"description": "no records for that folio"}, "401": {"description": "missing, unknown or revoked key"}, "403": {"description": "the account's plan does not include API access"}, "429": {"description": "over 120 calls a minute or 20,000 a day per key"}}}}}}