Kaggle Datasets Scraper
Pricing
from $1.40 / 1,000 dataset metadata
Kaggle Datasets Scraper
Search the public Kaggle dataset catalogue with one phrase. Save source-linked metadata for matching datasets, with optional full descriptions and version history.
Pricing
from $1.40 / 1,000 dataset metadata
Rating
0.0
(0)
Developer
Maxime Dupré
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
9 days ago
Last modified
Categories
Share
📚 Find Kaggle datasets for analysis and machine learning
Data analysts, students, and machine-learning teams can search Kaggle's public dataset catalogue with one phrase. Get source-linked metadata, owners, licenses, sizes, topics, and usage signals so you can compare datasets before you use them.
This Actor returns metadata and source links. It does not download, transform, or store the actual Kaggle files.
- Find public catalogue entries for free datasets and review their source links and licenses.
- Explore open datasets by phrase, then compare their published metadata before use.
- Use CSV file download to find Kaggle datasets with CSV file metadata before downloading from the source page.
- Use Kaggle Datasets Download to collect source links for datasets you may download after review.
- Find Free Datasets For Data Analysis for analysis projects and filter matches by size, downloads, or topics.
- Find Free Datasets For Machine Learning and compare owners, tags, licenses, and usage signals.
🔎 Kaggle metadata in each saved row
Each saved row describes one matching public Kaggle dataset. It keeps the source page and the search phrase that found it, then adds identity, ownership, licensing, file, size, topic, activity, quality, and time fields.
When includeDetails is on, the row also includes the full source description and version history. Values that Kaggle does not publish can be absent from a row.
Main value
Use source-linked metadata to compare public Kaggle datasets before opening or downloading files from Kaggle.
▶️ Run a focused Kaggle dataset search
Enter one non-empty phrase, choose any filters, and start the Actor. It reads current public Kaggle catalogue data at run time and can continue through all available results until the source is exhausted when no result limit is set.
Run flow
- Enter one phrase in
searchQuery. - Optionally choose a sort order, file format, license, topic tag IDs, size range, or minimum download count.
- Set
maxItems, or leave it empty to return all available results until the source is exhausted. - Turn on
includeDetailswhen you need full descriptions and version history. - Open the
datasetUrloutput link to read the saved rows in the Apify dataset.
⚙️ Input
The form accepts one required search phrase. All other fields are optional.
Input fields
| Field | Type | What it does |
|---|---|---|
searchQuery | string, required | One non-empty phrase used to find public Kaggle datasets. |
sortBy | string | Orders matches by relevance, popularity, activity, or recency. The prefilled value is popularity. |
fileType | string | Filters by csv, json, or sql. Leave it empty to include every format. |
license | string | Filters by cc0, cc-by, cc-by-sa, or other. Leave it empty to include every license. |
categoryIds | array of strings | Adds one or more numeric Kaggle topic tag IDs. Leave the list empty to include every topic. |
minSize | integer | Keeps datasets at least this large in bytes. Leave it empty to use no minimum size. |
maxSize | integer | Keeps datasets no larger than this size in bytes. Leave it empty to use no maximum size. |
minDownloadCount | integer | After Kaggle finds matches, keeps only datasets with at least this many downloads. Leave it empty to allow any count. |
maxItems | integer | Sets how many matching datasets to return. It is prefilled with 10; leave it empty to return all available results until the source is exhausted. |
includeDetails | boolean | Adds each dataset's full description and version history when true. The default is false. |
Example input
This is the public input from a successful current-beta default-input run:
{"searchQuery": "machine learning","sortBy": "popularity","maxItems": 10,"includeDetails": false}
🧾 Output
The Actor returns a datasetUrl link and saves matching dataset rows in the default Apify dataset. The rows have two materially different shapes: standard metadata, or enriched metadata when includeDetails is enabled. Optional source fields can be absent when Kaggle does not publish them.
Run output
| Field | Type | What it does |
|---|---|---|
datasetUrl | string URL | Links to the Apify dataset that stores this run's matching dataset records. |
Standard metadata row
| Field | Type | What it does |
|---|---|---|
title | string | Dataset title shown on Kaggle. |
datasetSlug | string | Stable Kaggle dataset slug, such as owner/dataset-name. |
url | string URL | Public Kaggle page for the dataset. |
searchQuery | string | Search phrase that found this dataset. |
owner | object | Kaggle account that owns the dataset. |
owner.username | string | Owner's Kaggle username. |
owner.displayName | string | Owner's public display name when shown. |
creator | object | Kaggle account credited with creating the dataset. |
creator.username | string | Creator's Kaggle username. |
creator.displayName | string | Creator's public display name when shown. |
license | string | License listed for the dataset on Kaggle. |
totalBytes | integer | Combined size of the dataset files in bytes. |
fileCount | integer | Number of files in the dataset when shown by Kaggle. |
fileFormats | array of strings | File formats found in the dataset when shown by Kaggle. |
downloadCount | integer | Number of downloads when shown by Kaggle. |
viewCount | integer | Number of views of the dataset page when shown by Kaggle. |
voteCount | integer | Number of votes for the dataset when shown by Kaggle. |
publicNotebookCount | integer | Number of public notebooks that use the dataset when shown by Kaggle. |
usabilityRating | number | Kaggle usability rating from 0 to 1 when available. |
tags | array of strings | Kaggle topic tags linked to the dataset. |
categories | array of strings | Dataset categories supplied by Kaggle when available. |
lastUpdatedAt | date-time string | Time the dataset was last updated when available. |
createdAt | date-time string | Time the dataset was created when available. |
currentVersionNumber | integer | Current Kaggle dataset version when available. |
Example standard row
This is an unshortened row from a successful current-beta default-input run:
{"title": "Credit Card Fraud Detection","datasetSlug": "creditcardfraud","url": "https://www.kaggle.com/datasets/mlg-ulb/creditcardfraud","searchQuery": "machine learning","owner": {"username": "mlg-ulb","displayName": "Machine Learning Group - ULB"},"creator": {"username": "timoboz","displayName": "Timo Bozsolik"},"license": "DbCL","tags": ["crime","finance"],"categories": ["crime","finance"],"fileCount": 1,"fileFormats": ["csv"],"totalBytes": 69155672,"downloadCount": 1179300,"viewCount": 12796399,"voteCount": 13406,"publicNotebookCount": 6128,"currentVersionNumber": 3,"usabilityRating": 0.85294116,"lastUpdatedAt": "2018-03-23T01:17:27.913Z","createdAt": "2016-11-03T13:21:36.757Z"}
Enriched metadata row
This shape includes every standard field plus the full description and version history.
| Field | Type | What it does |
|---|---|---|
title | string | Dataset title shown on Kaggle. |
datasetSlug | string | Stable Kaggle dataset slug, such as owner/dataset-name. |
url | string URL | Public Kaggle page for the dataset. |
searchQuery | string | Search phrase that found this dataset. |
owner | object | Kaggle account that owns the dataset. |
owner.username | string | Owner's Kaggle username. |
owner.displayName | string | Owner's public display name when shown. |
creator | object | Kaggle account credited with creating the dataset. |
creator.username | string | Creator's Kaggle username. |
creator.displayName | string | Creator's public display name when shown. |
license | string | License listed for the dataset on Kaggle. |
totalBytes | integer | Combined size of the dataset files in bytes. |
fileCount | integer | Number of files in the dataset when shown by Kaggle. |
fileFormats | array of strings | File formats found in the dataset when shown by Kaggle. |
downloadCount | integer | Number of downloads when shown by Kaggle. |
viewCount | integer | Number of views of the dataset page when shown by Kaggle. |
voteCount | integer | Number of votes for the dataset when shown by Kaggle. |
publicNotebookCount | integer | Number of public notebooks that use the dataset when shown by Kaggle. |
usabilityRating | number | Kaggle usability rating from 0 to 1 when available. |
tags | array of strings | Kaggle topic tags linked to the dataset. |
categories | array of strings | Dataset categories supplied by Kaggle when available. |
lastUpdatedAt | date-time string | Time the dataset was last updated when available. |
createdAt | date-time string | Time the dataset was created when available. |
currentVersionNumber | integer | Current Kaggle dataset version when available. |
description | string | Full dataset description when full details are requested. |
versionHistory | array of objects | Version history when full details are requested. |
versionHistory[].versionNumber | integer | Kaggle version number. |
versionHistory[].updatedAt | date-time string | Time that version was updated. |
versionHistory[].totalBytes | integer | Combined size of that version's files when shown by Kaggle. |
versionHistory[].fileCount | integer | Number of files in that version when shown by Kaggle. |
Example enriched row
This is an unshortened row from a successful current-beta run with details enabled:
{"title": "Breast Cancer Wisconsin (Diagnostic) Data Set","datasetSlug": "breast-cancer-wisconsin-data","url": "https://www.kaggle.com/datasets/uciml/breast-cancer-wisconsin-data","searchQuery": "machine learning","owner": {"username": "uciml","displayName": "UCI Machine Learning"},"creator": {"username": "overratedgman","displayName": "Ovsen"},"license": "CC BY-NC-SA 4.0","tags": ["cancer","healthcare"],"categories": ["healthcare","cancer"],"fileCount": 1,"fileFormats": ["csv"],"totalBytes": 49796,"downloadCount": 554230,"viewCount": 2620709,"voteCount": 4076,"publicNotebookCount": 3914,"currentVersionNumber": 2,"usabilityRating": 0.85294116,"lastUpdatedAt": "2016-09-25T10:49:04.067Z","createdAt": "2016-09-19T20:27:05.273Z","description": "Features are computed from a digitized image of a fine needle aspirate (FNA) of a breast mass. They describe characteristics of the cell nuclei present in the image. \nn the 3-dimensional space is that described in: [K. P. Bennett and O. L. Mangasarian: \"Robust Linear Programming Discrimination of Two Linearly Inseparable Sets\", Optimization Methods and Software 1, 1992, 23-34]. \n\nThis database is also available through the UW CS ftp server: \nftp ftp.cs.wisc.edu \ncd math-prog/cpo-dataset/machine-learn/WDBC/\n\nAlso can be found on UCI Machine Learning Repository: https://archive.ics.uci.edu/ml/datasets/Breast+Cancer+Wisconsin+%28Diagnostic%29\n\nAttribute Information:\n\n1) ID number \n2) Diagnosis (M = malignant, B = benign) \n3-32) \n\nTen real-valued features are computed for each cell nucleus: \n\na) radius (mean of distances from center to points on the perimeter) \nb) texture (standard deviation of gray-scale values) \nc) perimeter \nd) area \ne) smoothness (local variation in radius lengths) \nf) compactness (perimeter^2 / area - 1.0) \ng) concavity (severity of concave portions of the contour) \nh) concave points (number of concave portions of the contour) \ni) symmetry \nj) fractal dimension (\"coastline approximation\" - 1)\n\nThe mean, standard error and \"worst\" or largest (mean of the three\nlargest values) of these features were computed for each image,\nresulting in 30 features. For instance, field 3 is Mean Radius, field\n13 is Radius SE, field 23 is Worst Radius.\n\nAll feature values are recoded with four significant digits.\n\nMissing attribute values: none\n\nClass distribution: 357 benign, 212 malignant","versionHistory": [{"versionNumber": 2,"updatedAt": "2016-09-25T10:49:04.067Z"},{"versionNumber": 1,"updatedAt": "2016-09-19T20:27:05.273Z"}]}
💳 Pricing
Charged event
You pay once for each public Kaggle dataset whose metadata is saved. The exact tiered rate depends on your Apify plan and is shown in the pricing panel.
| Apify tier | Price per saved dataset's metadata |
|---|---|
| FREE | $0.0018 |
| BRONZE | $0.0016 |
| SILVER | $0.0015 |
| GOLD | $0.0014 |
| PLATINUM | $0.00135 |
| DIAMOND | $0.00125 |
What counts
The configured paid event covers saved metadata, not the Kaggle file itself. There is no separate Actor-start event in this pricing setup.
🔌 Integrations
Apify access
Read the returned dataset through the datasetUrl output field or the Apify API. Use the saved rows in your analysis tool or data workflow.
Video guide
❓ FAQ
Can one run use more than one search phrase?
No. Each run accepts one non-empty searchQuery. Start another run for a different phrase.
Does this download Kaggle dataset files?
No. It returns public metadata and the Kaggle source URL. Open the source page to review or download a file yourself.
What does Include full descriptions and version history do?
When it is true, matching rows can include the full Kaggle description and version history. Leave it false when you only need catalogue metadata.
What happens when I leave Maximum datasets to return empty?
The Actor returns all available results until the source is exhausted. Use a number when you want to limit the amount of work returned by a run.
Can I filter by file format, license, topic, size, or downloads?
Yes. Use the matching input fields to filter file format, license group, Kaggle topic tag IDs, byte size, or minimum download count.
Do I need a Kaggle login or API key?
No. The Actor reads public Kaggle dataset metadata through credential-free public access.
Is this a Google dataset search?
No. It searches Kaggle's public dataset catalogue. It does not search Google datasets or another catalogue.
📝 Changelog
0.0: Initial release
🆘 Support
For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡
🔗 Related Actors
- arXiv Papers Scraper — Search public research papers to compare datasets with related machine-learning work.
- World Bank Projects Scraper — Find public project and indicator data for broader data research.
- Kaggle Datasets Scraper — Extract additional Kaggle metadata when you need fields beyond this Actor's catalogue rows.
- Kaggle Datasets Scraper - Dataset Search Data — Compare Kaggle search titles, owners, scores, and URLs in a lighter search export.
- Kaggle Scraper — Explore Kaggle datasets alongside other public Kaggle entities when that wider scope fits.
Made with ❤️ by Maxime Dupré