Skip to content
getgeolens.com

Get Dataset Versions Endpoint

GET
/datasets/{dataset_id}/versions/
curl --request GET \
--url 'https://example.com/datasets/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/versions/?skip=0&limit=50'

Get paginated version history for a dataset.

Access follows Rule 1 on the read path. feat(#1316): field redaction on top follows the same owner-or-admin predicate as refresh-runs and dataset reads — a caller who is neither the owner nor an admin gets the version timeline (filenames, formats, feature counts) but not file_hash or uploaded_by. Unredacted, a PUBLIC dataset’s version history enumerates its editors, the exact leak ADR-002 Decision 4e closed for refresh-runs.

dataset_id
required
Dataset Id
string format: uuid
skip
Skip
integer
0
limit
Limit
integer
default: 50 >= 1 <= 200

Successful Response

Media type application/json
DatasetVersionListResponse
object
versions
required
Versions
Array<object>
DatasetVersionResponse

One version in a dataset’s history.

feat(#1316): file_hash and uploaded_by are null for any caller who is neither the dataset’s owner nor an admin — the same predicate that gates origin_uri/origin_ref on the dataset itself and triggered_by on refresh-runs (ADR-002 Decision 4e). Unredacted, a public dataset’s version history enumerates its editors.

object
id
required
Id
string format: uuid
dataset_id
required
Dataset Id
string format: uuid
version_number
required
Version Number
integer
source_filename
required
Any of:
string
source_format
required
Any of:
string
feature_count
required
Any of:
integer
srid
required
Any of:
integer
geometry_type
required
Any of:
string
file_hash
required
Any of:
string
uploaded_by
required
Any of:
string format: uuid
uploaded_at
required
Uploaded At
string format: date-time
total
required
Total
integer
Example generated
{
"versions": [
{
"id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"dataset_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"version_number": 1,
"source_filename": "example",
"source_format": "example",
"feature_count": 1,
"srid": 1,
"geometry_type": "example",
"file_hash": "example",
"uploaded_by": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"uploaded_at": "2026-04-15T12:00:00Z"
}
],
"total": 1
}

Bad request — invalid 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"
}

Unauthorized — missing or invalid credentials

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"
}

Forbidden — caller lacks access to this resource

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"
}

Not found

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"
}

Conflict — resource state prevents the operation

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"
}