Skip to content
getgeolens.com

List Features

GET
/datasets/{dataset_id}/features/
curl --request GET \
--url 'https://example.com/datasets/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/features/?limit=10&offset=0&include_geometry=true' \
--header 'Authorization: Bearer <token>'

Get paginated GeoJSON features for a dataset.

Pagination is OFFSET-based (fix(#458 E-40), documented limitation): rows can skip or duplicate across pages under concurrent writes, though feature ids stay stable (ORDER BY gid, the primary key). Clients that need stable cursoring should use the OGC API Features endpoint, which supports keyset pagination via after_gid.

dataset_id
required
Dataset Id
string format: uuid
limit
Limit
integer
default: 10 >= 1 <= 200
offset
Offset

Legacy offset-based pagination. Phase 269 H-24 lowered the max limit to 200 from 1000.

integer
0

Legacy offset-based pagination. Phase 269 H-24 lowered the max limit to 200 from 1000.

bbox
Any of:
string

Bounding box: minx,miny,maxx,maxy

include_geometry
Include Geometry

Include geometry in response

boolean
default: true

Include geometry in response

Successful Response

GeoJSONFeatureCollection

A GeoJSON FeatureCollection with OGC API Features pagination fields.

object
features
required
Features
Array<object>
GeoJSONFeature

A single GeoJSON Feature.

object
geometry
Any of:
GeoJSONGeometryCollection

A GeoJSON GeometryCollection (RFC 7946 §3.1.8).

fix(#430 codex r9): carries geometries instead of coordinates, so it needs its own model — only generic-GEOMETRY datasets accept it on write (enforced in the service), and any stored collection must serialize back out on read.

Deliberately NON-recursive (codex r13, refuted): PostGIS cannot round-trip nested collections through the GeoJSON boundary in either direction — ST_GeomFromGeoJSON rejects them on write and ST_AsGeoJSON raises ‘GeoJson: geometry not supported’ on read — so a recursive model could never receive one and would only convert the write-side 422 into a raw database 500. The write schemas add a raw-payload guard for a clear 422.

object
geometries
required
Geometries
Array<object>
GeoJSONGeometry

A GeoJSON geometry object (RFC 7946).

object
coordinates
required
Coordinates
Array
type
required
Type
string
Allowed values: Point MultiPoint LineString MultiLineString Polygon MultiPolygon
type
required
Type
string
Allowed value: GeometryCollection
id
required
Id
integer
properties
required
Properties
object
key
additional properties
any
type
Type
string
default: Feature
Allowed value: Feature
links
required
Links
Array<object>
Link
object
href
required
Href
string
rel
required
Rel
string
type
required
Type
string
numberMatched
required
Numbermatched
integer
numberReturned
required
Numberreturned
integer
type
Type
string
default: FeatureCollection
Allowed value: FeatureCollection
Example
{
"features": [
{
"geometry": {
"geometries": [
{
"type": "Point"
}
],
"type": "GeometryCollection"
},
"type": "Feature"
}
],
"type": "FeatureCollection"
}

Bad request — invalid query parameters or payload

Media type application/problem+json
ProblemDetail
object
detail
required
Any of:
string
status
required
Status
integer
title
required
Title
string
type
Type
string
default: about:blank
Example
{
"detail": "Dataset not found",
"status": 404,
"title": "Not Found",
"type": "about:blank"
}

Unauthorized — missing or invalid credentials

Media type application/problem+json
ProblemDetail
object
detail
required
Any of:
string
status
required
Status
integer
title
required
Title
string
type
Type
string
default: about:blank
Example
{
"detail": "Dataset not found",
"status": 404,
"title": "Not Found",
"type": "about:blank"
}

Forbidden — caller lacks access to this resource

Media type application/problem+json
ProblemDetail
object
detail
required
Any of:
string
status
required
Status
integer
title
required
Title
string
type
Type
string
default: about:blank
Example
{
"detail": "Dataset not found",
"status": 404,
"title": "Not Found",
"type": "about:blank"
}

Not found

Media type application/problem+json
ProblemDetail
object
detail
required
Any of:
string
status
required
Status
integer
title
required
Title
string
type
Type
string
default: about:blank
Example
{
"detail": "Dataset not found",
"status": 404,
"title": "Not Found",
"type": "about:blank"
}

Validation error

Media type application/problem+json
ProblemDetail
object
detail
required
Any of:
string
status
required
Status
integer
title
required
Title
string
type
Type
string
default: about:blank
Example
{
"detail": "Dataset not found",
"status": 404,
"title": "Not Found",
"type": "about:blank"
}

Too many requests — retry after the advertised interval

Media type application/problem+json
ProblemDetail
object
detail
required
Any of:
string
status
required
Status
integer
title
required
Title
string
type
Type
string
default: about:blank
Example
{
"detail": "Dataset not found",
"status": 404,
"title": "Not Found",
"type": "about:blank"
}
Retry-After
integer

Seconds until the request may be retried

Internal server error

Media type application/problem+json
ProblemDetail
object
detail
required
Any of:
string
status
required
Status
integer
title
required
Title
string
type
Type
string
default: about:blank
Example
{
"detail": "Dataset not found",
"status": 404,
"title": "Not Found",
"type": "about:blank"
}

Service unavailable — the database could not serve the request

Media type application/problem+json
ProblemDetail
object
detail
required
Any of:
string
status
required
Status
integer
title
required
Title
string
type
Type
string
default: about:blank
Example
{
"detail": "Dataset not found",
"status": 404,
"title": "Not Found",
"type": "about:blank"
}