# DataCite Research Dataset Search

> DataCite API tool to search research datasets by topic, publisher, funder, year and license. Export DOI, creators, rights and citation counts.

URL: https://cliqtomedia.com/actors/datacite-dataset-search/

Category: Science & research data · Status: coming soon · Apify profile: https://apify.com/cliqtomedia?fpr=cliqto

Search DataCite for research datasets with simple filters. Get one row per DOI with title, creators and rights. Export it as a table for your work.

## How to use it: 3 steps

1. **Follow us on Apify.** The tool is built and waits in the queue for the Apify Store. Apify is the cloud platform where our tools run.
2. **Paste your input and press Start.** No code needed: you fill in a form (the input). It already has a working example. For example: `climate temperature` in Search query. Each start is one run.
3. **Download the results.** When the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too.

## What it does

Search DataCite for research datasets by topic, publisher, funder, publication year and license. The Actor returns one row per DOI with title, creators, rights, related identifiers and DataCite citation counts.



### Good for

- Find datasets on a topic from 2020 to 2025 and export DOIs and titles.
- Find datasets from one repository (for example Zenodo or Dryad) or one funder.
- Check which datasets have an open license, such as `cc-by-4.0`.

### Not a good fit

- It does not download dataset files. It returns metadata and links.
- It returns at most 500 records per run, not the whole DataCite catalog.
- DataCite only. Crossref DOIs (most journal articles) are not included.

## Price

Prices will be shown after release.

## Questions

### Does it download the data files?

No. It returns metadata and links only.

### Why do I see the same title twice?

Each version can have its own DOI. Each DOI is a row.

### Does it include journal articles?

No. Most journal articles use Crossref, not DataCite.

### Do I need a DataCite key?

No. It uses the public DataCite REST API.

### Does `license` show every license?

No. `license` is the first entry in `rights`. A record can have more, and the `license` filter can match a later one. Check `rights` for the full list. An empty `rights` list means the reuse terms are unknown, not that reuse is allowed.

### Is `citationCount` complete?

No. It is the number DataCite reports from its own links. Other citation indexes can show more.

### How fresh is the data?

Each run reads DataCite live. `sourceUpdatedAt` shows when DataCite last changed the record.

## Data fields

- `doi` (string): DataCite DOI, for example 10.5281/zenodo.4006472. Unique within one run.
- `doiUrl` (string): DOI resolver link: https://doi.org/ plus the DOI.
- `provider` (string): Always DataCite.
- `sourceUrl` (string): DataCite REST API record for this DOI.
- `fetchedAt` (string): ISO 8601 UTC time when this Actor read the record.
- `metadataLicense` (string): License of the metadata, always CC0-1.0. It is not the dataset license.
- `title` (string): First title as plain text: HTML tags removed (also entity-encoded tags), entities such as &amp; decoded, control characters dropped. Null if blank. Raw titles are in titles.
- `publisher` (string): Publisher or repository name, for example Zenodo. Null if missing.
- `resourceType` (string): General resource type, for example Dataset or Software.
- `resourceTypeDetail` (string): Free-text resource type from the publisher. Null if missing or blank.
- `url` (string): Landing page of the record at the publisher. Null if missing.
- `license` (string): First rights identifier, URI or name from rights. Null if no rights. Other licenses can be in rights.
- `sourceUpdatedAt` (string): ISO 8601 time when DataCite last updated the record. Null if missing.
- `year` (number): Publication year as an integer. Null if missing.
- `citationCount` (number): Citation count reported by DataCite. 0 is a real value; null if unknown. Not a full citation census.
- `titles` (array): All title objects as DataCite returns them; may contain HTML and language tags.
- `creators` (array): Creator objects with names, name type, identifiers such as ORCID and affiliations. Empty list if missing.
- `subjects` (array): Subject objects (keywords and classification codes). Empty list if missing.
- `rights` (array): All rights objects for the dataset: SPDX ID, URI and name. Empty list means unknown reuse rights.
- `sizes` (array): Size strings as supplied, for example 2 files or 15 MB. Empty list if missing.
- `formats` (array): Format strings as supplied, for example text/csv. Empty list if missing.
- `relatedIdentifiers` (array): Links to related works: identifier, type and relation, for example IsCitedBy or IsVersionOf. Empty list if missing.
- `fundingReferences` (array): Funding objects: funder name, funder ID and award. Empty list if missing.

## Input settings

- `query` (string): Topic words or DataCite query syntax. Plain words must all match; use OR to match any word, quotes for a phrase. Blank searches all records with the filters.
- `resourceTypeGeneral` (string): Filter resource type; Dataset by default.
- `sortBy` (string): Relevance puts the best matches first. Newest and oldest sort by the date the DOI was created.
- `publisher` (string): Exact phrase in the indexed publisher field, for example Zenodo or Dryad.
- `funder` (string): Exact phrase in the indexed fundingReferences.funderName field.
- `yearFrom` (integer): Inclusive lower publication year bound.
- `yearTo` (integer): Inclusive upper publication year bound.
- `license` (string): Match SPDX identifier, rights URI or license name phrase. Missing rights do not imply permission.
- `maxResults` (integer): Maximum saved records, 1–500. Search total is reported separately in RUN_SUMMARY.

## Step by step on Apify

1. Open the Input tab.
2. Keep the example in Search query: `climate temperature`.
3. Keep Resource type = `Dataset`, years 2020–2025 and Maximum results = 25.
4. Click Start.
5. Open the Research datasets view in the Output tab and check the first DOI and title.

## Tips

- Filter by publisher, like Zenodo or Dryad, to see one repository.
- Check the rights list, not only the first license.
- One run gives up to 500 records. Split big topics by year.

## Limits



- 1–500 rows per run, 50 rows per source page, at most 12 pages.
- Each request has 15 seconds. Temporary 429 and 5xx errors get up to three attempts. All source work stops after 150 seconds.
- Runs use 256 MB and a 300-second timeout. A larger timeout does not add more source work.
- Rows are saved one source page at a time. If the run restarts (for example after Apify moves it to another server, or after a resurrect), it first reads the DOIs already in its Dataset and skips them, so a row is not saved twice and is not charged again. Tested on Apify with a run restarted through the API in the middle of a page and with a resurrected finished run; the platform's own move to another server is covered by automated tests only.
- The source limits count across all processes of a run: 150 seconds of source time, 18 requests and 6 MiB of responses in total. A restarted or manually resurrected run continues with the requests and time it has already used, so it can end `partial` with `SOURCE_BUDGET_EXHAUSTED` or `PAGINATION_BUDGET` sooner than a new run would.
- While a move to another server is in progress, the summary shows `MIGRATING`. The run waits at most 90 seconds in total (shared by all its processes) to be restarted; if it is not, it ends as Failed with `MIGRATION_FAILED` and keeps the saved rows.
- A run uses at most 3 processes (the first start plus two restarts). A 4th start stops at once with `RESTART_LIMIT`, without requests, new rows or row charges; the saved rows are kept.
- A resurrected finished run repeats its last summary and saves and charges no new rows; Apify still charges the start fee for the new start. This includes a run stopped by your spending limit (`partial` `CHARGE_LIMIT`): a resurrect does not continue it, even with a higher limit. To get more records, start a new run with a higher limit. A run stopped before it finished (aborted, or ended with `MIGRATION_FAILED`) continues where it stopped when resurrected, within the shared limits above.

## Sample result

```json
{
  "doi": "10.5281/zenodo.4006472",
  "title": "FYRE Climate: Temperature",
  "creators": [{ "name": "Author, Example", "nameType": null }],
  "publisher": "Zenodo",
  "year": 2020,
  "resourceType": "Dataset",
  "resourceTypeDetail": null,
  "subjects": [{ "subject": "climate" }],
  "license": "cc-by-sa-4.0",
  "rights": [{ "rightsIdentifier": "cc-by-sa-4.0", "rights": "Creative Commons Attribution Share Alike 4.0 International", "rightsUri": "https://creativecommons.org/licenses/by-sa/4.0/legalcode" }],
  "url": "https://zenodo.org/record/4006472",
  "doiUrl": "https://doi.org/10.5281/zenodo.4006472",
  "citationCount": 3,
  "provider": "DataCite",
  "sourceUrl": "https://api.datacite.org/dois/10.5281%2Fzenodo.4006472",
  "fetchedAt": "2026-10-13T04:16:15.078Z",
  "sourceUpdatedAt": "2024-10-06T08:55:31Z",
  "metadataLicense": "CC0-1.0"
}
```

## Similar tools

- [Google Patent Details Scraper](https://cliqtomedia.com/actors/google-patents-scraper/)
- [DOI Metadata & Bibliography Enrichment](https://cliqtomedia.com/actors/doi-bibliography-enrichment/)
- [ClinicalTrials.gov Studies Search & Monitor](https://cliqtomedia.com/actors/clinicaltrials-gov-studies-monitor/)
- [Europe PMC Literature Search & Monitor](https://cliqtomedia.com/actors/europe-pmc-literature-search/)
- [GBIF Biodiversity Occurrence Search](https://cliqtomedia.com/actors/gbif-occurrence-search/)
- [Google Scholar Search Scraper - Citations & PDFs, No Login](https://cliqtomedia.com/actors/google-scholar-scraper/)
