Using the API

Development of the external API is in draft stage. We plan to refine options and add endpoints in response to community feedback. Please use for suggestions.

Two place data stores

The relational database holds individual records from uploaded datasets

Note that records from all uploaded datasets are assigned a unique identifier within the WHG system (place_id). Both that place_id and the contributor's own src_id will be maintained unless and until the dataset is deleted by its owner. If a dataset is flagged as "public," its records will be accessible via the "database API" as indicated. In this way WHG can serve as a Linked Open Data publisher for those projects unable to stand up their own per-record landing pages.

The "union index": links contributed records deemed to be close or exact matches in the optional accessioning step that follows initial uploading and reconciliation tasks. So, results of an index query may return one or several records as distinct attestations of the "same" place.

Trace data

We have indexed a limited number of "trace annotation" datasets, which can be searched by keyword. Trace records can optionally be returned in place searches,


Search public database records (

idintegerreturns single database record
namestringequals or starts with; name, name_contains, or id is required
name_containsstringincludes string
datasetstringdataset label
fclassstring1 or more GeoNames feature class code, comma-separated
yearintegeryear within attested timespan(s) if any (Note).
use '-' for BCE dates, to -9999
ccodestring1 or more 2-letter ISO codes , comma separated
areaintegerwithin this region or user study area
pagesizeintegerDefault is 20; maximum allowed=200

NOTE: All places in a dataset may be downloaded as a file from the dataset page, by the dataset owner and collaborators.


Abydos, Egypt in the database, attested to exist at 4000 BCE


Khmer "landscape" features (regions, cultural groups, peoples) or settlements.


Search union index ( Returns GeoJSON.

whgidintegerindex identifier; returns 1 or more linked records
namestringexact match; name, name_startswith, or whgid is required
name_startswithstringstarts any part of a name
datasetstringdataset label
ccodestring1 or more 2-letter ISO codes, comma separate
fclassstring1-letter GeoNames feature category ; >=1);
yearintegerwithin any timespan of linked records;
use '-' for BCE dates, to -9999
areaintegerwithin this region or user study area


Sites named Abydos: one in Turkey, two in Egypt. Two have two attestations each.


Index record linking the two database records for Abydos, EG asserted as matches.


Settlements and sites in N. Africa w/part of any name variant starting with "aby."


Search traces (

qstringsearch term or place
formatstringanno (default) or geojson


Search for "empire," returning W3C Web Annotation format


Search for "empire," returning GeoJSON (2 FeatureCollections)


Search regions & areas (

<none>n/aall regions & study areas flagged 'public'
idintegera single region/area
qstringSearch region/area names


All regions and public user study areas

A region by id

Search string

Search datasets (

<none>n/ametadata for all datasets flagged 'public'
idintegermetadata for a single 'public' dataset
labelstringmetadata for a single 'public' dataset
qstringstring in dataset title or description

NOTE: All places in a dataset may be downloaded as a file from the dataset page, by the dataset owner and collaborators.


List all 'public' datasets

A 'public' dataset by id

A 'public' dataset by label identifier

Search title and description for term