Scrapers / Developer & File Tools

GBIF Biodiversity Scraper
hipersoft/gbif-species-scraper
Search GBIF's global biodiversity database in bulk. Get species taxonomy (kingdom to genus, rank, status) or occurrence records (coordinates, country, date, basis of record). Filter occurrences by country, year and coordinates. Export to JSON, CSV or Excel.
Total users
2Monthly users
1Total runs
64Per record scraped
$0.0008Last rebuilt
Oct 26, 2026Overview
Search and export GBIF — the Global Biodiversity Information Facility — into clean JSON, CSV, Excel or XML. Pull species taxonomy (scientific name, rank, full kingdom-to-genus classification, taxonomic status) or occurrence records (geographic coordinates, country, observation date, basis of record, source dataset) for any organism in GBIF's billion-record biodiversity index.
Built for researchers, ecologists, conservation teams and data pipelines that need structured biodiversity data at scale instead of clicking through the GBIF portal one page at a time.
What does the GBIF Biodiversity Scraper do?
Give it a name to search — a scientific name like Panthera leo, a genus, or a common word like oak — pick a mode, and the actor paginates through GBIF and returns one clean row per result:
- Species mode — one row per taxon:
scientificName,canonicalName,rank, the full taxonomy (kingdom,phylum,class,order,family,genus),statusandnumDescendants. - Occurrences mode — one row per recorded observation:
scientificName,country,decimalLatitude,decimalLongitude,eventDate,basisOfRecordanddatasetName.
What data can you get?
Species mode
| Field | Type | Description |
|---|---|---|
key |
integer | GBIF taxon key (unique taxon identifier) |
scientificName |
string | Full scientific name, including authorship where available |
canonicalName |
string | Canonical name without authorship |
rank |
string | Taxonomic rank, e.g. SPECIES, GENUS, FAMILY |
kingdom |
string | Kingdom in the classification |
phylum |
string | Phylum in the classification |
class |
string | Class in the classification |
order |
string | Order in the classification |
family |
string | Family in the classification |
genus |
string | Genus in the classification |
status |
string | Taxonomic status, e.g. ACCEPTED, SYNONYM |
numDescendants |
integer | Number of descendant taxa under this taxon |
Occurrences mode
| Field | Type | Description |
|---|---|---|
key |
integer | GBIF occurrence key (unique record identifier) |
scientificName |
string | Scientific name recorded for the observation |
country |
string | Country where the organism was recorded |
decimalLatitude |
number | Latitude in decimal degrees |
decimalLongitude |
number | Longitude in decimal degrees |
eventDate |
string | Date the observation was made |
basisOfRecord |
string | Record basis, e.g. HUMAN_OBSERVATION, PRESERVED_SPECIMEN |
datasetName |
string | Name of the source dataset that published the record |
Use cases
- Ecology & conservation research — map where a species has been recorded and how many observations exist over time.
- Taxonomy lookups — resolve a name to its GBIF taxon key and full classification for downstream enrichment.
- Species distribution modelling — pull georeferenced occurrence points for a taxon, filtered by country and year.
- Biodiversity dashboards — feed clean, structured records into your own analytics or mapping tools.
- Education — build teaching datasets of species and their real-world observation records.
How to use it
- Add the GBIF Biodiversity Scraper to your Apify account and open the input form.
- Choose a Mode —
speciesfor taxonomy,occurrencesfor observation records. - Enter a Search query (e.g.
Panthera leo). - For occurrences, optionally filter by Country (ISO2 code), Year, and whether records must have coordinates.
- Set Max items to cap the export, then Run.
- Export the dataset as JSON, CSV, Excel or XML, or pull it via the Apify API.
Input
{
"mode": "occurrences",
"query": "Panthera leo",
"country": "KE",
"hasCoordinate": true,
"maxItems": 500
}
| Field | Type | Description |
|---|---|---|
mode |
string | species (taxonomy) or occurrences (observation records). |
query |
string | Free-text search term, usually a scientific or common name. |
rank |
string | Species mode: restrict to a single rank (e.g. SPECIES, GENUS). |
country |
string | Occurrences mode: ISO 3166-1 alpha-2 country code (e.g. KE). |
year |
integer | Occurrences mode: filter to a single observation year. |
hasCoordinate |
boolean | Occurrences mode: only records that carry coordinates. |
maxItems |
integer | Maximum records to return (default 1000). |
Output
{
"key": 5013750474,
"scientificName": "Panthera leo (Linnaeus, 1758)",
"country": "Kenya",
"decimalLatitude": -1.399759,
"decimalLongitude": 34.906483,
"eventDate": "2013-10-15T00:00",
"basisOfRecord": "HUMAN_OBSERVATION",
"datasetName": "iNaturalist research-grade observations"
}
FAQ
What is GBIF? GBIF (Global Biodiversity Information Facility) is an open-data network that aggregates species and occurrence records from museums, herbaria, research projects and citizen-science platforms worldwide.
How many records can I get? As many as your search returns — GBIF holds billions of occurrence records. Use Max items to cap a run and keep it cheap.
How does billing work? You pay only per record you get, so small, tightly filtered runs stay inexpensive.
What export formats are supported? JSON, CSV, Excel and XML, plus direct access via the Apify API.
Can I use this with n8n? Yes. Run the GBIF Biodiversity Scraper from n8n with the Apify node — trigger a run, wait for it to finish, and read the dataset items straight into your workflow to enrich records, build maps or drive alerts. It also works with Make, Zapier and the Apify API.
Can I connect this to other tools? The GBIF Biodiversity Scraper connects with almost any cloud service or web app through integrations on the Apify platform — Make, Zapier, Slack, Google Drive and many more, plus webhooks to trigger an action whenever a run finishes.
Is this only public data? Yes. It returns only openly published biodiversity data. You are responsible for compliance with GBIF's terms and the licence of each source dataset.
Notes
Original clean-room implementation. Not affiliated with GBIF. Data is contributed by GBIF's publishing network and made available under open licences; cite the original datasets where required.
Input
| Field | Type | Description |
|---|---|---|
modeMode | string · species, occurrences | What to search. "species" returns one row per taxon (scientific name, rank, full taxonomy, status). "occurrences" returns one row per recorded observation (coordinates, country, date, basis of record). Default: "species" |
querySearch query | string | Free-text search term, typically a scientific or common name, e.g. "Panthera leo", "oak", "Apis mellifera". Leave empty to browse the full dataset (occurrences mode) filtered by the options below. |
rankTaxonomic rank (species mode) | string · , KINGDOM, PHYLUM, CLASS, ORDER, FAMILY… | Species mode only: restrict results to a single taxonomic rank. Leave empty for all ranks. |
countryCountry (occurrences mode) | string | Occurrences mode only: 2-letter ISO 3166-1 alpha-2 country code to filter records by where the observation was made, e.g. "KE" for Kenya, "US", "SG". Leave empty for all countries. |
yearYear (occurrences mode) | integer | Occurrences mode only: filter records to a single observation year, e.g. 2013. Leave empty for all years. |
hasCoordinateOnly records with coordinates (occurrences mode) | boolean | Occurrences mode only: when enabled, return only observation records that carry decimal latitude/longitude coordinates. Default: false |
maxItemsMax items | integer | Maximum number of records to return across all pages. Default: 1000 |
API
curl -X POST "https://api.apify.com/v2/acts/hipersoft~gbif-species-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"query": "Panthera leo",
"country": "KE"
}'from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("hipersoft/gbif-species-scraper").call(run_input={
"query": "Panthera leo",
"country": "KE"
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('hipersoft/gbif-species-scraper').call({
"query": "Panthera leo",
"country": "KE"
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);Pricing
| Event | Price | Paid plans from |
|---|---|---|
| Record Scraped Charged per record scraped. | $0.0008 | $0.0004 |
You pay only for what the run returns. Set a maximum cost per run and it stops cleanly at that limit.
Related scrapers
Bulk Image Downloader
Download thousands of images from a list of URLs and store each in the key-value store with a public link. Returns content type, size, dimensions and SHA-256 per image. Bulk-ready. Great for datasets, backups and media pipelines.
8,102 runs · 103 users · $0.056 / url processedText to Speech
Convert any text to natural-sounding speech as an MP3 download. 300+ premium neural voices across 70+ languages, adjustable rate, pitch and volume. Great for voiceovers, videos, accessibility and audio content. No setup.
278 runs · 22 users · $0.01 / audio generatedGoogle Maps Email Extractor
Search Google Maps for businesses, then crawl each business website to extract emails, social profiles and extra phone numbers. Turns any Maps search into a ready lead list. No setup.
159 runs · 8 users · $0.006 / business lead scrapedWebsite Screenshot
Capture full-page or viewport screenshots of any URL as PNG or JPEG, at any device size. For monitoring, previews, thumbnails and automation workflows.
156 runs · 3 users · $0.004 / screenshot capturedBulk URL Status Checker
Check thousands of URLs over plain HTTP: status codes, broken links (404/410/5xx), full redirect chains, response time, content type, page title and SSL certificate expiry.
154 runs · 13 users · $0.002 / url checkedGoogle Search Scraper
Scrape Google Search results (organic listings) for any query: title, URL, displayed URL, snippet and position. Multi-query, per-country/language, pagination. Uses Google SERP proxy — reliable, no captcha, no setup.
121 runs · 8 users · $0.001 / result scrapedSend the site and the fields. We build it and you get it first.