Install Jentic One Beta
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.
Two steps, two machines. Install the instance in a safe environment, then register your agent from wherever it runs.
Step 1: Jentic One Host machine
# On the machine that will host your Jentic One instance:
curl -fsSL "https://jentic.com/install.sh?src=apis&api=%2Fapis%2Fo2.cz%2Fo2-mobility-api" | shStep 2: Agent machine
# On the machine where your agent runs (keep this separate from the instance):
curl -fsSL "https://jentic.com/install.sh?src=apis&api=%2Fapis%2Fo2.cz%2Fo2-mobility-api" | 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.
Query device counts travelling between two Czech basic residential units (ZSJ) for a chosen window
Aggregate transit volumes by hour or day to expose commute, weekend, and event patterns
Compare inbound and outbound flows for a single ZSJ to estimate catchment areas
Inspect dataset and application version metadata via /info before running batch queries
GET STARTED
Feed anonymised origin-destination counts into transport, retail, and tourism dashboards
Patterns agents use Mobility API for, with concrete tasks.
★ Origin-destination matrix for Czech transport studies
Build an origin-destination matrix between residential units across a Czech region by iterating over ZSJ pairs and pulling aggregated transit counts. The Mobility API returns anonymised counts derived from O2 mobile signalling, so a transport consultant can compose a regional flow matrix without commissioning a household travel survey. Outputs feed directly into demand modelling tools.
For each ZSJ pair in a region, call GET /transit/{from}/{to} with a one-week window and assemble the results into an origin-destination matrix
Retail footfall origin estimation
Identify which residential areas send shoppers to a retail destination by ranking inbound transit counts from surrounding ZSJs into the destination ZSJ. The API exposes hour-level aggregates so an analyst can isolate trading hours and weekends, and feed the rankings into a catchment map. The data is anonymised, which makes it usable for marketing planning without privacy review delays.
Pull /transit from each surrounding ZSJ into a retail centre ZSJ across the last 30 trading days and rank origins by inbound count
Event impact monitoring
Measure how a festival, sports match, or transport disruption changes movement patterns by comparing transit counts on event days against a baseline week. Querying both inbound and outbound flows for affected ZSJs reveals the size and direction of the swing. Because the dataset is hour-aggregated, agents can correlate spikes with the event timeline.
Compare /transit counts into a festival venue ZSJ on event days vs a baseline weekend and report the percentage uplift per hour
AI agent integration via Jentic
An analytics agent searches Jentic for Czech mobility data, loads the GET /transit/{from}/{to} schema, and pulls inbound counts to answer questions like 'how did weekend visitors change after the new tram line opened?'. Jentic exposes the validated operation so the agent can call it with structured arguments and convert the response into a written narrative.
Use Jentic to search 'czech transit between residential units', load the operation schema, and execute it with from and to ZSJ codes for the last weekend
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
What agents get from Jentic-routed access to this vendor.
Setup
Wiring the O2 Mobility API by hand means pointing at the developer.o2.cz sandbox host, handling any move to production access separately, and coding your own retry and rate-limit handling. Through Jentic you install once, import the Mobility API from the API Directory, store any production key once, and your agent calls it.
Permission scoping
This API returns anonymised, time-aggregated origin-destination counts through read-only GETs, so scope it by operation: limit the agent to the transit-count and info operations it needs and nothing else. You choose which operations it may call, so no other behaviour runs unless you add it.
Credential isolation
Any production access key is stored once, encrypted, by your own Jentic One instance and injected at execution time, so the agent never sees the raw key. Sandbox calls that need no auth still flow through Jentic's logging and retry layer.
Intent-based discovery
Agents search Jentic by intent such as 'Czech origin-destination counts', and Jentic returns the GET /transit/{from}/{to} operation with its input schema so the agent calls the right endpoint without reading the underlying spec.
Alternatives and complements available in the Jentic catalogue.
Specific to using Mobility API through Jentic.
What authentication does the O2 Mobility API use?
The published spec for the sandbox base URL does not declare any security schemes, so sandbox calls to /transit/{from}/{to} and /info go through unauthenticated. Production access via the Liberty Developer programme requires a developer key; through Jentic any such key is held in the vault and injected at runtime, never surfacing in the agent's prompt.
Can I retrieve hourly origin-destination counts with the Mobility API?
Yes. GET /transit/{from}/{to} accepts time range parameters and returns hour- or day-aggregated counts of devices travelling between the two basic residential units, derived from O2 Czech Republic mobile signalling.
Does the Mobility API expose individual locations or trajectories?
No. The API only returns aggregated transit counts between residential units. There is no endpoint for live device positions, individual identifiers, or per-trip routes, which keeps the dataset compatible with Czech privacy norms.
What are the rate limits for the O2 Mobility API?
The OpenAPI spec does not publish explicit rate limits for the sandbox endpoint. Treat sandbox use as best-effort and contact libertyapi@o2.cz for production quotas. When used through Jentic, agents can pace calls in their loop to avoid bursts.
How do I build an origin-destination matrix through Jentic?
Install the Python SDK with pip install jentic, run a search for 'transit between Czech residential units', load GET /transit/{from}/{to}, and iterate the operation across ZSJ pairs. Jentic returns each call's JSON so the agent can assemble the matrix without parsing the swagger by hand.
How do I confirm the dataset has been refreshed?
Call GET /info. The endpoint returns application and data version strings so a pipeline can detect refreshed extracts and pin a known dataset version for reproducible analysis.
Can I limit what my agent is allowed to do with the O2 Mobility API?
Yes. Because you run Jentic One yourself, your own rules decide which operations the agent may call, so you can grant only the read-only transit-count operation (GET /transit/{from}/{to}) and the version-check operation (GET /info) and nothing else. The API exposes only these anonymised, time-aggregated origin-destination GETs, so scoping it to those two operations means the agent cannot reach any other behaviour. Any production access key is held by your instance and injected at execution time, so the agent never sees the raw credential.
Know of an official OpenAPI document? Contribute it →
For Agents
Retrieve anonymised counts of people travelling between Czech residential units, sourced from O2 Czech Republic mobile network signalling.
Use for: Get the count of people travelling between two Czech residential units last week, Retrieve hourly transit volumes between a residential ZSJ and a city centre ZSJ, Find all source areas feeding morning commuters into Prague city centre, Check whether weekend flows into a tourist region exceed weekday flows
Not supported: Does not return individual identities, real-time GPS, or device-level traces - use for anonymised, time-aggregated origin-destination counts within the Czech Republic only.
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 chosen time window. It is intended for transport planning, retail catchment analysis, and tourism research that need flow data rather than individual location pings.