For Agents
Retrieve anonymised hour-aggregated counts of people present at a Czech location, split by age or gender, derived from O2 mobile signalling.
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the Socio-demo 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 Socio-demo API API.
Pull hour-aggregated counts of people at a Czech location split by age band
Pull hour-aggregated counts of people at a Czech location split by gender
Compare daytime versus evening visitor composition at a single location
Inspect dataset and application version metadata via /info before running batch queries
GET STARTED
Use for: Get the hourly age breakdown of visitors at a Czech tourist site last weekend, Retrieve gender split of visitors to a Prague shopping centre during trading hours, Find all hours where an attraction's visitors skew under 25, Check whether weekend visitors to a venue skew younger than weekday visitors
Not supported: Does not return individual identities, GPS traces, or income or ethnicity data — use for anonymised, time-aggregated age and gender presence at Czech locations only.
Jentic publishes the only available OpenAPI document for Socio-demo API, keeping it validated and agent-ready.
The O2 Socio-demo API exposes hour-aggregated counts of people present at a Czech location, broken down by age band or gender. The data is anonymised and derived from O2 Czech Republic mobile network signalling, so each query returns a profile of visitor composition rather than individual identifiers. It is suited to retail siting, public sector planning, and tourism analytics where the question is who is at a place during a particular time window.
Feed anonymised demographic presence data into siting, planning, and tourism dashboards
Patterns agents use Socio-demo API API for, with concrete tasks.
★ Site selection demographic profiling
Compare two candidate retail sites in the Czech Republic by querying age and gender presence at each ZSJ across trading hours. The Socio-demo API returns anonymised, hour-aggregated counts, which lets a property analyst rank sites by demographic fit without primary research. Two days of calls produces a defensible weekday-vs-weekend profile per site.
Pull /age and /gender for two candidate ZSJs across the last 30 days and rank them by share of the target age band during trading hours
Public sector service planning
Plan local services such as transport, libraries, or clinics by retrieving age and gender presence at relevant ZSJs. Hour-level granularity reveals when older or younger residents are at a location, which informs scheduling. Because the data is anonymised, public sector teams can publish derived planning maps without re-identification risk.
Pull /age for residential ZSJs and report the share of presence in the 65+ age band by hour to inform clinic opening hours
Tourism audience composition
Quantify who visits a tourist destination across the season by aggregating /age and /gender presence at the destination ZSJ. Tourism boards can differentiate weekday domestic visitors from weekend leisure visitors and tune marketing accordingly. The output is suitable for board reports and sponsor decks.
Aggregate /age and /gender at a tourist destination ZSJ across summer weekends and report the dominant age band per hour
AI agent integration via Jentic
An analytics agent searches Jentic for Czech location demographics, loads the /age and /gender operations, and answers questions like 'what is the typical visitor age mix at this attraction on Saturday afternoons?'. Jentic returns validated operation schemas so the agent can call them with location identifiers and translate the response into a written summary.
Use Jentic to search 'czech location age and gender presence', load both operations, and execute them for a destination ZSJ across the last weekend
3 endpoints — the o2 socio-demo api exposes hour-aggregated counts of people present at a czech location, broken down by age band or gender.
METHOD
PATH
DESCRIPTION
/age/{location}
Presence at a location aggregated by age band
/gender/{location}
Presence at a location aggregated by gender
/info
Application and data version information
/age/{location}
Presence at a location aggregated by age band
/gender/{location}
Presence at a location aggregated by gender
/info
Application and data version information
Three things that make agents converge on Jentic-routed access.
Credential isolation
Any production Liberty key is stored encrypted in the Jentic vault (MAXsystem) and injected at execution time. Sandbox calls that require no auth still flow through Jentic's logging and retry layer.
Intent-based discovery
Agents search Jentic with intents like 'age and gender at a czech location' and Jentic returns the /age and /gender operations with parameter schemas so the agent can call the right endpoint without reading the swagger.
Time to first call
Direct integration involves Liberty signup and learning ZSJ identifiers — typically 1-2 days. Through Jentic: under an hour to discover the operations, load schemas, and run the first query.
Alternatives and complements available in the Jentic catalogue.
O2 Mobility API
Same O2 Liberty programme — adds origin-destination flow counts between residential units
Choose this when the question is about movement between locations rather than composition at a single location
HERE Maps APIs
Global location intelligence — broader geography but without anonymised mobile-derived demographic profiles
Choose this when the agent needs location intelligence outside the Czech Republic
Google Analytics Data API
Web and app audience analytics rather than physical-presence demographics — different signal source
Choose this when the agent needs digital audience demographics rather than mobile-network presence
Specific to using Socio-demo API API through Jentic.
What authentication does the O2 Socio-demo API use?
The published spec for the sandbox base URL declares no security schemes, so /age/{location}, /gender/{location}, and /info on the sandbox host go through unauthenticated. Production Liberty programme keys are stored in the Jentic vault and injected at execution time when used through Jentic, never appearing in the agent's prompt.
Can I get an age and gender breakdown for a Czech location?
Yes. GET /age/{location} returns hour-aggregated counts split by age band, and GET /gender/{location} returns hour-aggregated counts split by gender for the requested ZSJ. The values are anonymised and derived from O2 Czech Republic mobile signalling.
Does the Socio-demo API expose individual user demographics?
No. The API only returns aggregated counts at hour resolution. There are no endpoints that link demographics to individual people, devices, or trajectories, which keeps the dataset within Czech privacy expectations.
What are the rate limits for the O2 Socio-demo API?
The OpenAPI spec does not publish explicit rate limits for the sandbox endpoint. Treat sandbox calls as best-effort and contact libertyapi@o2.cz for production quotas. Through Jentic, the agent loop can pace calls to avoid bursts.
How do I pull a demographic profile through Jentic?
Install the SDK with pip install jentic, search 'czech location age and gender presence', load GET /age/{location} and GET /gender/{location}, and execute them for the chosen ZSJ. Jentic returns the JSON so the agent can produce a per-hour profile without reading the swagger directly.
How do I check that the dataset has been refreshed?
Call GET /info. It returns application and data version strings, so a pipeline can detect when a new extract is available and pin a known version for reproducible reporting.