Skip to Content

Items

Raw access to a collection’s parquet lake, one row at a time — independent of any DGGRS. This is different from Zone Data: Items pages through the source rows directly (s3://<lake>/<collection>/data/**/*.parquet), un-aggregated; Zone Data resolves values per DGGS zone, aggregating across whatever rows fall in that zone.

Reach for Items when you want the underlying records themselves (e.g. to inspect what’s in the lake, or export it); reach for Zone Data when you want values addressed by grid cell.

Only collections with lake parquet data support this route. A collection without one returns 404.

GET /collections/{collection_id}/items

One page of rows.

curl "https://api.geoinsight.ai/collections/{collection_id}/items?limit=10&bbox=-9.15,38.70,-9.10,38.75"

ParamDescription
limitPage size. Default 10, max 1000.
offset0-based row offset.
bboxmin_lon,min_lat,max_lon,max_lat (CRS84). Filters rows whose geometry intersects the box.
datetimeRFC 3339 instant or interval on the row’s datetime column.
propertiesComma-separated columns to keep.
exclude-propertiesComma-separated columns to drop.
filterCQL2 predicate over the parquet columns, e.g. population > 10000 AND name LIKE 'A%'.
filter-langcql2-text (default) or cql2-json.
fgeojson (default, FeatureCollection), json (raw rows plus files/columns metadata), html, parquet, geoparquet.

self/prev/next links carry every filter forward automatically, so paging never drops a parameter or changes format.

GET /collections/{collection_id}/items/{feature_id}

A single row. feature_id is a 0-based index into the (optionally filtered) row set, stable only while the lake’s underlying file layout doesn’t change — don’t persist it as a durable identifier.

curl "https://api.geoinsight.ai/collections/{collection_id}/items/0"

Same f options as the collection route, minus paging.