Items
Read the features in an OGC collection as a GeoJSON FeatureCollection, and page through large datasets with limit and offset.
Items
The items endpoint returns the features in a collection as a GeoJSON FeatureCollection. This is the workhorse of the OGC API, it is what GIS clients call to draw a layer.
Requires an organization API key with the GIS_ACCESS addon in the X-API-Key header, plus a license for the dataset. Each items request costs 10 credits; see Rate limits and credits. See Authentication.
Get features
curl -H "X-API-Key: tlb_prod_..." \
"https://api.topolab.nl/v1/ogc/collections/transport_infrastructure_bushaltes/items?limit=2"
{
"type": "FeatureCollection",
"numberMatched": 51532,
"numberReturned": 2,
"features": [
{
"type": "Feature",
"id": "transport_infrastructure_bushaltes.1",
"geometry": {
"type": "Point",
"coordinates": [4.8952, 52.3702]
},
"properties": {
"name": "Amsterdam, Centraal Station",
"category": "bus_stop",
"city": "Amsterdam",
"country": "nl",
"postal_code": "1012 AB"
}
},
{
"type": "Feature",
"id": "transport_infrastructure_bushaltes.2",
"geometry": {
"type": "Point",
"coordinates": [4.4777, 51.9244]
},
"properties": {
"name": "Rotterdam, Centraal Station",
"category": "bus_stop",
"city": "Rotterdam",
"country": "nl",
"postal_code": "3013 AP"
}
}
],
"links": [
{
"rel": "self",
"type": "application/geo+json",
"href": "https://api.topolab.nl/v1/ogc/collections/transport_infrastructure_bushaltes/items?limit=2&offset=0"
},
{
"rel": "next",
"type": "application/geo+json",
"href": "https://api.topolab.nl/v1/ogc/collections/transport_infrastructure_bushaltes/items?limit=2&offset=2"
}
]
}
Coordinates are WGS84 (EPSG:4326) in GeoJSON longitude-first order: [longitude, latitude].
Reading the response
numberMatched, the total number of features that match the request, across all pages.numberReturned, how many features are in this page (at mostlimit).links, navigation. Anextlink is present when more features remain; follow it to get the next page. The last page has nonextlink. The samenextpointer is also returned as an HTTPLink: <...>; rel="next"response header, so you can page from the headers without parsing the body.
Paging with limit and offset
| Parameter | Default | Max | Meaning |
|---|---|---|---|
limit |
100 |
1000 |
Number of features to return in this page. |
offset |
0 |
— | Number of features to skip before returning results. |
Page through a large collection by incrementing offset by limit, or simply by following each response's next link until none is returned.
# First page (features 0–99)
curl -H "X-API-Key: tlb_prod_..." \
"https://api.topolab.nl/v1/ogc/collections/transport_infrastructure_bushaltes/items?limit=100&offset=0"
# Second page (features 100–199)
curl -H "X-API-Key: tlb_prod_..." \
"https://api.topolab.nl/v1/ogc/collections/transport_infrastructure_bushaltes/items?limit=100&offset=100"
Requesting a limit above 1000 is capped at 1000. Each page costs 10 credits, so paging a large collection adds up; for bulk extraction of an entire dataset in one call, a full file download over the Datasets API is often simpler and cheaper than paging.
Errors
| Status | Meaning |
|---|---|
401 |
Missing or invalid API key (API key is required). |
403 |
Key is valid but the organization lacks the GIS_ACCESS addon. |
404 |
Unknown collectionId, or a dataset your organization is not licensed for. The two cases return the same 404. |
429 |
Rate limit exceeded. |
Next
- bbox and filtering, narrow results by area, category, city, or country.
- Single feature, fetch one feature by id.