How to Look Up Any Tax Assessment Record in New York State by Coordinate
I was studying the various data services available and discovered a handy little website put out by the state for public use to find out tax assessment records for all counties in New York State.
Required Fields:
Y = Latitude
X = Longitude
SpatialReference = 4326 if you want to use latitude and longitude
Kind of a handy endpoint, for your use. It returns a json string. You can also automate the process by using a GET or POST request. For example to pull the tax record for a point at Cole Hill State Forest and get the data back as a JSON text string.
https://gisservices.its.ny.gov/arcgis/rest/services/NYSTaxAssessmentLookup/GPServer/TaxAssessment/execute?X=-74.10192&Y=42.59518&SpatialReference=4326&env%3AoutSR=&env%3AprocessSR=&returnZ=false&returnM=false&returnTrueCurves=false&returnFeatureCollection=false&context=&f=json
Here is what that URL will output it when you request it.
{"results":[{"paramName":"OBJECTID","dataType":"GPString","value":"30986"}, {"paramName":"COUNTY_NAME","dataType":"GPString","value":"Albany"}, {"paramName":"MUNI_NAME","dataType":"GPString","value":"Berne"}, {"paramName":"SWIS","dataType":"GPString","value":"012000"}, {"paramName":"PARCEL_ADDR","dataType":"GPString","value":"Willsie Rd"}, {"paramName":"PRINT_KEY","dataType":"GPString","value":"90.-1-14"}, {"paramName":"SBL","dataType":"GPString","value":"09000000010140000000"}, {"paramName":"CITYTOWN_NAME","dataType":"GPString","value":"Berne"}, {"paramName":"CITYTOWN_SWIS","dataType":"GPString","value":"012000"}, {"paramName":"LOC_ST_NBR","dataType":"GPString","value":"Null"}, {"paramName":"LOC_STREET","dataType":"GPString","value":"Willsie Rd"}, {"paramName":"LOC_UNIT","dataType":"GPString","value":"Null"}, {"paramName":"LOC_ZIP","dataType":"GPString","value":"Null"}, {"paramName":"PROP_CLASS","dataType":"GPString","value":"941"}, {"paramName":"ROLL_SECTION","dataType":"GPString","value":"3"}, {"paramName":"LAND_AV","dataType":"GPString","value":"579885"}, {"paramName":"TOTAL_AV","dataType":"GPString","value":"579885"}, {"paramName":"FULL_MARKET_VAL","dataType":"GPString","value":"982856"}, {"paramName":"YR_BLT","dataType":"GPString","value":"Null"}, {"paramName":"FRONT","dataType":"GPString","value":"0"}, {"paramName":"DEPTH","dataType":"GPString","value":"0"}, {"paramName":"SQ_FT","dataType":"GPString","value":"0"}, {"paramName":"ACRES","dataType":"GPString","value":"506.28"}, {"paramName":"SCHOOL_CODE","dataType":"GPString","value":"012001"}, {"paramName":"SCHOOL_NAME","dataType":"GPString","value":"Berne-Knox-Westerlo"}, {"paramName":"SEWER_TYPE","dataType":"GPString","value":"1"}, {"paramName":"SEWER_DESC","dataType":"GPString","value":"None"}, {"paramName":"WATER_SUPP","dataType":"GPString","value":"1"}, {"paramName":"WATER_DESC","dataType":"GPString","value":"None"}, {"paramName":"UTILITIES","dataType":"GPString","value":"3"}, {"paramName":"UTILITIES_DESC","dataType":"GPString","value":"Electric"}, {"paramName":"BLDG_STYLE","dataType":"GPString","value":"Null"}, {"paramName":"BLDG_STYLE_DESC","dataType":"GPString","value":"Null"}, {"paramName":"HEAT_TYPE","dataType":"GPString","value":"Null"}, {"paramName":"HEAT_TYPE_DESC","dataType":"GPString","value":"Null"}, {"paramName":"FUEL_TYPE","dataType":"GPString","value":"Null"}, {"paramName":"FUEL_TYPE_DESC","dataType":"GPString","value":"Null"}, {"paramName":"SQFT_LIVING","dataType":"GPString","value":"Null"}, {"paramName":"NBR_KITCHENS","dataType":"GPString","value":"Null"}, {"paramName":"NBR_FULL_BATHS","dataType":"GPString","value":"Null"}, {"paramName":"NBR_BEDROOMS","dataType":"GPString","value":"Null"}, {"paramName":"USED_AS_CODE","dataType":"GPString","value":"Null"}, {"paramName":"USED_AS_DESC","dataType":"GPString","value":"Null"}, {"paramName":"AG_DIST_CODE","dataType":"GPString","value":"Null"}, {"paramName":"AG_DIST_NAME","dataType":"GPString","value":"Null"}, {"paramName":"PRIMARY_OWNER","dataType":"GPString","value":"NYS Reforestation Land"}, {"paramName":"MAIL_ADDR","dataType":"GPString","value":"112 State St Rm 810"}, {"paramName":"PO_BOX","dataType":"GPString","value":"Null"}, {"paramName":"MAIL_CITY","dataType":"GPString","value":"Albany"}, {"paramName":"MAIL_STATE","dataType":"GPString","value":"NY"}, {"paramName":"MAIL_ZIP","dataType":"GPString","value":"12207"}, {"paramName":"ADD_OWNER","dataType":"GPString","value":"Null"}, {"paramName":"ADD_MAIL_ADDR","dataType":"GPString","value":""}, {"paramName":"ADD_MAIL_PO_BOX","dataType":"GPString","value":"Null"}, {"paramName":"ADD_MAIL_CITY","dataType":"GPString","value":"Null"}, {"paramName":"ADD_MAIL_STATE","dataType":"GPString","value":"Null"}, {"paramName":"ADD_MAIL_ZIP","dataType":"GPString","value":"Null"}, {"paramName":"BOOK","dataType":"GPString","value":"Null"}, {"paramName":"PAGE","dataType":"GPString","value":"Null"}, {"paramName":"GRID_EAST","dataType":"GPString","value":"561180"}, {"paramName":"GRID_NORTH","dataType":"GPString","value":"945822"}, {"paramName":"MUNI_PARCEL_ID","dataType":"GPString","value":"0120001026"}, {"paramName":"SWIS_SBL_ID","dataType":"GPString","value":"01200009000000010140000000"}, {"paramName":"SWIS_PRINT_KEY_ID","dataType":"GPString","value":"01200090.-1-14"}, {"paramName":"ROLL_YR","dataType":"GPString","value":"2019"}, {"paramName":"SPATIAL_YR","dataType":"GPString","value":"2019"}, {"paramName":"OWNER_TYPE","dataType":"GPString","value":"2"}, {"paramName":"NYS_NAME","dataType":"GPString","value":"New York State- DEC"}, {"paramName":"NYS_NAME_SOURCE","dataType":"GPString","value":"1-2-SA-a"}, {"paramName":"DUP_GEO","dataType":"GPString","value":"Null"}, {"paramName":"CALC_ACRES","dataType":"GPString","value":"498.300342"}, {"paramName":"ServiceMessage","dataType":"GPString","value":"Match found for entered X:-74.10192 & Y:42.59518."}],"messages":[]}
I found this handy enough, I wrote short PHP script that I can execute as needed to pull up property data and output it into a CSV spreadsheet format for bringing up in OpenOffice Calc. If you enter more then two words, it searches by address, otherwise it uses the first and second parameters as coordinates.
if ($argc > 2) { $address = ""; for ($i = 1; $i <= $argc; $i++) $address .= "$argv[$i] "; $address = urlencode($address); $json = file_get_contents("https://gisservices.its.ny.gov/arcgis/rest/services/Locators/Street_and_Address_Composite/GeocodeServer/findAddressCandidates?Street=&City=&State=&ZIP=&SingleLine={$address}&outFields=&maxLocations=1&matchOutOfRange=true&langCode=&locationType=&sourceCountry=&category=&location=&distance=&searchExtent=&outSR=4326&magicKey=&f=pjson"); $coord = json_decode($json); $lat = $coord->candidates[0]->location->y; $lng = $coord->candidates[0]->location->x; } else { $lat = $argv[1]; $lng = $argv[2]; } if ($lng > 0) $lng *= -1; $json = file_get_contents("https://gisservices.its.ny.gov/arcgis/rest/services/NYSTaxAssessmentLookup/GPServer/TaxAssessment/execute?X={$lng}&Y={$lat}&SpatialReference=4326&env%3AoutSR=&env%3AprocessSR=&returnZ=false&returnM=false&returnTrueCurves=false&returnFeatureCollection=false&context=&f=json"); $prop = json_decode($json); foreach ($prop->results as $line) { echo '"'.addslashes($line->paramName).'","'.addslashes($line->value).""n"; }
With this script, you can load a nice version of tax record in your favorite spreadsheet.
OBJECTID | 30986 |
COUNTY_NAME | Albany |
MUNI_NAME | Berne |
SWIS | 12000 |
PARCEL_ADDR | Willsie Rd |
PRINT_KEY | 90.-1-14 |
SBL | 9.00000001014E+018 |
CITYTOWN_NAME | Berne |
CITYTOWN_SWIS | 12000 |
LOC_ST_NBR | Null |
LOC_STREET | Willsie Rd |
LOC_UNIT | Null |
LOC_ZIP | Null |
PROP_CLASS | 941 |
ROLL_SECTION | 3 |
LAND_AV | 579885 |
TOTAL_AV | 579885 |
FULL_MARKET_VAL | 982856 |
YR_BLT | Null |
FRONT | 0 |
DEPTH | 0 |
SQ_FT | 0 |
ACRES | 506.28 |
SCHOOL_CODE | 12001 |
SCHOOL_NAME | Berne-Knox-Westerlo |
SEWER_TYPE | 1 |
SEWER_DESC | None |
WATER_SUPP | 1 |
WATER_DESC | None |
UTILITIES | 3 |
UTILITIES_DESC | Electric |
BLDG_STYLE | Null |
BLDG_STYLE_DESC | Null |
HEAT_TYPE | Null |
HEAT_TYPE_DESC | Null |
FUEL_TYPE | Null |
FUEL_TYPE_DESC | Null |
SQFT_LIVING | Null |
NBR_KITCHENS | Null |
NBR_FULL_BATHS | Null |
NBR_BEDROOMS | Null |
USED_AS_CODE | Null |
USED_AS_DESC | Null |
AG_DIST_CODE | Null |
AG_DIST_NAME | Null |
PRIMARY_OWNER | NYS Reforestation Land |
MAIL_ADDR | 112 State St Rm 810 |
PO_BOX | Null |
MAIL_CITY | Albany |
MAIL_STATE | NY |
MAIL_ZIP | 12207 |
ADD_OWNER | Null |
ADD_MAIL_ADDR | |
ADD_MAIL_PO_BOX | Null |
ADD_MAIL_CITY | Null |
ADD_MAIL_STATE | Null |
ADD_MAIL_ZIP | Null |
BOOK | Null |
PAGE | Null |
GRID_EAST | 561180 |
GRID_NORTH | 945822 |
MUNI_PARCEL_ID | 120001026 |
SWIS_SBL_ID | 1.20000900000001E+024 |
SWIS_PRINT_KEY_ID | 01200090.-1-14 |
ROLL_YR | 2019 |
SPATIAL_YR | 2019 |
OWNER_TYPE | 2 |
NYS_NAME | New York State- DEC |
NYS_NAME_SOURCE | 1-2-SA-a |
DUP_GEO | Null |
CALC_ACRES | 498.300342 |
ServiceMessage | Match found for entered X:-74.08836 & Y:42.59480. |