Public API
Access catalogue metadata as JSON, freely and without a key
The GPRbase catalogue is exposed as JSON. The API is read-only, open to everyone, requires no key or registration, and allows calls straight from a browser.
Endpoints
Two addresses are enough. Responses are cached for one hour.
Full catalogue
GET https://www.gprbase.com/api/datasets.json
Returns every dataset with its metadata, along with the total count and the generation timestamp.
A single dataset
GET https://www.gprbase.com/api/datasets/{id}.json
The same fields, plus a ready-made citation in APA and BibTeX formats. Identifier matching is case-insensitive.
Dataset fields
Each catalogue entry carries the following fields. More may be added: ignore what you do not recognise rather than validating strictly.
| Field | Type | Description |
|---|---|---|
id |
string | Stable identifier, for example ds016. Never reused. |
title / title_fr |
string | English and French titles. |
description / description_fr |
string | Bilingual descriptions. Line breaks and paragraphs are preserved. |
applications |
array | Canonical application keys. A dataset may belong to several domains. |
antenna |
string | One or several antennas, separated by a semicolon. |
frequency_mhz |
string | Single value, dual-frequency such as 300/800, or several values separated by a semicolon. |
format |
string | Native file format, usually DZT. |
dataType |
string | Always raw: no processing is applied to the data. |
fileCount |
integer | null | Number of files in the package, when recorded. |
targets |
array | What the survey was looking for. |
channels |
integer | null | Number of channels recorded simultaneously. 2 for a dual-frequency antenna or two antennas. Null when not recorded. |
gpsAvailable |
boolean | null | Are the .DZG positioning files included? Null when unknown — an empty field does not mean “no”. |
groundTruth |
string | Ground truth level: verified, partial or none. A dataset with no documented validation is none. |
groundTruthMethod |
string | null | Validation method, when known: coring, trial trench, bibliography, direct observation. |
contributor |
string | Who acquired the data in the field. |
datePublished |
string | null | Publication date in ISO 8601 format. |
license |
string | Always CC BY-NC-SA 4.0. |
status |
string | Dataset visibility. Only public datasets are freely accessible. |
isAccessibleForFree |
boolean | True when the dataset is freely accessible. |
url / url_fr |
string | null | Canonical page addresses, English and French. Null for a non-public dataset. |
Application keys
Values are returned in canonical form, whatever was entered originally.
beton— Concrete / Civil Eng.reseaux— Underground Utilitiesgeotech— Geotechnicsroutes— Roads / Pavementsarcheologie— Archaeologygeosciences— Geosciences
Antenna and frequency are strings, not arrays: split them yourself, or use the client, which does it for you.
Ground truth
Most freely available GPR datasets say nothing about their validation. GPRbase states it explicitly, because the difference between a plausible interpretation and a confirmed target is decisive when evaluating an algorithm.
verified |
The target was confirmed by a means independent of the radar. |
partial |
Some targets are confirmed, or the context is documented without direct verification. |
none |
No documented validation. This applies to most of the catalogue. |
These datasets are not evaluation benchmarks: they carry no annotations, masks or bounding boxes. Check this field before any use in validation or comparison.
Citations
The single-dataset endpoint returns a formatted citation. The author is the publishing organisation; the field team, when external, is credited separately as the acquisition contributor.
What the API does not do
- No write access. The catalogue is maintained through a separate administration interface.
- No download links. The API returns the dataset page address; access to the files goes through the request form.
- No server-side search. Fetch the catalogue once and filter locally: the collection is small.
Python and JavaScript client
An official client, dependency-free and MIT licensed, handles filtering, splitting of multi-value fields and citation generation.
from gprbase import GPRbase
gpr = GPRbase()
for d in gpr.datasets(application="beton", frequency="2500"):
print(d.id, d.title, d.url)
GitHub DOI 10.5281/zenodo.22010033
Good practice
- Fetch the catalogue once rather than one dataset at a time.
- Identify your tool with a User-Agent header. There is no rate limit, but it helps when something goes wrong.
- Ignore fields you do not recognise: new ones may appear without notice.
Licence and citation
The metadata returned by this API may be reused freely, including to build a catalogue or a search tool. The datasets themselves remain under CC BY-NC-SA 4.0: attribution required, no commercial use without separate authorisation, derivatives under the same terms.
Xavier, J. (2026). GPRBase: A Free Library of Real-World Ground Penetrating Radar Datasets for Education, Training and Research. https://doi.org/10.5281/zenodo.21894932
Questions
For any question or correction: info@gprbase.com