Skip to content
getgeolens.com

Search Datasets Endpoint

GET
/search/datasets/
curl --request GET \
--url 'https://example.com/search/datasets/?sort_by=relevance&offset=0&limit=10&filter-lang=cql2-text&exclude_synthetic=true&spatial_predicate=intersects'

Search datasets with text, spatial, and faceted filters.

q
Any of:
string
<= 1000 characters

Full-text search query

bbox
Any of:
string

Bounding box: minx,miny,maxx,maxy

keywords
Any of:
Array<string>

Filter by keywords

geometry_type
Any of:
string

Filter by geometry type

srid
Any of:
integer

Filter by SRID

source_organization
Any of:
string

Filter by source organization

record_type
Any of:
string

Filter by record type (vector_dataset, raster_dataset)

date_from
Any of:
string format: date

Filter created_at >=

date_to
Any of:
string format: date

Filter created_at <=

vintage_start
Any of:
string format: date

Filter data_vintage_start >=

vintage_end
Any of:
string format: date

Filter data_vintage_end <=

sort_by
Sort By

Sort: relevance, date_added, name, last_updated

string
default: relevance

Sort: relevance, date_added, name, last_updated

sort_desc
Any of:
boolean

Sort direction override

offset
Offset

Pagination offset

integer
0

Pagination offset

limit
Limit

Page size. Values above the maximum (200) are clamped to it rather than rejected, per OGC API Features Core /req/core/fc-limit-response-1(C).

integer
default: 10 >= 1

Page size. Values above the maximum (200) are clamped to it rather than rejected, per OGC API Features Core /req/core/fc-limit-response-1(C).

filter
Any of:
string
<= 10000 characters

CQL2 filter expression

filter-lang
Filter-Lang

Filter language: cql2-text or cql2-json

string
default: cql2-text

Filter language: cql2-text or cql2-json

datetime
Any of:
string

OGC datetime interval: instant, start/end, ../end, start/..

exclude_synthetic
Exclude Synthetic

Exclude synthetic/test datasets

boolean
default: true

Exclude synthetic/test datasets

spatial_predicate
Spatial Predicate

Spatial predicate: intersects or within

string
default: intersects
Allowed values: intersects within

Spatial predicate: intersects or within

geometry
Any of:
string
<= 50000 characters

GeoJSON geometry for spatial filter

collection_id
Any of:
string format: uuid

Filter by collection membership

Successful Response

Media type application/json
OGCFeatureCollectionResponse

OGC API Records FeatureCollection with match counts.

object
type
Type
string
default: FeatureCollection
timeStamp
Any of:
string
numberMatched
required
Numbermatched

Total records matching the query

integer
numberReturned
required
Numberreturned

Number of records in this response page

integer
features
required
Features
Array<object>
OGCRecordResponse

Single OGC API Records Feature.

object
type
Type
string
default: Feature
id
required
Id
string
conformsTo
Any of:
Array<string>
time
required
Time
object
key
additional properties
any
geometry
Any of:
object
key
additional properties
any
properties
required
OGCRecordProperties

Properties block of an OGC API Records Feature.

object
type
Type
string
default: dataset
title
required
Title
string
description
required
Description
string
keywords
required
Keywords
Array<string>
created
Any of:
string format: date-time
updated
Any of:
string format: date-time
updated_by_display
Any of:
string
never_edited
Never Edited
boolean
crs
Any of:
string
record_type
Record Type
string
default: vector_dataset
band_count
Any of:
integer
geometry_type
Any of:
string
feature_count
Any of:
integer
row_count
Any of:
integer
column_count
Any of:
integer
license
required
License
string
source_organization
Any of:
string
source_format
Any of:
string
quality_detail
Any of:
object
key
additional properties
any
quality_statement
Any of:
string
formats
Any of:
Array<string>
language
Any of:
string
externalIds
Externalids

Identifiers assigned by the described resource’s source system.

Array<string>
themes
required
Themes
Array<object>
object
key
additional properties
any
rights
Any of:
string
contacts
required
Contacts
Array<object>
object
key
additional properties
any
time
required
Time
object
key
additional properties
any
lineage
Any of:
string
update_frequency
Any of:
string
source_freshness
Source Freshness

Fresh, due, overdue, or unknown — how the dataset’s last refresh compares to its declared update_frequency. ‘unknown’ for origins nothing can refresh. Advisory only, and distinct from the quality score’s own freshness.

string
default: unknown
source_health
Source Health

Healthy, missing, inaccessible, or unknown. ‘unknown’ means never probed, or an origin kind with nothing to probe.

string
default: unknown
last_checked_at
Any of:
string format: date-time
last_refreshed_at
Any of:
string format: date-time
constraints
Any of:
object
key
additional properties
any
distributions
Any of:
Array<object>
object
key
additional properties
any
record_status
Any of:
string
has_quicklook
Has Quicklook
boolean
gsd
Any of:
number
res_x
Any of:
number
res_y
Any of:
number
crs_is_geographic
Any of:
boolean
vrt_type
Any of:
string
source_count
Any of:
integer
dataset_count
Any of:
integer
proj:code
Any of:
string
proj:shape
Any of:
array
>= 2 items <= 2 items
raster:bands
Any of:
Array<object>
OGCRasterBand

One entry in the raster:bands STAC extension array.

fix(#1805 review round 3 P2): matches the shape service_records.py actually serializes per band. statistics matches the normalized band_info shape core/raster_bands.py (introduced by #1803, the raster lifecycle PR) produces on read; keep this in sync if that PR changes the per-band keys.

object
name
Any of:
string
data_type
Any of:
string
nodata
Any of:
string
statistics
Any of:
object
key
additional properties
any
description
Any of:
string
links
required
Links
Array<object>
OGCRecordLink

Link object in OGC API Records.

object
rel
required
Rel
string
href
required
Href
string
type
required
Type
string
assets
Any of:
object
key
additional properties
OGCAsset

STAC-style asset entry for an OGC Record.

object
href
required
Href
string
type
required
Type
string
title
Any of:
string
roles
Any of:
Array<string>
bbox
Any of:
Array<number>
links
Any of:
Array<object>
OGCRecordLink

Link object in OGC API Records.

object
rel
required
Rel
string
href
required
Href
string
type
required
Type
string
Example
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"properties": {
"type": "dataset",
"never_edited": false,
"record_type": "vector_dataset",
"source_freshness": "unknown",
"source_health": "unknown",
"has_quicklook": false
}
}
]
}

Bad request — invalid query parameters or payload

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

Unauthenticated — a credential was supplied and could not be resolved (expired, revoked, or malformed). Sending no credential at all is not an error on these operations; they answer anonymously with the public subset. Neither is sending an unresolvable credential alongside a capability that authorizes the request on its own — a valid X-Embed-Token or a valid signed tile template (sig, exp, scope). Those are served and the unrelated credential is ignored.

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

Validation error

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