For Agents
Retrieve anonymised, time-aggregated counts of people travelling between Czech residential units, sourced from O2 Czech Republic mobile network data.
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the Mobility API, or any other public or private API you need. You set the rules, the agent never sees your credentials, and every call is logged.
# On the machine that will host your Jentic One instance:
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | sh# On the machine where your agent runs (keep this separate from the instance):
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | sh
jentic register # connects your agent to your Jentic One instanceJentic One is in public beta. The setup above keeps your agent separate from the instance, which is what you want before using real credentials: an agent running as the same OS user as Jentic One can read its stored keys directly. Just evaluating? A single local install is fine to start. See the secure deployment guide for the tiers.
What an agent can do with Mobility API API.
Query device counts travelling between two Czech basic residential units (ZSJ) for a chosen time window
Aggregate transit volumes by hour or day to spot commute, weekend, and seasonal patterns
Filter inbound or outbound flows for a single residential unit to estimate catchment areas
Inspect API and dataset version metadata via the /info endpoint to align downstream pipelines
GET STARTED
Use for: Get the count of people travelling between two Czech residential units yesterday, Retrieve hourly transit flows from a city centre ZSJ to a nearby suburb, Find all origin-destination pairs into Prague city centre during morning rush hour, Check whether weekend travel between two regions exceeds weekday volumes
Not supported: Does not return individual identities, GPS traces, or real-time location pings — use for anonymised, time-aggregated origin-destination counts within the Czech Republic only.
Jentic publishes the only available OpenAPI document for Mobility API, keeping it validated and agent-ready.
The O2 Mobility API exposes time-aggregated transit data describing how people move between basic residential units (ZSJ) within the Czech Republic. The data is anonymised and derived from O2 Czech Republic mobile network signalling, so each query returns counts of devices travelling between an origin and a destination over a given hour or day. It is intended for transport planners, retail location analytics, tourism research, and academic mobility studies.
Feed anonymised mobility counts into transport planning, retail siting, and tourism dashboards
Patterns agents use Mobility API API for, with concrete tasks.
★ Retail catchment analysis in the Czech Republic
Estimate where shoppers travel from when visiting a retail location by querying inbound transit volumes to the destination ZSJ from surrounding residential units. The Mobility API returns anonymised, hour-aggregated counts derived from O2 mobile signalling, which lets analysts rank source areas without collecting personal data. A typical catchment study can be assembled in a day from a handful of paired calls.
Call GET /transit/{from}/{to} for each candidate origin ZSJ into the destination shopping centre ZSJ over the last 30 days and rank origins by total inbound count
Commuter flow monitoring for transport planning
Track how commuters move between residential and work areas across the Czech Republic by retrieving hour-aggregated transit counts between origin and destination ZSJs. Because the data covers the O2 subscriber base scaled to population, planners can compare morning and evening peaks across weeks and detect shifts after timetable or road changes. The dataset updates regularly, so dashboards can refresh without scraping.
Pull /transit between a residential ZSJ and a city-centre ZSJ for the 06:00-09:00 window across the last 14 weekdays and compute the average peak flow
Tourism demand measurement
Quantify visitor demand for tourist regions by aggregating inbound transit counts from non-local ZSJs into a destination region. The Mobility API exposes time-aggregated movement data without identifying individuals, which makes it suitable for regional tourism boards measuring seasonality, weekend spikes, and event impact. Combining several origin-destination pairs gives a defensible estimate of visitor origin mix.
Aggregate /transit calls from all non-local ZSJs into a tourist destination ZSJ across summer weekends and report the top 10 origin regions
AI agent integration via Jentic
An AI analytics agent searches Jentic for mobility data, loads the O2 Mobility schema, and pulls origin-destination counts to answer questions like 'how many people travelled from Brno to Prague last Friday?'. Jentic returns the validated operation and request schema so the agent can call the sandbox endpoint without parsing the swagger by hand. The agent runs the call, receives anonymised counts, and writes a short narrative answer.
Use Jentic to search 'transit between Czech residential units', load the GET /transit/{from}/{to} schema, and execute it with from=Brno-stred, to=Praha-Vinohrady for last Friday
2 endpoints — the o2 mobility api exposes time-aggregated transit data describing how people move between basic residential units (zsj) within the czech republic.
METHOD
PATH
DESCRIPTION
/transit/{from}/{to}
Counts of people travelling between two basic residential units
/info
Application and data version information
/transit/{from}/{to}
Counts of people travelling between two basic residential units
/info
Application and data version information
Three things that make agents converge on Jentic-routed access.
Credential isolation
If a developer key is required for production access, it is stored in the Jentic vault (MAXsystem) and injected into outbound calls; the agent never sees the raw key. Sandbox calls that need no auth still benefit from Jentic's logging and retry handling.
Intent-based discovery
An agent searches Jentic with intents like 'origin destination counts czech republic' and Jentic returns the GET /transit/{from}/{to} operation with parameter schema, so the agent can call the right endpoint without reading the swagger.
Time to first call
Direct integration involves Liberty developer signup and reading the Czech docs to map ZSJ codes — typically 1-2 days. Through Jentic: under an hour to discover the operation, load the schema, and run the first call.
Alternatives and complements available in the Jentic catalogue.
O2 Socio-demo API
Same O2 Liberty data programme — adds age and gender breakdowns at a location
Choose this when the question is about who is at a location rather than how they move between locations
HERE Maps APIs
Global mobility, routing, and traffic data from HERE — broader coverage than the Czech-only O2 dataset
Choose this when the agent needs origin-destination or traffic data outside the Czech Republic
TransitFeeds
GTFS public transport schedule feeds — pair with O2 mobility counts to compare scheduled supply with realised demand
Choose this when the agent needs scheduled timetables to contextualise the realised flows from O2 Mobility
Specific to using Mobility API API through Jentic.
What authentication does the O2 Mobility API use?
The published OpenAPI spec for the sandbox base URL declares no security schemes, so calls to /transit/{from}/{to} and /info on the sandbox host go through unauthenticated. Production use of the Liberty Developer programme requires a developer account; if you wire the API up via Jentic, any keys you obtain are stored in the Jentic vault and injected at execution time so they never enter the agent's prompt context.
Can I get counts of people travelling between two specific Czech locations with the O2 Mobility API?
Yes. Call GET /transit/{from}/{to} with the basic residential unit (ZSJ) codes for origin and destination, plus the time range parameters from the spec. The response contains anonymised aggregated counts derived from O2 Czech Republic mobile signalling, not individual trip records.
Does the O2 Mobility API expose individual user locations?
No. The API only returns time-aggregated counts of people moving between residential units. There are no endpoints for live position, individual identifiers, or device-level traces, which keeps the dataset within Czech privacy expectations.
What are the rate limits for the O2 Mobility API?
The OpenAPI spec does not document specific rate limits for the sandbox base URL. Treat the sandbox as best-effort and contact libertyapi@o2.cz for production quotas. Through Jentic, you can throttle calls in the agent loop to avoid bursts.
How do I pull a Czech origin-destination matrix with the Mobility API through Jentic?
Install the Python SDK with pip install jentic, then run a search for 'transit between Czech residential units', load the GET /transit/{from}/{to} operation, and execute it with the ZSJ codes and time window. Jentic returns the JSON payload of aggregated counts so the agent can rank origins or destinations directly.
How do I check which dataset version the API is serving?
Call GET /info. The endpoint returns application and data version strings so downstream pipelines can pin a known dataset and detect when the underlying mobility extract has been refreshed.