Skip to content
Eden Engine

UK Public Transport Stops by Area: NaPTAN Stop Counts and Localities (DfT)

dftnaptan/area-stop-summary

Summarises the Department for Transport's NaPTAN register of public transport stops for one ATCO area code (the first three digits of a stop code, for example 490 for London or 920 for airports): the total and active stop counts, the count of each stop type (bus, rail, tram, ferry, airport), the 25 localities with the most stops and the first 50 stops in code order with name, street, locality and coordinates. It cannot search by stop name or place. An unknown area code is an error. Open Government Licence v3.0 data, served by Eden Engine; not an official Department for Transport 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

Department for Transport (NaPTAN)

Contains public sector information licensed under the Open Government Licence v3.0. Source: Department for Transport, National Public Transport Access Nodes (NaPTAN). Served by Eden Engine; not an official Department for Transport 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: "dftnaptan/area-stop-summary" })

// 3. learn: read the usage guide at runtime
omnial_learn({ tool: "dftnaptan/area-stop-summary" })

// 4. run: price the exact call first, then run it
omnial_execute({ tool: "dftnaptan/area-stop-summary", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "dftnaptan/area-stop-summary", 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": [
    "atco_area_code"
  ],
  "properties": {
    "atco_area_code": {
      "type": "string",
      "pattern": "^[0-9]{3}$",
      "description": "A three-digit ATCO area code: the first three characters of the stop codes in that area, for example 490 (London), 910 (rail stations), 940 (tram and metro) or 920 (airports). Keep leading zeros."
    }
  },
  "additionalProperties": false
}
Output schema
output_schema.json
{
  "type": "object",
  "required": [
    "stop_count",
    "by_stop_type",
    "top_localities",
    "sample_stops"
  ],
  "properties": {
    "stop_count": {
      "type": "integer",
      "description": "Stops in the area, active or not."
    },
    "by_stop_type": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "count": {
            "type": "integer"
          },
          "stop_type": {
            "type": "string"
          }
        }
      },
      "description": "Stop counts by NaPTAN StopType code, largest first (BCT bus or coach stop on street, RSE rail entrance, TMU metro or tram entrance, GAT airport entrance, FTD ferry terminal entrance)."
    },
    "sample_stops": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          },
          "street": {
            "type": "string"
          },
          "bearing": {
            "type": "string"
          },
          "latitude": {
            "type": [
              "number",
              "null"
            ]
          },
          "modified": {
            "type": "string"
          },
          "atco_code": {
            "type": "string"
          },
          "indicator": {
            "type": "string"
          },
          "longitude": {
            "type": [
              "number",
              "null"
            ]
          },
          "stop_type": {
            "type": "string"
          },
          "common_name": {
            "type": "string"
          },
          "naptan_code": {
            "type": "string"
          },
          "bus_stop_type": {
            "type": "string"
          },
          "locality_code": {
            "type": "string"
          },
          "locality_name": {
            "type": "string"
          }
        }
      },
      "description": "The first 50 stops sorted by ATCO code. Empty when the area has no stops."
    },
    "locality_count": {
      "type": "integer",
      "description": "Distinct localities in the area."
    },
    "top_localities": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "stops": {
            "type": "integer"
          },
          "locality_code": {
            "type": "string"
          },
          "locality_name": {
            "type": "string"
          },
          "parent_locality_name": {
            "type": "string"
          }
        }
      },
      "description": "Up to 25 NPTG localities with the most stops, largest first."
    },
    "sample_truncated": {
      "type": "boolean",
      "description": "True when the area holds more stops than sample_stops lists."
    },
    "active_stop_count": {
      "type": "integer",
      "description": "Stops whose Status is active."
    },
    "administrative_area_codes": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "The administrative area codes found on the stops (not the same as the ATCO area code)."
    }
  },
  "additionalProperties": true
}