{"openapi":"3.1.0","info":{"title":"NYC Property Facts API","version":"0.2.0","summary":"Free facts about every NYC property, from NYC Open Data.","description":"Read-only JSON API covering every New York City tax lot (BBL): owner of record, building, tax assessment, ACRIS deeds, DOB jobs/permits/violations, ECB and HPD violations, OATH tickets, HPD complaints (2019+) and 311 requests (last 12 months).\n\nNo API key. CORS is open. Per-IP rate limit (default 120 requests/minute; see X-RateLimit-* headers). Responses carry ETag / Last-Modified; send If-None-Match to get 304.\n\nEvery response has a plain-English `summary` and the canonical page `url`; every record has `status`, dates, a plain-English `description`, its `source` dataset id + link and `data_as_of`. Quote the summary and cite with `how_to_cite`.\n\nIndependent site. Data from NYC Open Data; not affiliated with the City of New York. Not a title search or official record.","contact":{"url":"https://nycpropertyfacts.com/developers"},"license":{"name":"Data: NYC Open Data terms of use","url":"https://opendata.cityofnewyork.us/overview/#termsofuse"}},"servers":[{"url":"https://nycpropertyfacts.com","description":"Production"}],"externalDocs":{"url":"https://nycpropertyfacts.com/developers"},"tags":[{"name":"property"},{"name":"sections"},{"name":"search"}],"paths":{"/api/v1/property":{"get":{"operationId":"lookup_property","tags":["property"],"summary":"Look up a property by address (forgiving)","description":"Resolves free text to a tax lot. Handles St/Street, 5th/Fifth, unit numbers (Apt 3B, #4), Queens hyphenated numbers (37-12 31st St), and optional borough / ZIP. Also accepts a BBL (\"3030090016\" or \"3-3009-16\") or BIN. Returns the best `match` with a 0-1 `confidence`, up to 4 `alternatives`, and the full `property` for the best match.","parameters":[{"name":"address","in":"query","required":true,"schema":{"type":"string"},"example":"98 Grattan St, Brooklyn, NY 11237"},{"name":"borough","in":"query","schema":{"type":"string","enum":["Manhattan","Bronx","Brooklyn","Queens","Staten Island"]}},{"name":"zip","in":"query","schema":{"type":"string","pattern":"^[0-9]{5}$"}}],"responses":{"200":{"description":"Best match + alternatives","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LookupResponse"},"example":{"query":"98 grattan st brooklyn","match":{"bbl":"3030090016","address":"98 Grattan Street, Brooklyn, NY 11237","confidence":0.97,"matched_on":"exact address (PLUTO)"},"alternatives":[],"url":"https://nycpropertyfacts.com/ny/brooklyn/98-grattan-street-3030090016","summary":"98 Grattan Street (Brooklyn, NY 11237; tax lot BBL 3030090016) is …","property":{"$comment":"see Property"}}}}},"400":{"description":"Error. The body explains what was wrong and how to fix the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"status":404,"code":"not_found","message":"No NYC tax lot with BBL 3999999999.","hint":"A BBL is 10 digits: borough (1-5) + block (5 digits) + lot (4 digits). Use /api/v1/property?address=... if you only have an address.","docs":"https://nycpropertyfacts.com/developers"}}}}},"404":{"description":"Error. The body explains what was wrong and how to fix the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"status":404,"code":"not_found","message":"No NYC tax lot with BBL 3999999999.","hint":"A BBL is 10 digits: borough (1-5) + block (5 digits) + lot (4 digits). Use /api/v1/property?address=... if you only have an address.","docs":"https://nycpropertyfacts.com/developers"}}}}},"429":{"description":"Rate limited. Wait Retry-After seconds.","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/property/{bbl}":{"get":{"operationId":"get_property","tags":["property"],"summary":"Property fact sheet by BBL","parameters":[{"name":"bbl","in":"path","required":true,"description":"10-digit Borough-Block-Lot number (borough 1=Manhattan 2=Bronx 3=Brooklyn 4=Queens 5=Staten Island).","schema":{"type":"string","pattern":"^[1-5][0-9]{9}$"},"example":"3030090016"}],"responses":{"200":{"description":"Property","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Property"}}}},"304":{"description":"Not modified (ETag matched)"},"400":{"description":"Error. The body explains what was wrong and how to fix the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"status":404,"code":"not_found","message":"No NYC tax lot with BBL 3999999999.","hint":"A BBL is 10 digits: borough (1-5) + block (5 digits) + lot (4 digits). Use /api/v1/property?address=... if you only have an address.","docs":"https://nycpropertyfacts.com/developers"}}}}},"404":{"description":"Error. The body explains what was wrong and how to fix the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"status":404,"code":"not_found","message":"No NYC tax lot with BBL 3999999999.","hint":"A BBL is 10 digits: borough (1-5) + block (5 digits) + lot (4 digits). Use /api/v1/property?address=... if you only have an address.","docs":"https://nycpropertyfacts.com/developers"}}}}},"429":{"description":"Rate limited. Wait Retry-After seconds.","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/property/bin/{bin}":{"get":{"operationId":"get_property_by_bin","tags":["property"],"summary":"Property fact sheet by BIN (DOB building number)","parameters":[{"name":"bin","in":"path","required":true,"schema":{"type":"string","pattern":"^[1-5][0-9]{6}$"},"example":"3071497"}],"responses":{"200":{"description":"Property (plus other_lots if the BIN maps to several lots)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Property"}}}},"400":{"description":"Error. The body explains what was wrong and how to fix the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"status":404,"code":"not_found","message":"No NYC tax lot with BBL 3999999999.","hint":"A BBL is 10 digits: borough (1-5) + block (5 digits) + lot (4 digits). Use /api/v1/property?address=... if you only have an address.","docs":"https://nycpropertyfacts.com/developers"}}}}},"404":{"description":"Error. The body explains what was wrong and how to fix the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"status":404,"code":"not_found","message":"No NYC tax lot with BBL 3999999999.","hint":"A BBL is 10 digits: borough (1-5) + block (5 digits) + lot (4 digits). Use /api/v1/property?address=... if you only have an address.","docs":"https://nycpropertyfacts.com/developers"}}}}},"429":{"description":"Rate limited. Wait Retry-After seconds.","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/property/{bbl}/permits":{"get":{"operationId":"get_permits","summary":"DOB job filings and work permits","description":"A DOB \"job\" is an application to do construction work. status \"open\" = a permit was issued but DOB has no record of final sign-off. Work permits are listed with type \"work_permit\" and their DOB permit status (they are not counted as open items). Filter with status / since / type; paginate with limit / offset (follow `next`).","tags":["sections"],"parameters":[{"name":"bbl","in":"path","required":true,"description":"10-digit Borough-Block-Lot number (borough 1=Manhattan 2=Bronx 3=Brooklyn 4=Queens 5=Staten Island).","schema":{"type":"string","pattern":"^[1-5][0-9]{9}$"},"example":"3030090016"},{"name":"status","in":"query","description":"Comma-separated statuses to keep, e.g. `open` or `open,pending`. Values used: open, closed, pending, n/a, recorded, current, current_registration, expired_registration, unknown.","schema":{"type":"string"},"example":"open"},{"name":"since","in":"query","description":"Only records whose main date is on or after this date (YYYY-MM-DD).","schema":{"type":"string","format":"date"},"example":"2024-01-01"},{"name":"type","in":"query","description":"Record type filter, e.g. dob_job, work_permit, dob_violation, ecb_violation, hpd_violation, hpd_complaint, 311_request, oath_ticket, deed.","schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":500,"default":50}},{"name":"offset","in":"query","schema":{"type":"integer","minimum":0,"default":0}}],"responses":{"200":{"description":"Records, newest first","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SectionResponse"}}}},"400":{"description":"Error. The body explains what was wrong and how to fix the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"status":404,"code":"not_found","message":"No NYC tax lot with BBL 3999999999.","hint":"A BBL is 10 digits: borough (1-5) + block (5 digits) + lot (4 digits). Use /api/v1/property?address=... if you only have an address.","docs":"https://nycpropertyfacts.com/developers"}}}}},"404":{"description":"Error. The body explains what was wrong and how to fix the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"status":404,"code":"not_found","message":"No NYC tax lot with BBL 3999999999.","hint":"A BBL is 10 digits: borough (1-5) + block (5 digits) + lot (4 digits). Use /api/v1/property?address=... if you only have an address.","docs":"https://nycpropertyfacts.com/developers"}}}}},"429":{"description":"Rate limited. Wait Retry-After seconds.","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/property/{bbl}/violations":{"get":{"operationId":"get_violations","summary":"DOB, ECB and HPD violations","description":"status \"open\" = DOB violation category is ACTIVE, ECB violation status is ACTIVE, or HPD violation status is Open. Filter with status / since / type; paginate with limit / offset (follow `next`).","tags":["sections"],"parameters":[{"name":"bbl","in":"path","required":true,"description":"10-digit Borough-Block-Lot number (borough 1=Manhattan 2=Bronx 3=Brooklyn 4=Queens 5=Staten Island).","schema":{"type":"string","pattern":"^[1-5][0-9]{9}$"},"example":"3030090016"},{"name":"status","in":"query","description":"Comma-separated statuses to keep, e.g. `open` or `open,pending`. Values used: open, closed, pending, n/a, recorded, current, current_registration, expired_registration, unknown.","schema":{"type":"string"},"example":"open"},{"name":"since","in":"query","description":"Only records whose main date is on or after this date (YYYY-MM-DD).","schema":{"type":"string","format":"date"},"example":"2024-01-01"},{"name":"type","in":"query","description":"Record type filter, e.g. dob_job, work_permit, dob_violation, ecb_violation, hpd_violation, hpd_complaint, 311_request, oath_ticket, deed.","schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":500,"default":50}},{"name":"offset","in":"query","schema":{"type":"integer","minimum":0,"default":0}}],"responses":{"200":{"description":"Records, newest first","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SectionResponse"}}}},"400":{"description":"Error. The body explains what was wrong and how to fix the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"status":404,"code":"not_found","message":"No NYC tax lot with BBL 3999999999.","hint":"A BBL is 10 digits: borough (1-5) + block (5 digits) + lot (4 digits). Use /api/v1/property?address=... if you only have an address.","docs":"https://nycpropertyfacts.com/developers"}}}}},"404":{"description":"Error. The body explains what was wrong and how to fix the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"status":404,"code":"not_found","message":"No NYC tax lot with BBL 3999999999.","hint":"A BBL is 10 digits: borough (1-5) + block (5 digits) + lot (4 digits). Use /api/v1/property?address=... if you only have an address.","docs":"https://nycpropertyfacts.com/developers"}}}}},"429":{"description":"Rate limited. Wait Retry-After seconds.","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/property/{bbl}/complaints":{"get":{"operationId":"get_complaints","summary":"HPD complaints (2019+) and 311 requests (last 12 months)","description":"Complaints are reports, not violations. status mirrors the published complaint / request status. Filter with status / since / type; paginate with limit / offset (follow `next`).","tags":["sections"],"parameters":[{"name":"bbl","in":"path","required":true,"description":"10-digit Borough-Block-Lot number (borough 1=Manhattan 2=Bronx 3=Brooklyn 4=Queens 5=Staten Island).","schema":{"type":"string","pattern":"^[1-5][0-9]{9}$"},"example":"3030090016"},{"name":"status","in":"query","description":"Comma-separated statuses to keep, e.g. `open` or `open,pending`. Values used: open, closed, pending, n/a, recorded, current, current_registration, expired_registration, unknown.","schema":{"type":"string"},"example":"open"},{"name":"since","in":"query","description":"Only records whose main date is on or after this date (YYYY-MM-DD).","schema":{"type":"string","format":"date"},"example":"2024-01-01"},{"name":"type","in":"query","description":"Record type filter, e.g. dob_job, work_permit, dob_violation, ecb_violation, hpd_violation, hpd_complaint, 311_request, oath_ticket, deed.","schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":500,"default":50}},{"name":"offset","in":"query","schema":{"type":"integer","minimum":0,"default":0}}],"responses":{"200":{"description":"Records, newest first","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SectionResponse"}}}},"400":{"description":"Error. The body explains what was wrong and how to fix the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"status":404,"code":"not_found","message":"No NYC tax lot with BBL 3999999999.","hint":"A BBL is 10 digits: borough (1-5) + block (5 digits) + lot (4 digits). Use /api/v1/property?address=... if you only have an address.","docs":"https://nycpropertyfacts.com/developers"}}}}},"404":{"description":"Error. The body explains what was wrong and how to fix the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"status":404,"code":"not_found","message":"No NYC tax lot with BBL 3999999999.","hint":"A BBL is 10 digits: borough (1-5) + block (5 digits) + lot (4 digits). Use /api/v1/property?address=... if you only have an address.","docs":"https://nycpropertyfacts.com/developers"}}}}},"429":{"description":"Rate limited. Wait Retry-After seconds.","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/property/{bbl}/hearings":{"get":{"operationId":"get_hearings","summary":"OATH hearings / tickets","description":"status \"open\" = balance due > $0 after a decision (cases awaiting a hearing are \"pending\"). default=true means the respondent did not appear. Filter with status / since / type; paginate with limit / offset (follow `next`).","tags":["sections"],"parameters":[{"name":"bbl","in":"path","required":true,"description":"10-digit Borough-Block-Lot number (borough 1=Manhattan 2=Bronx 3=Brooklyn 4=Queens 5=Staten Island).","schema":{"type":"string","pattern":"^[1-5][0-9]{9}$"},"example":"3030090016"},{"name":"status","in":"query","description":"Comma-separated statuses to keep, e.g. `open` or `open,pending`. Values used: open, closed, pending, n/a, recorded, current, current_registration, expired_registration, unknown.","schema":{"type":"string"},"example":"open"},{"name":"since","in":"query","description":"Only records whose main date is on or after this date (YYYY-MM-DD).","schema":{"type":"string","format":"date"},"example":"2024-01-01"},{"name":"type","in":"query","description":"Record type filter, e.g. dob_job, work_permit, dob_violation, ecb_violation, hpd_violation, hpd_complaint, 311_request, oath_ticket, deed.","schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":500,"default":50}},{"name":"offset","in":"query","schema":{"type":"integer","minimum":0,"default":0}}],"responses":{"200":{"description":"Records, newest first","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SectionResponse"}}}},"400":{"description":"Error. The body explains what was wrong and how to fix the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"status":404,"code":"not_found","message":"No NYC tax lot with BBL 3999999999.","hint":"A BBL is 10 digits: borough (1-5) + block (5 digits) + lot (4 digits). Use /api/v1/property?address=... if you only have an address.","docs":"https://nycpropertyfacts.com/developers"}}}}},"404":{"description":"Error. The body explains what was wrong and how to fix the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"status":404,"code":"not_found","message":"No NYC tax lot with BBL 3999999999.","hint":"A BBL is 10 digits: borough (1-5) + block (5 digits) + lot (4 digits). Use /api/v1/property?address=... if you only have an address.","docs":"https://nycpropertyfacts.com/developers"}}}}},"429":{"description":"Rate limited. Wait Retry-After seconds.","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/property/{bbl}/sales":{"get":{"operationId":"get_sales","summary":"ACRIS deeds","description":"Deeds recorded with the City Register. amount 0 usually means a non-market transfer. lots_in_deed > 1 means the price covers several lots. Filter with status / since / type; paginate with limit / offset (follow `next`).","tags":["sections"],"parameters":[{"name":"bbl","in":"path","required":true,"description":"10-digit Borough-Block-Lot number (borough 1=Manhattan 2=Bronx 3=Brooklyn 4=Queens 5=Staten Island).","schema":{"type":"string","pattern":"^[1-5][0-9]{9}$"},"example":"3030090016"},{"name":"status","in":"query","description":"Comma-separated statuses to keep, e.g. `open` or `open,pending`. Values used: open, closed, pending, n/a, recorded, current, current_registration, expired_registration, unknown.","schema":{"type":"string"},"example":"open"},{"name":"since","in":"query","description":"Only records whose main date is on or after this date (YYYY-MM-DD).","schema":{"type":"string","format":"date"},"example":"2024-01-01"},{"name":"type","in":"query","description":"Record type filter, e.g. dob_job, work_permit, dob_violation, ecb_violation, hpd_violation, hpd_complaint, 311_request, oath_ticket, deed.","schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":500,"default":50}},{"name":"offset","in":"query","schema":{"type":"integer","minimum":0,"default":0}}],"responses":{"200":{"description":"Records, newest first","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SectionResponse"}}}},"400":{"description":"Error. The body explains what was wrong and how to fix the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"status":404,"code":"not_found","message":"No NYC tax lot with BBL 3999999999.","hint":"A BBL is 10 digits: borough (1-5) + block (5 digits) + lot (4 digits). Use /api/v1/property?address=... if you only have an address.","docs":"https://nycpropertyfacts.com/developers"}}}}},"404":{"description":"Error. The body explains what was wrong and how to fix the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"status":404,"code":"not_found","message":"No NYC tax lot with BBL 3999999999.","hint":"A BBL is 10 digits: borough (1-5) + block (5 digits) + lot (4 digits). Use /api/v1/property?address=... if you only have an address.","docs":"https://nycpropertyfacts.com/developers"}}}}},"429":{"description":"Rate limited. Wait Retry-After seconds.","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/property/{bbl}/owners":{"get":{"operationId":"get_owners","summary":"Owner of record, deed grantees and HPD registration contacts","description":"Owner of record comes from city tax records (PLUTO) and can lag behind recent sales. Filter with status / since / type; paginate with limit / offset (follow `next`).","tags":["sections"],"parameters":[{"name":"bbl","in":"path","required":true,"description":"10-digit Borough-Block-Lot number (borough 1=Manhattan 2=Bronx 3=Brooklyn 4=Queens 5=Staten Island).","schema":{"type":"string","pattern":"^[1-5][0-9]{9}$"},"example":"3030090016"},{"name":"status","in":"query","description":"Comma-separated statuses to keep, e.g. `open` or `open,pending`. Values used: open, closed, pending, n/a, recorded, current, current_registration, expired_registration, unknown.","schema":{"type":"string"},"example":"open"},{"name":"since","in":"query","description":"Only records whose main date is on or after this date (YYYY-MM-DD).","schema":{"type":"string","format":"date"},"example":"2024-01-01"},{"name":"type","in":"query","description":"Record type filter, e.g. dob_job, work_permit, dob_violation, ecb_violation, hpd_violation, hpd_complaint, 311_request, oath_ticket, deed.","schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":500,"default":50}},{"name":"offset","in":"query","schema":{"type":"integer","minimum":0,"default":0}}],"responses":{"200":{"description":"Records, newest first","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SectionResponse"}}}},"400":{"description":"Error. The body explains what was wrong and how to fix the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"status":404,"code":"not_found","message":"No NYC tax lot with BBL 3999999999.","hint":"A BBL is 10 digits: borough (1-5) + block (5 digits) + lot (4 digits). Use /api/v1/property?address=... if you only have an address.","docs":"https://nycpropertyfacts.com/developers"}}}}},"404":{"description":"Error. The body explains what was wrong and how to fix the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"status":404,"code":"not_found","message":"No NYC tax lot with BBL 3999999999.","hint":"A BBL is 10 digits: borough (1-5) + block (5 digits) + lot (4 digits). Use /api/v1/property?address=... if you only have an address.","docs":"https://nycpropertyfacts.com/developers"}}}}},"429":{"description":"Rate limited. Wait Retry-After seconds.","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/search":{"get":{"operationId":"search_properties","tags":["search"],"summary":"List properties on a street and/or in a ZIP","parameters":[{"name":"street","in":"query","schema":{"type":"string"},"example":"Grattan St"},{"name":"zip","in":"query","schema":{"type":"string"},"example":"11237"},{"name":"borough","in":"query","schema":{"type":"string"}},{"name":"house_number","in":"query","schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":200,"default":25}},{"name":"offset","in":"query","schema":{"type":"integer","minimum":0,"default":0}}],"responses":{"200":{"description":"Matching lots","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Error. The body explains what was wrong and how to fix the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"status":404,"code":"not_found","message":"No NYC tax lot with BBL 3999999999.","hint":"A BBL is 10 digits: borough (1-5) + block (5 digits) + lot (4 digits). Use /api/v1/property?address=... if you only have an address.","docs":"https://nycpropertyfacts.com/developers"}}}}},"429":{"description":"Rate limited. Wait Retry-After seconds.","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"object","properties":{"status":{"type":"integer"},"code":{"type":"string"},"message":{"type":"string"},"hint":{"type":"string"},"docs":{"type":"string","format":"uri"}}}}},"Source":{"type":"object","properties":{"dataset_id":{"type":"string","example":"wvxf-dwi5"},"dataset":{"type":"string"},"url":{"type":"string","format":"uri"},"dataset_updated":{"type":["string","null"],"format":"date","description":"When the city last updated the dataset"}}},"Record":{"type":"object","required":["id","type","status","description","source","data_as_of"],"properties":{"id":{"type":"string"},"type":{"type":"string"},"status":{"type":"string"},"status_detail":{"type":["string","null"],"description":"Status text as published by the agency"},"date":{"type":["string","null"],"format":"date"},"dates":{"type":"object","additionalProperties":{"type":["string","null"],"format":"date"}},"description":{"type":"string","description":"Plain-English description"},"source":{"$ref":"#/components/schemas/Source"},"data_as_of":{"type":["string","null"],"format":"date","description":"When we last synced this dataset"}},"additionalProperties":true},"SectionResponse":{"type":"object","properties":{"bbl":{"type":"string"},"address":{"type":"string"},"url":{"type":"string"},"section":{"type":"string"},"summary":{"type":"string"},"how_to_cite":{"type":"string"},"data_as_of":{"type":"string"},"total":{"type":"integer"},"count":{"type":"integer"},"limit":{"type":"integer"},"offset":{"type":"integer"},"next":{"type":["string","null"]},"records":{"type":"array","items":{"$ref":"#/components/schemas/Record"}}}},"Property":{"type":"object","properties":{"bbl":{"type":"string"},"bins":{"type":"array","items":{"type":"string"}},"address":{"type":"string"},"borough":{"type":"string"},"zip":{"type":["string","null"]},"url":{"type":"string","description":"Canonical human-readable page"},"markdown_url":{"type":"string"},"summary":{"type":"string","description":"2-4 sentence dated plain-English summary, safe to quote"},"how_to_cite":{"type":"string"},"data_as_of":{"type":"string","format":"date"},"last_updated":{"type":"string","format":"date"},"open_items":{"type":"object"},"facts":{"type":"object"},"assessment":{"type":["object","null"]},"last_priced_deed":{"type":["object","null"]},"record_counts":{"type":"object"},"sections":{"type":"object"},"sources":{"type":"array","items":{"$ref":"#/components/schemas/Source"}},"disclaimer":{"type":"string"}}},"LookupResponse":{"type":"object","properties":{"query":{"type":"string"},"match":{"type":"object","properties":{"bbl":{"type":"string"},"address":{"type":"string"},"confidence":{"type":"number","minimum":0,"maximum":1},"matched_on":{"type":"string"}}},"alternatives":{"type":"array","items":{"type":"object"}},"url":{"type":"string"},"summary":{"type":"string"},"property":{"$ref":"#/components/schemas/Property"}}}}}}