Places API
The Places API gives you a read-only interface to PredictHQ's places data. A place represents a Geonames Feature, which can be either an Area, an Administrative Feature, or a Populated Place.
Places can be used to search and filter events using named geographic features rather than a radius, latitude and longitude (see events' place.scope
and place.exact
parameters). This is helpful when searching for all events that apply to a continent, country, state, region, province, county or city.
Search Places
Use the below parameters to search and filter all places. Places are sorted by relevance (location or text query proximity).
A search requires at least one of the q
, id
, country
or location
parameters.
Parameters
Parameter | Description |
---|---|
country string |
A comma-separated list of ISO 3166-1 alpha-2 country codes. E.g. ?country=US |
id string |
A comma-separated list of place identifiers. E.g. ?id=5115985 |
limit number |
The maximum number of results to return. The default limit is 10 .E.g. ?limit=10 |
location coordinate |
A coordinate in the form @{latitude},{longitude} .E.g. ?location=@40.66677,-73.88236 |
q string |
A full-text search query. E.g. ?q=New+York |
type string |
A comma-separated list of place types. Possible values:
?type=country |
Action
GET /v1/places/
Example
curl -X GET https://api.predicthq.com/v1/places/?q=New+York&limit=5 \
-H "Accept: application/json" \
-H "Authorization: Bearer $ACCESS_TOKEN"
{
"count": 4,
"next": null,
"previous": null,
"results": [
{
"id": "5128638",
"type": "region",
"name": "New York",
"county": null,
"region": "New York",
"country": "United States",
"country_alpha2": "US",
"country_alpha3": "USA",
"location": [
-75.4999,
43.00035
]
},
{
"id": "5128594",
"type": "county",
"name": "New York County",
"county": "New York County",
"region": "New York",
"country": "United States",
"country_alpha2": "US",
"country_alpha3": "USA",
"location": [
-73.96981,
40.77427
]
},
{
"id": "5115985",
"type": "neighbourhood",
"name": "East New York",
"county": "Kings County",
"region": "New York",
"country": "United States",
"country_alpha2": "US",
"country_alpha3": "USA",
"location": [
-73.88236,
40.66677
]
},
{
"id": "5106292",
"type": "locality",
"name": "West New York",
"county": "Hudson County",
"region": "New Jersey",
"country": "United States",
"country_alpha2": "US",
"country_alpha3": "USA",
"location": [
-74.01431,
40.78788
]
}
]
}
Fields
Below are the fields returned by the Places endpoint. Please note that these are not the fields used for filtering - please refer to the Search Places section to discover which parameters can be used for filtering places.
JSON Schemas are available for the Places endpoint and for a single place:
Field | Description |
---|---|
country string read-only |
The name of the place's administrative level 0 place, or null if it does not apply.E.g. United States |
country_alpha2 string read-only |
The ISO 3166-1 alpha-2 country code, or null if there is no country.E.g. US |
country_alpha3 string read-only |
The ISO 3166-1 alpha-3 country code, or null if there is no country.E.g. USA |
county string read-only |
The name of the place's administrative level 2 place, or null if it does not apply.E.g. Kings County |
id string read-only |
The unique identifier of the place. E.g. 5115985 |
location array read-only |
A 2-tuple representing the centroid of the place. Note that the longitude/latitude coordinates use the GeoJSON order [lon, lat]. E.g. [-73.88236, 40.66677] |
name string read-only |
The name of the place. E.g. East New York |
region string read-only |
The name of the place's administrative level 1 place, or null if it does not apply.E.g. New York |
type string read-only |
The administrative level of the place. Possible values:
locality |
Retrieve Places Hierarchies
Beta Endpoint
The Places Hierarchies endpoint is currently in Beta.
The currently available filters and response data change are subject to change.
This endpoint allows you to get the full place hierarchies for
a given coordinate
list of
place_id
.
A place hierarchy is a list of place identifiers and types from the planet
level down to the level
specified in your query (please note that level
defaults to locality
if not specified in your query).
Retrieve by coordinates
Multiple hierarchies
The response might include more than one hierarchy for a given coordinate. The reason for this is that we try to match the closest place's hierarchy but we also include the closest major city's hierarchy within a radius of 50km. This only applies if the level
is below region
and, if it exists, the major city's hierarchy will always be the second item in the list.
For instance, if you specify ?location.origin=47.615337,-122.203981
, which is a coordinate located in Bellevue, Washington, you'll get two hierarchies, one for Bellevue but also one for Seattle.
Parameters
Parameter | Description |
---|---|
country string |
An ISO 3166-1 alpha-2 country code. E.g. ?country=US |
location.origin coordinate |
A coordinate in the form {latitude},{longitude} .Please note that this parameter is required. E.g. ?location.origin=47.615337,-122.203981 |
level string |
A place level. Possible values:
locality .E.g. ?level=county |
Action
GET /v1/places/hierarchies/?location.origin=47.615337,-122.203981
Example
curl -X GET https://api.predicthq.com/v1/places/hierarchies/?location.origin=47.615337,-122.203981 \
-H "Accept: application/json" \
-H "Authorization: Bearer $ACCESS_TOKEN"
{
"place_hierarchies": [
[
{
"type": "planet",
"place_id": "6295630"
},
{
"type": "continent",
"place_id": "6255149"
},
{
"type": "country",
"place_id": "6252001"
},
{
"type": "region",
"place_id": "5815135"
},
{
"type": "county",
"place_id": "5799783"
},
{
"type": "locality",
"place_id": "5786882"
}
],
[
{
"type": "planet",
"place_id": "6295630"
},
{
"type": "continent",
"place_id": "6255149"
},
{
"type": "country",
"place_id": "6252001"
},
{
"type": "region",
"place_id": "5815135"
},
{
"type": "county",
"place_id": "5799783"
},
{
"type": "locality",
"place_id": "5809844"
}
]
]
}
Retrieve by place_id
Default arguments
Retrieving hierarchies by place_id
does not accept a country or level parameter.
Parameters
Parameter | Description |
---|---|
location.place_id Array of strings |
A list of place_id in the form {place_id1},{place_id2},... .Please note that this parameter is required. E.g. ?location.place_id=5809844,6252001 |
Action
GET /v1/places/hierarchies/?location.place_id=5809844,6252001
Example
curl -X GET https://api.predicthq.com/v1/places/hierarchies/?location.place_id=5809844,6252001 \
-H "Accept: application/json" \
-H "Authorization: Bearer $ACCESS_TOKEN"
{
"place_hierarchies": [
[
{
"type": "planet",
"place_id": "6295630"
},
{
"type": "continent",
"place_id": "6255149"
},
{
"type": "country",
"place_id": "6252001"
},
{
"type": "region",
"place_id": "5815135"
},
{
"type": "county",
"place_id": "5799783"
},
{
"type": "locality",
"place_id": "5809844"
}
],
[
{
"type": "planet",
"place_id": "6295630"
},
{
"type": "continent",
"place_id": "6255149"
},
{
"type": "country",
"place_id": "6252001"
}
]
]
}