Getting started
Disclaimer (trial version)
This CAMARA- Population Density Data - trial API is a limited version of the production-grade CAMARA - Population Density Data API.
It is running with real network data, against a small geographic area and for a defined time zone (see limitations part).
This API could be suspended or upgraded any time without any notice.
Introduction
The CAMARA Population Density Data provides population density estimations for a specific area at the current or a future period of time. The estimation considers historical anonymized information of the network connected devices in the requested area.
Limitations
The implementation retrieves population density data only from January 1st, 2025 to March 31th,2025 (if other date is used an error message
400 POPULATION_DENSITY_DATA.MAX_STARTDATE_EXCEEDED
is send back).A maximum of 1000 data chunks is retrieved for one API Call (by chunk we mean a 30 minutes estimation on a geohash zone).
The geographic zone covered in this trial version is limited to Barcelona area. The area covered is defined with these coordinates:
[ [ 2.094570465035209, 41.281745129447089 ]
[ 2.27079902501655, 41.432867822653769 ]
[ 2.198406380044962, 41.477229645498312 ]
[ 2.016571655638212, 41.382899835383817 ]
[ 2.094570465035209, 41.281745129447089 ] ]
- in graphical view:
(Hint - MWC area: : [[2.126380,41.354963] [2.133272,41.358484][2.136224,41.354312][2.130281,41.351544]]
)
Documentation of the API
Subscribe to the API
You get the Authorization header credentials when you register your application on the Orange Developer Console.
API Authentication
HTTPS requests to the REST API are protected with 2-Legged OAuth. To learn more about how Orange Developer handles authentication, please refer to our documentation.
In short, you will use your Orange Developer Authorization header as authorization_header for the Basic authentication with Orange Developer.
curl -X POST \
-H "Authorization: {{ authorization_header }}" \
-d "grant_type=client_credentials" \
https://api.orange.com/oauth/v3/token
In response, you will get an access_token
.
{
"token_type": "Bearer",
"access_token": "66AeYJF8eJQ...2SjkFg9LB1LePC",
"expires_in": "3600"
}
API Description
Summary of resources
This API has one resource retrieve. In the response, the Population Density Data are provided by period of time (split of 30 minutes) and by geohash.
A geohash is a system for encoding geographic coordinates (latitude and longitude) into a compact string of letters and digits. It divides the world into a grid and represents each cell in the grid with a unique alphanumeric code. The precision of a geohash increases with its length; longer geohashes correspond to smaller geographic areas. In this implementation we use precision of 7 meaning that the length of the geohash will be 7 characters.
Summary of methods and URL
Use case of operation | URL method |
---|---|
I want to retrieve population density estimation for a given time zone and a given area | POST "https://api.orange.com/camara/orange/population-density-data/v0.2/retrieve" |
Population Density Request Description
Summary of request body parameters
Attribute Name | Description & comment |
---|---|
area | See below |
startTime | Start date time. It must follow RFC 3339 and must have time zone. Recommended format is yyyy-MM-dd'T'HH:mm:ss.SSSZ (i.e. which allows 2023-07-03T14:27:08.312+02:00 or 2023-07-03T12:27:08.312Z) |
endTime | End date time. It must follow RFC 3339 and must have time zone. Recommended format is yyyy-MM-dd'T'HH:mm:ss.SSSZ (i.e. which allows 2023-07-03T14:27:08.312+02:00 or 2023-07-03T12:27:08.312Z) |
precision | Precision required of response cells. Precision defines a geohash level and corresponds to the length of the geohash for each cell. Precision level 7 is used. |
sink | The url address where the population density data response shall be delivered, using the HTTP protocol. |
sinkcredential | A sink credential provides authentication or authorization information necessary to enable delivery of events to a target. |
Note: data type & cardinality are available in the API reference
For the area
, we expect in the request a polygon. Following information must be provided:
areaType
valued to POLYGON (mandatory)- a point list with a minimum of 3, maximum of 15, featuring a
latitude
and alongitude
Response size limitations & sink: We define a 'chunk' as a population density data estimation for a geohash 7 for 30 minutes.
- For a synchronous response (no sink in the request) the response cannot exceed 5000 chunks. If the response exceed 5000 chunks the error POPULATION_DENSITY_DATA.UNSUPPORTED_SYNC_RESPONSE with message "Indicated combination of area, time interval and precision is too big for a sync response" is send back
- For an asynchronous response ( a sink in the request) we limit at 10000 chunks. If the response exceed 5000 chunks the error POPULATION_DENSITY_DATA.UNSUPPORTED_REQUEST with message "Indicated combination of area, time interval and precision is too big" is send back
Exemple of body request
Without callback url
{
"area": {
"areaType": "POLYGON",
"boundary": [
{
"latitude": 41.351099,
"longitude": 2.129661
},
{
"latitude": 41.353928,
"longitude": 2.136373
},
{
"latitude": 41.354663,
"longitude": 2.135839
},
{
"latitude": 41.351921,
"longitude": 2.128704
}
]
},
"startTime": "2025-03-04T11:00:00.000Z",
"endTime": "2025-03-04T11:39:59.000Z",
"precision": 7
}
}
With callback url
{
"area": {
"areaType": "POLYGON",
"boundary": [
{
"latitude": 41.351099,
"longitude": 2.129661
},
{
"latitude": 41.353928,
"longitude": 2.136373
},
{
"latitude": 41.354663,
"longitude": 2.135839
},
{
"latitude": 41.351921,
"longitude": 2.128704
}
]
},
"startTime": "2025-03-04T11:00:00.000Z",
"endTime": "2025-03-04T11:39:59.000Z",
"precision": 7,
"sink": "https://webhook-muppet.apps.fr01.paas.diod.orange.com/8816a3c6-f482-...-784a8a1d1664"
}
}
Population Density Response Description
The response from the Population Density Data API contains population density values represented in time intervals for different cells of the requested area. Each element in the timedPopulationDensityData
array corresponds to a time interval, containing population density data for the grid cells.
Response Attributes
Attribute Name | Description |
---|---|
timedPopulationDensityData | An array of time ranges along with the population density data for the cells within it. The request startDate or endDate must be fully covered by the intervals. |
status | Represents the state of the response for the input polygon defined in the request. Possible values include: SUPPORTED_AREA , PART_OF_AREA_NOT_SUPPORTED , AREA_NOT_SUPPORTED . |
startTime | The interval start time, following RFC 3339 and must have a time zone. Recommended format is yyyy-MM-dd'T'HH:mm:ss.SSSZ . |
endTime | The interval end time, also following RFC 3339 and must have a time zone. Recommended format is yyyy-MM-dd'T'HH:mm:ss.SSSZ . |
cellPopulationDensityData | An array containing population density data for the different cells in a specific time range. |
geohash | Coordinates of the cell represented as a string using the Geohash system. The value length, and thus, the cell granularity, is determined by the request body property precision (7 in our case) |
populationDensityData | An object that contains the estimated population density and an estimation range in a cell for a specific time interval. |
dataType | Indicates the type of data returned, which can be NO_DATA , LOW_DENSITY , or DENSITY_ESTIMATION . |
maxPplDensity | Maximum people/km² estimated for the defined area. |
minPplDensity | Minimum people/km² estimated for the defined area. |
pplDensity | The estimated population density in people/km² for the defined area. |
Notes
- The response may include multiple intervals depending on the requested time range.
Example
Looking for support ?
Facing technical issue when using this API ? please contact us
History of document
Version of the document | modification date | description of modifications |
---|---|---|
1.0 | 27/01/2025 | initialization by Orange CAMARA APIs team |