Kaggle Datasets Scraper avatar

Kaggle Datasets Scraper

Pricing

from $1.40 / 1,000 dataset metadata

Go to Apify Store
Kaggle Datasets Scraper

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é

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

9 days ago

Last modified

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.

🔎 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.

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

  1. Enter one phrase in searchQuery.
  2. Optionally choose a sort order, file format, license, topic tag IDs, size range, or minimum download count.
  3. Set maxItems, or leave it empty to return all available results until the source is exhausted.
  4. Turn on includeDetails when you need full descriptions and version history.
  5. Open the datasetUrl output 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

FieldTypeWhat it does
searchQuerystring, requiredOne non-empty phrase used to find public Kaggle datasets.
sortBystringOrders matches by relevance, popularity, activity, or recency. The prefilled value is popularity.
fileTypestringFilters by csv, json, or sql. Leave it empty to include every format.
licensestringFilters by cc0, cc-by, cc-by-sa, or other. Leave it empty to include every license.
categoryIdsarray of stringsAdds one or more numeric Kaggle topic tag IDs. Leave the list empty to include every topic.
minSizeintegerKeeps datasets at least this large in bytes. Leave it empty to use no minimum size.
maxSizeintegerKeeps datasets no larger than this size in bytes. Leave it empty to use no maximum size.
minDownloadCountintegerAfter Kaggle finds matches, keeps only datasets with at least this many downloads. Leave it empty to allow any count.
maxItemsintegerSets how many matching datasets to return. It is prefilled with 10; leave it empty to return all available results until the source is exhausted.
includeDetailsbooleanAdds 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

FieldTypeWhat it does
datasetUrlstring URLLinks to the Apify dataset that stores this run's matching dataset records.

Standard metadata row

FieldTypeWhat it does
titlestringDataset title shown on Kaggle.
datasetSlugstringStable Kaggle dataset slug, such as owner/dataset-name.
urlstring URLPublic Kaggle page for the dataset.
searchQuerystringSearch phrase that found this dataset.
ownerobjectKaggle account that owns the dataset.
owner.usernamestringOwner's Kaggle username.
owner.displayNamestringOwner's public display name when shown.
creatorobjectKaggle account credited with creating the dataset.
creator.usernamestringCreator's Kaggle username.
creator.displayNamestringCreator's public display name when shown.
licensestringLicense listed for the dataset on Kaggle.
totalBytesintegerCombined size of the dataset files in bytes.
fileCountintegerNumber of files in the dataset when shown by Kaggle.
fileFormatsarray of stringsFile formats found in the dataset when shown by Kaggle.
downloadCountintegerNumber of downloads when shown by Kaggle.
viewCountintegerNumber of views of the dataset page when shown by Kaggle.
voteCountintegerNumber of votes for the dataset when shown by Kaggle.
publicNotebookCountintegerNumber of public notebooks that use the dataset when shown by Kaggle.
usabilityRatingnumberKaggle usability rating from 0 to 1 when available.
tagsarray of stringsKaggle topic tags linked to the dataset.
categoriesarray of stringsDataset categories supplied by Kaggle when available.
lastUpdatedAtdate-time stringTime the dataset was last updated when available.
createdAtdate-time stringTime the dataset was created when available.
currentVersionNumberintegerCurrent 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.

FieldTypeWhat it does
titlestringDataset title shown on Kaggle.
datasetSlugstringStable Kaggle dataset slug, such as owner/dataset-name.
urlstring URLPublic Kaggle page for the dataset.
searchQuerystringSearch phrase that found this dataset.
ownerobjectKaggle account that owns the dataset.
owner.usernamestringOwner's Kaggle username.
owner.displayNamestringOwner's public display name when shown.
creatorobjectKaggle account credited with creating the dataset.
creator.usernamestringCreator's Kaggle username.
creator.displayNamestringCreator's public display name when shown.
licensestringLicense listed for the dataset on Kaggle.
totalBytesintegerCombined size of the dataset files in bytes.
fileCountintegerNumber of files in the dataset when shown by Kaggle.
fileFormatsarray of stringsFile formats found in the dataset when shown by Kaggle.
downloadCountintegerNumber of downloads when shown by Kaggle.
viewCountintegerNumber of views of the dataset page when shown by Kaggle.
voteCountintegerNumber of votes for the dataset when shown by Kaggle.
publicNotebookCountintegerNumber of public notebooks that use the dataset when shown by Kaggle.
usabilityRatingnumberKaggle usability rating from 0 to 1 when available.
tagsarray of stringsKaggle topic tags linked to the dataset.
categoriesarray of stringsDataset categories supplied by Kaggle when available.
lastUpdatedAtdate-time stringTime the dataset was last updated when available.
createdAtdate-time stringTime the dataset was created when available.
currentVersionNumberintegerCurrent Kaggle dataset version when available.
descriptionstringFull dataset description when full details are requested.
versionHistoryarray of objectsVersion history when full details are requested.
versionHistory[].versionNumberintegerKaggle version number.
versionHistory[].updatedAtdate-time stringTime that version was updated.
versionHistory[].totalBytesintegerCombined size of that version's files when shown by Kaggle.
versionHistory[].fileCountintegerNumber 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 tierPrice 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.

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 🫡

Made with ❤️ by Maxime Dupré