georeference.it API
Open REST API returning Darwin Core occurrence data with community georeferences. No API key needed.
https://georeference.it/api/v1
Try it → /occurrences
Endpoints
Paginated list of occurrences. All filters are optional and combinable.
| Parameter | Type | Description |
|---|---|---|
| country | ISO 3166-1 α-2 | Filter by country code — PT, ES, … |
| dataset_key | UUID | Filter by GBIF dataset key |
| status | string | validated · has_suggestion · ungeoreferenced · gbif_georeferenced |
| scientific_name | string | Partial match on scientific name |
| per_page | integer | Records per page — default 100, max 500 |
| page | integer | Page number — default 1 |
| format | string | Set to jsonld for JSON-LD output |
Returns a single occurrence by its GBIF numeric key. Accepts Accept: application/ld+json or ?format=jsonld.
Aggregated statistics per GBIF dataset. Optional filters: country, institution_code, q (free text on institution/collection). Returns dataset_key, institution_code, collection_code, total, georeferenced, validated, ungeoreferenced.
See also: Datasets browser with CSV download.
Response format
Coordinates reflect the best available georeference: community-validated → pending suggestion → original GBIF coordinates.
JSON (default)
{
"meta": {
"total": 48213,
"per_page": 100,
"current_page": 1,
"last_page": 483
},
"data": [
{
"occurrenceID": "3014169604",
"scientificName": "Quercus robur L.",
"verbatimLocality": "Redinha",
"countryCode": "PT",
"decimalLatitude": 39.8812,
"decimalLongitude": -8.5234,
"coordinateUncertaintyInMeters": 500,
"georeferenceVerificationStatus":
"verified by contributor",
"georef_status": "validated",
...
}
]
}
JSON-LD
Send Accept: application/ld+json or add ?format=jsonld
{
"@context": {
"@vocab":
"http://rs.tdwg.org/dwc/terms/",
...
},
"@type": "owl:Ontology",
"totalRecords": 48213,
"@graph": [
{
"@type": "dwc:Occurrence",
"@id": "https://www.gbif.org/
occurrence/3014169604",
"scientificName": "Quercus robur L.",
"georeferenceVerificationStatus":
"verified by contributor",
...
}
]
}
Fields reference
| Field | Description | |
|---|---|---|
| occurrenceID | GBIF numeric occurrence key | DwC |
| datasetKey | GBIF dataset UUID | DwC |
| institutionCode | Institution that holds the specimen | DwC |
| collectionCode | Collection within the institution | DwC |
| catalogNumber | Catalog number in the collection | DwC |
| basisOfRecord | Nature of the record (PRESERVED_SPECIMEN, etc.) | DwC |
| scientificName | Full scientific name with authorship | DwC |
| taxonRank | Rank of the taxon (SPECIES, GENUS, etc.) | DwC |
| kingdom / family | Higher taxonomy | DwC |
| eventDate | Date of collection — ISO 8601 | DwC |
| recordedBy | Collector name(s) | DwC |
| country / countryCode | Country name and ISO 3166-1 alpha-2 code | DwC |
| stateProvince | State or province | DwC |
| county | County or second-level administrative area | DwC |
| municipality | Municipality | DwC |
| island / islandGroup | Island and island group when applicable | DwC |
| waterBody | Water body name when applicable | DwC |
| verbatimLocality | Original locality text from the specimen label | DwC |
| decimalLatitude / decimalLongitude | Best available coordinates | DwC |
| geodeticDatum | Coordinate reference system — WGS84 | DwC |
| coordinateUncertaintyInMeters | Radius of positional uncertainty in metres | DwC |
| georeferencedBy | Who georeferenced (contributor or system) | DwC |
| georeferencedDate | Date of georeference — ISO 8601 | DwC |
| georeferenceProtocol | Protocol used — Zermoglio et al. 2020 | DwC |
| georeferenceSources | Tools used (georeference.it, OpenStreetMap, etc.) | DwC |
| georeferenceRemarks | Free-text notes added by the georeferencer | DwC |
| georeferenceVerificationStatus | DwC verification status (see below) | DwC |
| georef_status | Platform internal status — omitted from JSON-LD | |
| localityGroupID | Locality group identifier — omitted from JSON-LD |
georeferenceVerificationStatus
verified by contributor
Coordinates submitted and approved by community members.
validatedverified by data custodian
Reviewed and published by the data publisher via GBIF.
gbif_reviewedrequires verification
Coordinates exist but not yet community-validated.
has_suggestionrequires georeference
No coordinates available — specimen needs georeferencing.
ungeoreferencedCode examples
curl
# Validated occurrences from Portugal
curl "https://georeference.it/api/v1/occurrences?country=PT&status=validated"
# As JSON-LD
curl -H "Accept: application/ld+json" \
"https://georeference.it/api/v1/occurrences?country=PT&status=validated"
# Single occurrence
curl "https://georeference.it/api/v1/occurrences/3014169604"
# Dataset list
curl "https://georeference.it/api/v1/datasets?country=PT"
JavaScript
const res = await fetch(
'https://georeference.it/api/v1/occurrences?country=PT&status=validated&per_page=500'
);
const { meta, data } = await res.json();
data.forEach(o =>
console.log(o.scientificName, o.decimalLatitude, o.decimalLongitude)
);
Python — fetch all pages
import requests
url = "https://georeference.it/api/v1/occurrences"
params = {"country": "PT", "status": "validated", "per_page": 500}
records, page = [], 1
while True:
r = requests.get(url, params={**params, "page": page}).json()
records.extend(r["data"])
if page >= r["meta"]["last_page"]:
break
page += 1
print(f"{len(records)} records")