canonical: https://jentic.com/apis/o2.cz

# O2 Czech Republic APIs

O2 Czech Republic offers a pair of location-analytics APIs built on anonymised mobile network signalling data. The Mobility API returns time-aggregated counts of people travelling between Czech basic residential units (ZSJ), while the Socio-demo API returns hour-aggregated counts of people present at a Czech location, split by age band or gender. Both datasets are anonymised, scaled to population, and cover the Czech Republic only, so they suit transport planning, retail siting, tourism analytics, and event audience studies that need aggregate presence and flow figures rather than individual traces.

## For AI agents

An agent can combine anonymised movement and demographic presence data for Czech locations, pulling origin-destination flow counts between residential units from the Mobility API and age or gender presence profiles at a location from the Socio-demo API. Together these let an agent answer how many people move between two places and who is present at a destination during a given time window.

## Scope

Use for: Anonymised, hour- or day-aggregated presence counts and origin-destination flow counts for Czech Republic basic residential units, derived from O2 mobile network signalling.

Not supported:
- individual identities
- real-time GPS traces
- device-level trajectories
- coverage outside Czechia
- income or ethnicity data

## APIs

| API | Category | Endpoints | Description |
| --- | --- | --- | --- |
| O2 Socio-demo API | data-enrichment | 3 | Retrieve anonymised hour-aggregated counts of people present at a Czech location, split by age or gender, derived from O2 mobile network data. |
| O2 Mobility API | data-enrichment | 2 | Retrieve anonymised counts of people travelling between Czech residential units, sourced from O2 Czech Republic mobile network signalling. |

## Which API to use

| Need | API | Why |
| --- | --- | --- |
| How many people travel between two Czech locations | mobility-api | Returns origin-destination transit counts between two basic residential units over a chosen window. |
| Who is present at a Czech location by age or gender | socio-demo-api | Returns hour-aggregated presence counts at a location split by age band or gender. |

## Cross-API use cases

### Retail catchment sizing and shopper profiling

Rank the residential areas that send shoppers to a retail site using inbound transit counts from the Mobility API, then profile who arrives by pulling age and gender presence at the destination from the Socio-demo API. The result is a catchment map paired with a demographic profile, built from anonymised mobile-derived data rather than store surveys.

Example prompt: Pull inbound transit counts into a retail ZSJ from surrounding units via the Mobility API, then pull age and gender presence at that ZSJ via the Socio-demo API and combine into a catchment-plus-profile report

### Event audience flow and composition

Measure how a festival or match changes movement by comparing transit counts into the venue against a baseline week using the Mobility API, then characterise the audience by retrieving age and gender presence at the venue from the Socio-demo API. This links how many people arrived with who they were, at hour resolution.

Example prompt: Compare Mobility API transit counts into a venue ZSJ on event days versus a baseline, then query Socio-demo age and gender presence at the venue and report both the uplift and the audience mix per hour

### Tourism destination demand and visitor profile

Assess a Czech tourist region by pulling inbound flows from source areas via the Mobility API and the age and gender mix of visitors via the Socio-demo API. Tourism boards can separate weekday domestic travel from weekend leisure travel and match each pattern to a visitor profile for marketing.

Example prompt: Aggregate Mobility API inbound transit into a tourist ZSJ across weekends, then pull Socio-demo age and gender presence for the same ZSJ and summarise demand volume alongside the dominant visitor demographics

## Why Jentic

- **Setup:** Wiring both O2 APIs by hand means pointing at the developer.o2.cz sandbox hosts, handling any move to production access separately, and coding your own retry and rate-limit handling for each. With Jentic One installed, you or your agent can find and add either API from the Jentic directory to your workspace and call it from one place.
- **Permission scoping:** Both APIs are read-only GETs over anonymised aggregates, so you scope access by operation. Your own rules decide whether the agent may reach the transit-count, age, gender, and info operations, and no other behaviour runs unless you add it.
- **Credential handling:** Any O2 Liberty production key is stored 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 the same layer.
- **Discovery method:** An agent searches the Jentic directory by intent, such as Czech origin-destination counts or age and gender at a location, and Jentic returns the matching operation with its input schema so the agent calls the right endpoint without reading the underlying spec.

## Related vendors

- **HERE Technologies** — Provides global mobility, routing, and traffic data for flow analysis outside the Czech Republic.
- **Google** — The Analytics Data API gives digital audience demographics as an alternative signal to physical presence.
- **TransitFeeds** — GTFS public transport schedules pair with mobility counts to compare scheduled supply against realised demand.

## FAQ

### What data do the O2 Czech Republic APIs provide?

Both APIs expose anonymised counts derived from O2 Czech Republic mobile network signalling. The Mobility API returns time-aggregated counts of people travelling between basic residential units, and the Socio-demo API returns hour-aggregated counts of people present at a location split by age band or gender. Neither exposes individual identities or device-level location.

### How do the Mobility and Socio-demo APIs differ?

The Mobility API answers how people move between places, returning origin-destination transit counts for pairs of residential units. The Socio-demo API answers who is present at a single place, returning age and gender breakdowns. Use them together when you want both the volume of travel and the composition of visitors.

### Is the data anonymised and privacy-compliant?

Yes. Every response is an aggregate count scaled to population, with no individual identifiers, GPS traces, or per-trip routes. This keeps both datasets aligned with Czech privacy expectations and lets outputs be published without re-identification risk.

### What geographic area do the APIs cover?

Both APIs cover the Czech Republic only and report against Czech basic residential units, known by their ZSJ codes. For movement or demographic data outside Czechia you would need a different provider.

### Do I need one credential for both APIs?

The published sandbox specs declare no authentication, so sandbox calls run unauthenticated. Production access runs through the O2 Liberty Developer programme, where a single developer key covers both APIs.

### How fresh is the data and can I pin a version?

Each API exposes a GET /info endpoint that returns application and data version strings. A pipeline can call it to detect when a refreshed extract is available and pin a known version for reproducible analysis.
