Skip to content
Eden Engine

New York Tax Parcel Search by County and Address

nyitsgis/parcel-search

Searches New York State tax parcels by county and part of the parcel address, from the NYS ITS Geospatial Services parcel layer. Returns up to 100 parcels per page with municipality, address, print key, SBL, property class, assessed and full market values, year built, acres, living area, bedrooms, baths, roll year, school district and primary owner from the assessment roll. Only counties that gave permission to share parcel data are covered, so a county with no coverage returns no rows. Says when more rows remain. NYS ITS Geospatial Services data, passed through unmodified and served by Omnial; not an official New York State product.

activeper callv1

Price

$0.0026 per call

You pay the price shown. If a call turns out to cost more than its quote, you pay the actual price, capped at twice the quote. No monthly minimum. Top-ups start at $0.50.

Data source

New York State ITS Geospatial Services

Data from the New York State Office of Information Technology Services (ITS) Geospatial Services; parcel assessment data from the NYS Department of Taxation and Finance and contributing counties, school data from the NYS Education Department. Passed through unmodified and served by Omnial; not an official New York State product.

Use it

Five steps: search, inspect, learn, run, settle. No per-tool setup; your agent reaches this tool through the meta-tools it already has.

Connect once and your AI can find and run this tool, and any other it needs.

agent
// 1. search: find the tool
omnial_search({ query: "what you need" })

// 2. inspect: price and input schema
omnial_inspect({ tool: "nyitsgis/parcel-search" })

// 3. learn: read the usage guide at runtime
omnial_learn({ tool: "nyitsgis/parcel-search" })

// 4. run: price the exact call first, then run it
omnial_execute({ tool: "nyitsgis/parcel-search", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "nyitsgis/parcel-search", input: { /* ... */ } })

// 5. settle: the call is charged when it finishes, nothing to do

Not connected yet? Point your MCP client at https://mcp.eden-engine.com/mcp, then copy a config for your client.

Pricing

Every charge this tool can incur.

ChargePrice
Per call
$0.0026
Updated
Oct 21, 2026

Input and output schemas

Input schema
input_schema.json
{
  "type": "object",
  "required": [
    "county_name",
    "address"
  ],
  "properties": {
    "limit": {
      "type": "integer",
      "default": 25,
      "maximum": 100,
      "minimum": 1,
      "description": "Most rows to return in one call, 1 to 100. Defaults to 25."
    },
    "offset": {
      "type": "integer",
      "maximum": 100000,
      "minimum": 0,
      "description": "Number of matching rows to skip, for the next page. Leave out for the first page."
    },
    "address": {
      "type": "string",
      "pattern": "^[A-Za-z0-9 .,-]{2,60}$",
      "description": "Part of the parcel address to match, for example State St or 719 State. Letters, digits, spaces, periods, commas and hyphens only; case does not matter."
    },
    "county_name": {
      "type": "string",
      "pattern": "^[A-Za-z0-9 .,-]{3,30}$",
      "description": "New York county name as the roll writes it, for example Albany or Erie; two-word names have no space (NewYork, StLawrence). Letters only; case does not matter."
    }
  },
  "additionalProperties": false
}
Output schema
output_schema.json
{
  "type": "object",
  "required": [
    "features"
  ],
  "properties": {
    "fields": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      },
      "description": "Field definitions (name, type, alias) for the attributes below."
    },
    "features": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "attributes": {
            "type": "object",
            "properties": {
              "SBL": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Section-block-lot number."
              },
              "ACRES": {
                "type": [
                  "number",
                  "null"
                ],
                "description": "Acres from the assessment roll."
              },
              "YR_BLT": {
                "type": [
                  "integer",
                  "null"
                ],
                "description": "Year built."
              },
              "LAND_AV": {
                "type": [
                  "number",
                  "null"
                ],
                "description": "Land assessed value, dollars."
              },
              "ROLL_YR": {
                "type": [
                  "integer",
                  "null"
                ],
                "description": "Assessment roll year."
              },
              "TOTAL_AV": {
                "type": [
                  "number",
                  "null"
                ],
                "description": "Total assessed value, dollars."
              },
              "MUNI_NAME": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Municipality name."
              },
              "PRINT_KEY": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Print key, the parcel identifier within a municipality."
              },
              "PROP_CLASS": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Property class code."
              },
              "COUNTY_NAME": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "County name."
              },
              "PARCEL_ADDR": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Parcel (site) address."
              },
              "SCHOOL_NAME": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "School district name."
              },
              "SQFT_LIVING": {
                "type": [
                  "number",
                  "null"
                ],
                "description": "Living area, square feet."
              },
              "NBR_BEDROOMS": {
                "type": [
                  "integer",
                  "null"
                ],
                "description": "Number of bedrooms."
              },
              "USED_AS_DESC": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Description of how the parcel is used."
              },
              "PRIMARY_OWNER": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Primary owner name from the roll."
              },
              "NBR_FULL_BATHS": {
                "type": [
                  "integer",
                  "null"
                ],
                "description": "Number of full bathrooms."
              },
              "FULL_MARKET_VAL": {
                "type": [
                  "number",
                  "null"
                ],
                "description": "Full market value, dollars."
              }
            },
            "additionalProperties": true
          }
        },
        "additionalProperties": true
      },
      "description": "Matching parcels. Empty when nothing matches or the county is not covered."
    },
    "fieldAliases": {
      "type": "object",
      "additionalProperties": true
    },
    "displayFieldName": {
      "type": "string"
    },
    "exceededTransferLimit": {
      "type": "boolean",
      "description": "True when more rows matched than were returned; fetch the next page with offset."
    }
  },
  "description": "The ArcGIS query response: `features` holds one record per match under `attributes`; `exceededTransferLimit` is true when more rows matched than were returned.",
  "additionalProperties": true
}