Skip to content
Eden Engine

New York K-12 School Search by County and Name

nyitsgis/school-search

Searches the New York State K-12 school layer (public, private, charter, BOCES and other schools with school-aged students) by county and part of the school's legal name. Returns up to 100 schools per page with the SED code, legal and popular name, street address, city, ZIP, county, institution type and sub-type. Says when more rows remain. NYS ITS Geospatial Services data from the NYS Education Department, 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/school-search" })

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

// 4. run: price the exact call first, then run it
omnial_execute({ tool: "nyitsgis/school-search", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "nyitsgis/school-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"
  ],
  "properties": {
    "name": {
      "type": "string",
      "pattern": "^[A-Za-z0-9 .,-]{2,60}$",
      "description": "Part of the school's legal name, for example HIGH or ACADEMY. Letters, digits, spaces, periods, commas and hyphens only; case does not matter."
    },
    "limit": {
      "type": "integer",
      "default": 25,
      "maximum": 100,
      "minimum": 1,
      "description": "Most rows to return in one call, 1 to 100. Defaults to 25."
    },
    "county": {
      "type": "string",
      "pattern": "^[A-Za-z0-9 .,-]{3,30}$",
      "description": "New York county name, for example Albany or Kings. Letters, spaces, periods, commas and hyphens only; case does not matter."
    },
    "offset": {
      "type": "integer",
      "maximum": 100000,
      "minimum": 0,
      "description": "Number of matching rows to skip, for the next page. Leave out for the first page."
    }
  },
  "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": {
              "PHYSCITY": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "City."
              },
              "SED_CODE": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "State Education Department code."
              },
              "INSTIT_ID": {
                "type": [
                  "number",
                  "null"
                ],
                "description": "Institution id."
              },
              "LEGAL_NAME": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Legal name."
              },
              "PHYSZIPCD5": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "ZIP code."
              },
              "COUNTY_DESC": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "County name."
              },
              "POPULAR_NAME": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Popular name."
              },
              "PHYSADDRLINE1": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Street address."
              },
              "INSTSUBTYPDESC": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Institution sub-type."
              },
              "INST_TYPE_DESC": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Institution type, for example PUBLIC SCHOOLS."
              }
            },
            "additionalProperties": true
          }
        },
        "additionalProperties": true
      },
      "description": "Matching schools. Empty when nothing matches."
    },
    "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
}