{
  "openapi": "3.0.1",
  "info": {
    "title": "GBIF Scraper: Species & Wildlife Occurrence Data",
    "description": "Scrape GBIF biodiversity data: species search with full taxonomy and threat status, plus wildlife occurrence records with GPS coordinates, dates, observers and photos. Filter by country, year, record type. Export CSV, Excel, JSON. No login or API key. 96,549 jaguar records in Brazil.",
    "version": "0.1",
    "x-build-id": "UBs4U7FUrPyECEXas"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/recordsdata~gbif-biodiversity-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-recordsdata-gbif-biodiversity-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/recordsdata~gbif-biodiversity-scraper/runs": {
      "post": {
        "operationId": "runs-sync-recordsdata-gbif-biodiversity-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/recordsdata~gbif-biodiversity-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-recordsdata-gbif-biodiversity-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "speciesQuery": {
            "title": "Species search (optional)",
            "type": "string",
            "description": "Search the GBIF species backbone by common or scientific name (for example jaguar, Quercus or hummingbird). Returns one species-record row per taxon with kingdom-to-genus taxonomy, authorship, accepted name for synonyms, threat status and occurrence counts. Leave empty to skip species search.",
            "default": ""
          },
          "speciesBackboneOnly": {
            "title": "Species: GBIF Backbone only",
            "type": "boolean",
            "description": "Search only the GBIF Backbone Taxonomy, one reconciled name per taxon, instead of every checklist that GBIF indexes (the same species can appear many times across checklists). Off keeps all checklists.",
            "default": false
          },
          "speciesRank": {
            "title": "Species: rank filter (optional)",
            "enum": [
              "",
              "DOMAIN",
              "SUPERKINGDOM",
              "KINGDOM",
              "SUBKINGDOM",
              "INFRAKINGDOM",
              "SUPERPHYLUM",
              "PHYLUM",
              "SUBPHYLUM",
              "INFRAPHYLUM",
              "SUPERCLASS",
              "CLASS",
              "SUBCLASS",
              "INFRACLASS",
              "PARVCLASS",
              "SUPERLEGION",
              "LEGION",
              "SUBLEGION",
              "INFRALEGION",
              "SUPERCOHORT",
              "COHORT",
              "SUBCOHORT",
              "INFRACOHORT",
              "MAGNORDER",
              "SUPERORDER",
              "GRANDORDER",
              "ORDER",
              "SUBORDER",
              "INFRAORDER",
              "PARVORDER",
              "SUPERFAMILY",
              "FAMILY",
              "SUBFAMILY",
              "INFRAFAMILY",
              "SUPERTRIBE",
              "TRIBE",
              "SUBTRIBE",
              "INFRATRIBE",
              "SUPRAGENERIC_NAME",
              "GENUS",
              "SUBGENUS",
              "INFRAGENUS",
              "SECTION",
              "SUBSECTION",
              "SERIES",
              "SUBSERIES",
              "INFRAGENERIC_NAME",
              "SPECIES_AGGREGATE",
              "SPECIES",
              "INFRASPECIFIC_NAME",
              "GREX",
              "SUBSPECIES",
              "CULTIVAR_GROUP",
              "CONVARIETY",
              "INFRASUBSPECIFIC_NAME",
              "PROLES",
              "RACE",
              "NATIO",
              "ABERRATION",
              "MORPH",
              "VARIETY",
              "SUBVARIETY",
              "FORM",
              "SUBFORM",
              "PATHOVAR",
              "BIOVAR",
              "CHEMOVAR",
              "MORPHOVAR",
              "PHAGOVAR",
              "SEROVAR",
              "CHEMOFORM",
              "FORMA_SPECIALIS",
              "CULTIVAR",
              "STRAIN",
              "OTHER",
              "UNRANKED"
            ],
            "type": "string",
            "description": "Keep only taxa of one rank, for example SPECIES to skip genera, families and subspecies. Choose Any to keep every rank.",
            "default": ""
          },
          "datasetQuery": {
            "title": "Dataset registry search (optional)",
            "type": "string",
            "description": "Search the GBIF dataset registry by title, keyword or description (for example camera trap, herbarium or bird atlas). Returns one dataset-record row per dataset with publisher, DOI, license, record count and keywords. Clear the default scientific name below if you only want datasets. Leave empty to skip.",
            "default": ""
          },
          "datasetType": {
            "title": "Dataset type (optional)",
            "enum": [
              "",
              "OCCURRENCE",
              "CHECKLIST",
              "SAMPLING_EVENT",
              "METADATA"
            ],
            "type": "string",
            "description": "Keep only one kind of dataset. Setting a type without a search text lists every dataset of that type, up to the maximum number of rows. Choose Any to keep all types.",
            "default": ""
          },
          "datasetPublishingCountry": {
            "title": "Dataset publishing country (optional)",
            "type": "string",
            "description": "Two-letter ISO 3166 country code of the organisation that publishes the dataset (for example BR, US or CO). Leave empty for worldwide. Any other format stops the run before charging.",
            "default": ""
          },
          "scientificNames": {
            "title": "Scientific names (occurrences)",
            "type": "array",
            "description": "Scientific names to pull wildlife occurrence records for (for example Panthera onca). Returns one occurrence-record row per observation or specimen with GPS coordinates, date, observer, dataset, higher taxonomy and photo. Use an empty list to run species or dataset search only.",
            "default": [
              "Panthera onca"
            ],
            "items": {
              "type": "string"
            }
          },
          "taxonKeys": {
            "title": "GBIF taxon keys (occurrences, optional)",
            "type": "array",
            "description": "GBIF taxon keys (whole numbers such as 5219426 for Panthera onca) to pull occurrences for, without name matching. A key of a genus or family includes all species below it. The taxonKey column of a species search gives the keys. Runs in addition to the scientific names.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "country": {
            "title": "Country filter (optional)",
            "type": "string",
            "description": "Two-letter ISO 3166 country code that restricts occurrence records to one country (for example BR, US or CO). Leave empty for worldwide results. Any other format stops the run before charging.",
            "default": ""
          },
          "yearFrom": {
            "title": "Year from (optional)",
            "minimum": 1700,
            "type": "integer",
            "description": "Return only occurrences observed in this year or later (for example 2020). Leave empty for no lower bound."
          },
          "yearTo": {
            "title": "Year to (optional)",
            "minimum": 1700,
            "type": "integer",
            "description": "Return only occurrences observed up to and including this year (for example 2025). Leave empty for no upper bound."
          },
          "onlyWithCoordinates": {
            "title": "Only with coordinates",
            "type": "boolean",
            "description": "Keep only occurrences with decimal latitude/longitude (map-ready).",
            "default": true
          },
          "onlyWithPhotos": {
            "title": "Only with photos",
            "type": "boolean",
            "description": "Keep only occurrences that include at least one image.",
            "default": false
          },
          "basisOfRecord": {
            "title": "Basis of record (optional)",
            "enum": [
              "",
              "HUMAN_OBSERVATION",
              "PRESERVED_SPECIMEN",
              "MACHINE_OBSERVATION",
              "FOSSIL_SPECIMEN",
              "LIVING_SPECIMEN",
              "MATERIAL_SAMPLE",
              "OCCURRENCE",
              "OBSERVATION",
              "MATERIAL_CITATION",
              "LITERATURE",
              "UNKNOWN"
            ],
            "type": "string",
            "description": "Restrict occurrences to one GBIF basis of record, such as human observation (iNaturalist, eBird) or preserved specimen (museum). Choose Any to keep all record types.",
            "default": ""
          },
          "boundingBox": {
            "title": "Bounding box (optional)",
            "type": "string",
            "description": "Keep only occurrences inside a latitude/longitude rectangle, written as four numbers in the order south,west,north,east (minLatitude,minLongitude,maxLatitude,maxLongitude), for example -20,-58,-17,-55 for the northern Pantanal. For an area that crosses longitude 180 use the WKT polygon input. With no scientific names or taxon keys, the box returns every species inside it.",
            "default": ""
          },
          "geometryWkt": {
            "title": "Area as WKT polygon (optional)",
            "type": "array",
            "description": "One or more closed polygons in WKT, longitude first, for example POLYGON((-58 -20, -55 -20, -55 -17, -58 -17, -58 -20)) or a MULTIPOLYGON. Occurrences are returned only if they fall inside one of them. GBIF refuses requests longer than about 4,000 characters, so keep each polygon to roughly 140 vertices or fewer.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "continent": {
            "title": "Continent (optional)",
            "enum": [
              "",
              "AFRICA",
              "ANTARCTICA",
              "ASIA",
              "EUROPE",
              "NORTH_AMERICA",
              "OCEANIA",
              "SOUTH_AMERICA"
            ],
            "type": "string",
            "description": "Keep only occurrences on one continent, as GBIF derives it from the coordinates. Choose Any to keep all.",
            "default": ""
          },
          "iucnRedListCategory": {
            "title": "IUCN Red List category (optional)",
            "enum": [
              "",
              "THREATENED",
              "CR",
              "EN",
              "VU",
              "NT",
              "LC",
              "DD",
              "EX",
              "EW",
              "NE"
            ],
            "type": "string",
            "description": "Keep only occurrences of taxa in one IUCN Red List category. Threatened covers CR, EN and VU together. Choose Any to keep all.",
            "default": ""
          },
          "occurrenceStatus": {
            "title": "Occurrence status (optional)",
            "enum": [
              "",
              "PRESENT",
              "ABSENT"
            ],
            "type": "string",
            "description": "Present keeps records where the organism was seen, Absent keeps the records that report it was not found. Choose Any to keep both.",
            "default": ""
          },
          "datasetKeys": {
            "title": "Only these datasets (optional)",
            "type": "array",
            "description": "GBIF dataset keys (UUIDs such as 50c9509d-22c7-4a22-a47d-8c48425ef4a7) to take occurrences from. The datasetKey column of a dataset search gives them. Leave empty for all datasets.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "institutionCode": {
            "title": "Institution code (optional)",
            "type": "string",
            "description": "Keep only records from one institution or collection code as GBIF stores it, for example iNaturalist, NHMUK or MNHN. Leave empty for all.",
            "default": ""
          },
          "excludeGeospatialIssues": {
            "title": "Exclude records with geospatial issues",
            "type": "boolean",
            "description": "Drop occurrences that GBIF flagged with a coordinate problem (zero coordinates, country mismatch, out of range). The issues column lists every flag when it is off.",
            "default": false
          },
          "updatedSince": {
            "title": "Updated since (optional)",
            "type": "string",
            "description": "Keep only occurrences that GBIF indexed or re-processed on or after this day (the lastInterpreted date). Write a date such as 2026-09-01 or a relative window such as 7d, 4w, 3m, 1y, today or yesterday. Leave empty for no date filter.",
            "default": ""
          },
          "onlyNew": {
            "title": "Only new records since the last run",
            "type": "boolean",
            "description": "Deliver only species, occurrences and datasets that an earlier run of the same search did not deliver. Rows already seen are skipped before the item limit and are not charged. The memory is kept in your Apify account and is separate for every combination of search inputs.",
            "default": false
          },
          "stateKey": {
            "title": "Monitor label (optional)",
            "type": "string",
            "description": "Optional text that gives this monitor its own memory, so two schedules with identical inputs do not share what they have seen. Leave empty to share by inputs only.",
            "default": ""
          },
          "resetSeen": {
            "title": "Reset the monitor memory",
            "type": "boolean",
            "description": "Forget everything this search delivered before and start again. The current run then delivers every match up to the item limit.",
            "default": false
          },
          "maxItems": {
            "title": "Max Items",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Maximum number of rows to return across species, dataset and occurrence records, which is also the most you can be charged for. Free Apify users are limited to 10 rows (preview). Paid users can request up to 1,000,000.",
            "default": 10
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}