Open Data Hub Latest Mobility Measurements (South Tyrol)
opendatahubmobility/latest-measurements
Returns the latest measurement of each station and data type for one station type from the Open Data Hub of South Tyrol (Alto Adige, Italy): for example parking occupancy, charging plug status, bike counts or weather readings. Each record has the value, its unit, the time it is valid for, and the station's code, name, coordinates and metadata. Choose one data type or all, filter with where, page with limit and offset (up to 25). Check mvalidtime: some sensors have stopped reporting. Open Data Hub data as served by Eden Engine, not an official Open Data Hub product.
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
Open Data Hub South Tyrol (Mobility)
Mobility and sensor data from the Open Data Hub of South Tyrol (opendatahub.com), operated by NOI Techpark, published as open data (most records CC0, public domain dedication). No attribution is required; we credit the Open Data Hub as a courtesy. Served by Eden Engine; not an official Open Data Hub 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.
// 1. search: find the tool
omnial_search({ query: "what you need" })
// 2. inspect: price and input schema
omnial_inspect({ tool: "opendatahubmobility/latest-measurements" })
// 3. learn: read the usage guide at runtime
omnial_learn({ tool: "opendatahubmobility/latest-measurements" })
// 4. run: price the exact call first, then run it
omnial_execute({ tool: "opendatahubmobility/latest-measurements", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "opendatahubmobility/latest-measurements", input: { /* ... */ } })
// 5. settle: the call is charged when it finishes, nothing to doNot 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.
| Charge | Price |
|---|---|
Per call | $0.0026 |
- Updated
- Oct 21, 2026
Input and output schemas
Input schema
{
"type": "object",
"required": [
"station_type"
],
"properties": {
"limit": {
"type": "integer",
"default": 10,
"maximum": 25,
"minimum": 1,
"description": "How many records to return, 1 to 25. Defaults to 10."
},
"where": {
"type": "string",
"maxLength": 300,
"description": "Optional filter in the Open Data Hub syntax `column.operator.value`, combined with `and(...)` or `or(...)`, for example 'sactive.eq.true' or 'scode.eq.113'. Operators: eq, neq, lt, gt, lteq, gteq, re, ire, nre, nire, in, nin. Leave out for no filter."
},
"offset": {
"type": "integer",
"minimum": 0,
"description": "Records to skip, for reading further pages. Leave out to start at the first."
},
"data_type": {
"type": "string",
"default": "*",
"pattern": "^[^/?#]{1,80}$",
"description": "Data type id to return, for example 'occupied', 'number-available' or 'temperature', or '*' for every data type of the station type. Defaults to '*'."
},
"station_type": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,60}$",
"description": "Station type, exactly as listed by the station-types tool, for example 'ParkingStation', 'EChargingStation', 'BikeCounter' or 'MeteoStation'. Case matters."
}
},
"additionalProperties": false
}Output schema
{
"type": "object",
"required": [
"offset",
"limit",
"data"
],
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"required": [
"mvalue"
],
"properties": {
"scode": {
"type": "string",
"description": "Station code, unique within its station type."
},
"sname": {
"type": "string",
"description": "Station name."
},
"stype": {
"type": "string",
"description": "Station type."
},
"tname": {
"type": "string",
"description": "Data type name."
},
"ttype": {
"type": "string",
"description": "Data type kind, for example Instantaneous or Count."
},
"tunit": {
"type": "string",
"description": "Unit of the value; empty text when none."
},
"mvalue": {
"description": "Measured value; a number for most data types, text for some."
},
"mperiod": {
"type": "integer",
"description": "Sampling period in seconds."
},
"sactive": {
"type": "boolean",
"description": "Whether the station is active."
},
"sorigin": {
"type": "string",
"description": "Source system that delivers the data."
},
"smetadata": {
"type": "object",
"description": "Station attributes as the source system supplies them; keys vary by station type.",
"additionalProperties": true
},
"_timestamp": {
"type": "string",
"description": "Time of the measurement, UTC."
},
"mvalidtime": {
"type": "string",
"description": "Time the value is valid for, UTC, 'YYYY-MM-DD HH:MM:SS.mmm+0000'."
},
"savailable": {
"type": "boolean",
"description": "Whether the station is currently available."
},
"scoordinate": {
"type": "object",
"description": "Position: srid 4326, x is longitude, y is latitude.",
"additionalProperties": true
},
"tdescription": {
"type": "string",
"description": "Data type description."
},
"mtransactiontime": {
"type": "string",
"description": "Time the value was stored, UTC."
}
},
"description": "One latest measurement joined with its station. Fields beyond those listed pass through unchanged.",
"additionalProperties": true
},
"description": "One entry per record; empty when nothing matches."
},
"limit": {
"type": "integer",
"description": "Page size applied."
},
"offset": {
"type": "integer",
"description": "Rows skipped."
}
},
"description": "The API's paged response: `data` holds the records of this page.",
"additionalProperties": false
}