- Fix every
kagglecommand failing withModuleNotFoundError: No module named 'six'when installed alongsidepython-dateutil4.0.0 or newer.kaggle.models.upload_fileimportedsixwithout declaring it, and only got it throughpython-dateutil, which droppedsixin 4.0.0 - Show every column in
kaggle benchmarks leaderboardfor Game Arena leaderboards (kaggle/game-arena,kaggle/chess-text,kaggle/poker-heads-up, ...). Their columns share an empty task slug, so all but the last collapsed into one and the headline score was dropped from--showand--download - Validate bare slugs in
kaggle kernels deleteand require an explicit owner when no username is configured, before confirmation or API access - Clear stale CPU/GPU image pins when pushing a TPU notebook pulled from a CPU/GPU session
- Add
--publictokaggle competitions leaderboard, which returns the public leaderboard from--show. Once a competition has concluded--showreturns the final leaderboard and--downloadreturns the public one, and neither said which - Fix
kaggle datasets create/version(and other uploads) failing on Windows with[Errno 2] No such file or directorywhen the path uses forward slashes, such asC:/datafrom Git Bash: the resumable-upload state file name kept the/separators and pointed into sub-directories that do not exist
- Require
certifi >= 2026.10.19, which drops the compromised emSign/eMudhra root CAs (GHSA-6q48-6c7w-9gw2).kaggleonly pulled in certifi throughrequests, which sets no minimum, so an existing install could keep a certifi that would accept a forged kaggle.com certificate and leak the user's API token to a man-in-the-middle - Reject kernel version numbers in
kaggle kernels deleteinstead of failing with aValueErrorwhen a version is included in<owner>/<kernel>/<version> - Report a 404 from
kaggle competitions submitwith a competition-specific hint on stderr, naming the notebook and version for code submissions. The check never matched a 404, so users got the generic<owner>/<slug>hint instead - Exit non-zero from
kaggle competitions submitwhen the submission file upload fails. It printed "Could not submit to competition" and exited 0, so scripts treated the failed submission as a success - Include the UTC offset (
+00:00) inrefreshAttimestamps displayed bykaggle quota - Recommend installing with
pipxoruvand add troubleshooting guidance forexternally-managed-environmenterrors in the installation docs - Stream
kaggle kernels outputfiles to disk through the same download path as datasets and competitions, with a read timeout, a size check, and resume after a dropped connection. Each file used to be read into memory whole, so a 512 MiB output took about 1.2 GB of RAM, and a dropped connection failed the command and left an empty file behind - Honor the version in
<owner>/<kernel>/<version>forkaggle kernels pull,output,status,filesandlogs, which previously returned 403 forpulland acted on the latest version for the others - Clarify in
--acceleratorhelp and kernels docs thatNvidiaTeslaT4maps to GPU T4 x2 andTpuV5E8maps to TPU v5e-8 - Reject dataset version numbers in
kaggle datasets deleteto prevent unintentionally deleting an entire dataset when targeting a single version - Reject kernel version numbers in
kaggle kernels delete, including whitespace-only ones, to prevent unintentionally deleting an entire kernel when targeting a single version, and stop advertising a version in thekernels deleteandkernels topics listhelp - Show why a submission failed in
kaggle competitions submission <ref>, which already comes back in the API response but was not displayed - Honor
-k/--kernelinkaggle kernels pull, which was ignored when the positional kernel argument was omitted, causing the CLI to fall back to the localkernel-metadata.jsonand pull a different kernel - Refuse to write a
kaggle kernels outputfile whose server-supplied name resolves outside the requested--pathdirectory - Add
--no-runtokaggle kernels pushto save a new version without executing the notebook, the equivalent of Quick Save in the web UI - Honor
--unzipwhen downloading a single file withkaggle datasets download -f, which extracts the file from the zip archive the server wraps large files in, and add--unziptokaggle competitions download - Fix misleading validation error messages in
kaggle competitions submitwhen--kernel,--version, or--fileis missing for a code competition submission - Keep the requested folder when downloading a single file with
kaggle datasets download -forkaggle competitions download -f, instead of writing it to the download root - Report
sluginstead oftitlein thekaggle datasets createerror message when the requested slug is already in use - Prevent HTTP errors during resumed
Rangedownloads from overwriting existing partial download files - Check the HTTP status when downloading
kaggle kernels outputfiles so error responses are not saved as output files - Add
kaggle competitions host-add <comp> -u <user>to grant host access on a competition to a Kaggle user - Suggest a next step on 403/404/429/5xx API errors, report unexpected errors as bugs instead of a traceback (with a new
--debugflag), and list common examples inkaggle --help - Guard tar extraction in
kaggle models instances versions download --untaragainst path traversal - Store resumable upload state in a private per-user directory (
0700) and verify directory ownership and permissions before use - Add
kaggle benchmarks quotato show Model Proxy (AI inference) spend quota, and bumpkagglesdkto>= 0.1.38 - Honor
--untarinkaggle models instances versions downloadwhen the archive is already cached locally - Write kernel log files using UTF-8 in
kaggle kernels outputto avoidUnicodeEncodeErroron Windows - Exclude omitted
overviewandusagefields from the update mask when updating a model instance - Add
kaggle competitions submission-download <id>to download the submitted file for a single submission (requireskagglesdk >= 0.1.36) - Add
deadline(Competition Deadline) to the competition settings command and bumpkagglesdkto>= 0.1.36 - Warn when
kaggle kernels pushrequests a retired accelerator (NvidiaTeslaP100,TpuV38,Tpu1VmV38,TpuV232orTpuV2256), since the server runs the session on a replacement instead. Drop the retired shapes from the docs - Abort dataset, model version, and competition data uploads when a file upload fails instead of skipping the failed file and creating a partial upload
- Use GitHub alerts and fix the
LLMS_AVAILABLEtoken reference in the benchmarks documentation - Add unified
kaggle searchcommand across competitions, datasets, notebooks, models, users, and discussions - Parse duration suffixes (
s,m,h,d,w) inkaggle auth print-access-token --expirationinstead of raising aTypeError - Add
--wait/--poll-intervaltokaggle competitions submitto wait for scoring, and addkaggle competitions submission <ref>to look up a single submission's status and score - Show
N/Ainstead ofFailinkaggle benchmarks leaderboardfor a task result the server returned without a pass/fail or numeric score, which was reported as a failed task
- fix(benchmarks): support owner/task separator in benchmark commands (#1146)
- Feat/competition submissions limits (#1144)
- add competitions solution create/status commands (#1141)
- fix(cli): prevent stale file corruption when resuming downloads (#1142)
- fix(cli): fix collaborator role handling in dataset metadata update (#1138)
- Refactor paging to use Protocols (#1137)
- fix(cli): retry transient connection errors in with_retry (#1132)
- Add Kaggle Secrets documentation (#1131)
- Fix model and owner slug validation (#1134)
- Implement ignore_patterns in uploading (combined) (#1130)
- Refactor parser fixtures (#1118)
- fix(auth): avoid skipping auth for programmatic imports (#1117)
- fix(cli): resumable upload start offset when zero bytes uploaded (#1113)
- refactor(cli): reuse _resolve_projection in dataset_status (#1116)
- update supported model list (#1115)
- fix(cli): handle deleted comments in topics show (#1114)
- Add leaderboard subcommand to kaggle benchmarks (#1112)
- feat(cli): add competitions settings update command (#1104)
- feat(cli): add competitions hosts list command (#1107)
- feat(cli): add competitions settings get command (#1103)
- feat(cli): support --page-token and --page-size, preserve --page (#1098)
- feat(cli): expose userRank in competitions list output (#1094)
- fix(cli): read kernel metadata and source files using UTF-8 in kernels_push (#1093)
- Fix crash when running kaggle command with invalid credentials (#1092)
- feat(cli): add competitions data push command (#1085)
- fix(cli): restore fallback for unknown kernel language/type in kernels_pull (#1091)
- fix(auth): prioritize OAuth credentials over anonymous fallback (#1089)
- feat(cli): add competitions pages update command (#1083)
- fix(cli): stop treating subcommand -v as version flag (#1082)
- fix(cli): honor --unzip for cached dataset downloads (#1086)
- feat(cli): add competitions pages delete command (#1084)
- feat(cli): add competitions init and create commands (#1080)
- docs(competitions): add competition_creation.md for new host commands (#1081)
- feat(cli): add competitions launch command (#1079)
- feat(cli): add competitions pages create command (#1078)
- fix(cli): avoid success message after canceled model deletion (#1077)
- fix(cli): avoid success message after canceled dataset deletion (#1073)
- Update --format help text to reference output_format.md (#1074)
- Update kernel pull docs with version example (#1072)
- Reorganize tests and rename unit_tests.py to backend_tests.py (#1071)
- Add support for formatting projections (#1068)
- Rewrite
kaggle kernels logs --followto use SSE log stream (#999) - Add --format option to CLI commands supporting --csv (#1062)
- Clarify LLMS_AVAILABLE vs. full model set in benchmarks docs (#1061)
- Add kernels topics command (#1056)
- Improve benchmark task error messages in kaggle CLI (#1057)
- Fix dataset metadata column/file description updates and docs (#1055)
- Expand Kaggle CLI skill references (#1054)
- Tag benchmarks token requests with CLI source for analytics (#1050)
- Add machine_shape to kernels_initialize metadata template and docs (#1048)
- Fix 403 for dataset, model, and benchmark topics list (#1051)
- Fix test_benchmarks_cli.py assertions (#1049)
- Add paginated downloads for kernel output files (#1046)
- fix(tests): resolve infinite loop in test_kernels_d_status (#1043)
- Add
kaggle competitions team-submissionscommand (#1036) - Add
kaggle quotacommand for GPU/TPU accelerator quota (#1029) - Support optional kernel version in specifier (#1035)
- feat(benchmarks): Add log and download source files (#1019)
- Fix benchmarks CLI error handling and UX improvements (#1024, #1026, #1028, #1030, #1032, #1037, #1039)
- Fix JSON serialization and download label display (#1038, #1040, #1042)
- Set proper permissions on auth file (#1033)
- Add test runner workflow
- Patch discussions code (#1018)
- fix(benchmarks): normalize provider-prefixed and @-containing model s… (#1016)
- fix(benchmarks): handle EOF when selecting models without -m (#1013)
- fix(benchmarks): dual layer rate limiting (#1014)
- Small changes to improve debugging (#1008)
- feat: add forums commands for browsing Kaggle discussions (#993)
- Add competitions topics CLI command (#982)
- Update kagglesdk version
- Add instructions re kagglesdk (#1000)
- fix(benchmarks cli): bugs and additional features (#997)
- Add submission ref to competition submissions output (#989)
- Add Gemini Agent Skill for Benchmarks CLI (#994)
- (Off Platform SDK) add new models (#991)
- fix (cli): kaggle benchmark tasks (#988)
- Update
kaggle b initto include example and reference (#990) - Update API token page URL (#987)
- Update
b authandb initconfirmations (#986) - Enable & document OAuth authentication flow. (#983)
- Add
--formatflag todatasets statusfor JSON output (#972)
- Add
kaggle benchmarks initcommand (#981) - Fix mypy typing checks (#979)
- feat: Implement kaggle benchmark client (#955)
- Update default Python version in cicd CB config
- Make a list (#978)
- Add
kaggle benchmarks authcommand (#976) - Create Cloud Build script to run linter (#974)
- Add
kaggle kernels logsCLI command (#966) - Fix(benchmarks tasks push): handle 403 (#971)
- Fix: respect Retry-After header on HTTP 429 responses (#938) (#940)
- Update kagglesdk dependency version to 0.1.19 (#970)
- Support
dataset-cover-image.pngupload fordatasets metadata --update(#969) - Add CLI commands for simulation episodes and competition pages (#968)
- Feature(benchmarks): implement Kaggle client (push/run functionality) (#960)
- Add
--sandboxflag tokaggle competitions submitfor sandbox submissions (competition hosts/admins only) (#932) - Optimize large dataset download functionality (#936, s/o katoue)
- Fix 403s and null file handling when listing kernel session output (#951, s/o 4kaws)
- Support updating more types of dataset metadata through
datasets metadata --update:- Expected update frequency, user specified sources (#958)
- Dataset images (#959)
- General Availability release
- Change more "instance" to "variation"
- Update link for the integration test auth instructions (#926)
- Fix string formatting in upgrade nudge message (#928) Thanks PythonicVarun!
- Rename
kaggle-apitokaggle-cli - Allow auth to happen multiple times (#922)
- Add --acc to set accelerator for: kaggle kernels push ... (#907)
- Add automatic retry and resume to download_file (#905) Thanks katoue!
- Restore model validation check (#902)
- Add file pattern matching in output download (#901) Thanks piotr-ginal!
- Add packaging dep (#883)
- Add version checking against server known-version (#880)
- Fix edit error (#876)
- Use kagglesdk from pypi (#875)
- Fix Kaggle access token auth KeyError when KAGGLE_API_TOKEN is unset (#874)
- Changes to build script
- Fix memory exhaustion when downloading large files (#869)
- Add python-dateutil to pyproject.toml dependencies (#866)
- Fix resumable download error (#865)
- Fix dataset version spec (#862)
- Add machine_shape to the metadata of kaggle kernels pull (#856)
- Add pagination options to models
- Add pagination options for submissions (#832)
- Add pagination options to list commands (#815)
- Add canonical aliases for push/pull (#787)
- Add parquet as a filter option (#786)
- Add variations as alt for instances (#784)
- Enable (and rename) synonyms i and v (#782)
- Require Python 3.11.
- Add KernelExecutionType (#775)
- Output docker_image as part of the pull metadata (#773)
- Allow user to specify docker_image during kernel push (#774)
- Add kernel version type to save request (#771)
- Add tests for delete and de-flake (#769)
- Rename "yes" params and make confirmation consistent (#765)
- Fix bug that caused double serialization (#764)
- Add kaggle kernels delete (#762)
- Add test for dataset_delete() and make script more robust (#760)
- Check dataset status before uploading (#759)
- Add kaggle datasets delete (#755)
- Fix calls to download_file() (#752)
- Add type annotations for mypy (#746)
- Use Optional[...] in cases where the proto file does (#744)
- Improve some type hints and fix a bug (#741)
- Reformat everything with black (#737)
- Add more type hints (#736)
- Add type annotations to main file (#735)
- Bulk reformat docstrings (#732)
- Merge envars before sending a request (#729)
- Use PROD if no environment is specified. (#726)
- Add a no response action to auto-close issues (#723)
- Fix a problem in downloading kernel output files.
- Fix a dataset download problem. Datasets that had a license were failing to download.
- Update the documentation to include code competition submit.
Version 1.7.3 was never released. There were errors in versioning on test.pypi.org. For consistency, we decided to jump several version numbers. This is the first release since 1.6.17.
The actual changes are described in 1.7.3.
There was an error in versioning. We went from 1.6.17 to 1.7.3.
- Added the ability to submit to a code competition. Some required arguments have been made optional.
- Added a
--timeoutoption tokaggle kernels pushto limit the run-time to the specified number of seconds. - Removed Swagger. Projects that use
kaggle/api/kaggle_api.pymay be affected. That file is deprecated and will be removed. Most of its functions still work, but those that involve uploading files no longer work. The command-line tool uses a higher-level abstraction for uploading, and client code needs to be converted to use that.
- Added the ability to submit to a code competition. Some required arguments have been made optional.
- Added a
--timeoutoption tokaggle kernels pushto limit the run-time to the specified number of seconds.
- Fix escaped-quote issue in HTTP requests.
- Remove Swagger. No user-visible changes to the command-line tool. However, projects that
use
kaggle/api/kaggle_api.pymay be affected. That file is deprecated and will be removed. Most of its functions still work, but those that involve uploading files no longer work. The command-line tool uses a higher-level abstraction for uploading and client code needs to be converted to use that.
- No changes; release 1.6.16 did not complete.
- No changes; release 1.6.15 isn't usable. We're working on process updates to prevent this from happening again.
- Support XDG base directory specification on Linux
- Disable out-of-date API version warning with -W
- Allow an array of strings in "source" when uploading .ipynb files (thanks to GitHub user mgallifrey for the contribution!)
- Add triton framework for models
- Update model licenses
- No changes; release 1.6.13 isn't usable.
- Add --page-size and --page-token CLI options to all commands that display lists of files.
- Re-release 1.6.11 without the
srcdirectory included in the package.
- Allow unauthenticated usage of "datasets download", "datasets files".
- This will only work after April 8th, 2024. More more details, see: https://www.kaggle.com/discussions/product-feedback/485439
- Allow "help" and "version" to be used for all commands, unauthenticated.
- Fix: "dataset download -f" can accept a specific dataset version.
Repackage of 1.6.8 as a new release, to fix the problematic 1.6.9 release.
- Do not use. Problematic release that causes an error:
ModuleNotFoundError: No module named 'kaggle.api'
- Add "gguf"
- Add "TensorRtLlm" model framework.
- Add "GemmaCpp" and "GGML" model frameworks.
- Add "MaxText" model framework.
- Add "Transformers" model framework.
Release date: 01/11/24
- Add "Flax" and "Pax" model frameworks.
Release date: 01/09/24
- Add "Other" model framework.
Release date: 01/08/24
- Fix dataset/model upload.
Release date: 01/04/24
- Release the pre-release branch with models endpoints.
Release date: 11/22/23
- Add model_instance_type and base_model_instance_id to ModelInstance
Release date: 9/19/23
- Include version_number and version_id in the model-instance-metadata.json file
Release date: 8/02/23
- Add Keras model framework.
Release date: 7/17/23
- Fix dataset download bug with locale
- Resumable uploads
- Retry some failed requests
Release date: 7/07/23
- Resumable uploads
- Retry some failed requests
- Flag
-yto delete model/instance/version without confirmation
Release date: 7/06/23
- Confirmation for deleting a model, instance or version
- Merge changes from 1.5.14 and 1.5.15
Release date: 6/30/23
- Add missing licenses for datasets
- Re-add option to pass dataset with
-d - Download / list files for a specific version of a dataset
- Documentation improvements
Release date: 6/29/23
- Show the full error message from the API
- Improve and fix documentation
- Fix kernel's data sources bug, and add the model data source to push/pull
- Implement resumable downloads
- Fix unreachable code bug
- Make some arguments required
- Add enable_tpu to kernel's push/pull
Release date: 6/12/23
- Add endpoint to get a modelInstance
- Simplify the modelInstanceVersion creation
- Fix Model files zipping
Release date: 6/07/23
- Add Models endpoints
Release date: 2/27/23
- Add ability to add a model to a kernel
Release date: 03/12/21
- No changes
Release date: 03/12/21
- Add support for non-ASCII characters for kernels.
Release date: 11/30/20
- Remove dependency on slugify.
Release date: 10/21/20
- Drop version restriction on urllib3 in setup.py.
Release date: 09/03/20
- No user-facing changes
Release date: 8/31/20
- Add ability to specify the kernel docker image pinning type
- Kernels have internet enabled by default
- Various competitions fixes
Release date: 9/19/19
- Downloading all files for a competition downloads a zip instead of individual files
Release date: 8/30/19
- Add vote count and usability rating to datasets listing
- Add min and max dataset size filters to datasets listing
- Add additional information to dataset metadata API
- Allow updating dataset metdata
Release date: 5/28/19
- Make kernels init more friendly
- Make directories if needed for kernels output
Release date: 2/20/19
- Bump urllib3 version
Release date: 1/28/19
- Don't error on encoding errors when printing tables
- Exit with error code when an exception is caught
Release date: 12/5/18
- Add missing cli option for dataset subfolders
Release date: 12/5/18
- Allow custom ca_cert files
- Support uplodaing datasets with subfolders
- Fix kaggle.json permissions warning
Release date: 10/19/18
- Update API to work with new competitions submissions backend. This change will force old API clients to update.
- Update error message when config file is not found.
Release date: 8/28/18
- Fix host
Release date: 8/28/18
- Make dataset version
-pargument actually optinal - Don't require the
resourcesfield when updating a dataset - Don't automatically unzip datasets
- Add an unzip option for dataset downloads
- Add validation for kernel title and slug length
- Give a warning if kernel title does not resolve to the specified slug
- Show kernel version number after pushing
- Respect
code_filevalue in kernel metadata when pulling kernels
Release date: 8/7/18
- Allow setting config values through environmental variables
Release date: 8/1/18
- Add error if dataset metadata repeats files
Release date: 7/30/18
- Fix issue with reading kernel metadata
Release date: 7/30/18
- Add more competitions list options
- Add more datasets list options
- Add a couple more fields to kernels list display
- Add support for kernel and dataset ID's
- Allow generating metadata for an existing dataset
- Fix issue with downloading from datasets whose titles don't match their slugs
- Use kernel slug as filename for kernel output
- Make upload and download directory default to current working directory
- Use a default username on downloading kernel or dataset data if none is specified
- Support extended data types on datasets
- Stop requiring
-c,-d, and-karguments - Don't require
resourcesfield in dataset metadata
Release date: 7/20/18
- Validate dataset slug and title length before uploading
- Fix issue with dataset metadata file detection
- Cleaned up KeyboardInterrupt errors
- Validate all specified files in a dataset exist prior to uploading
- Make ApiExceptions (slightly) less ugly
Release date: 7/20/18
- Add python 3.7 compatibility
Release date: 7/19/18
- Add kernels support ** List and search kernels ** Push kernels code ** Pull kernels code ** Download kernel output ** Get latest kernel run status
Release date: 6/25/18
- Allow setting a
'KAGGLE_CONFIG_DIR'environmental token - Return metadata file after creating
- Alert users that dataset creation takes time
- Fix other invalid tags check
Release date: 6/12/18
- Improve version check
- Fix invalid tags check
Release date: 6/10/18
- Restrict urllib3's version due to requests dependency problem
Release date: 6/9/18
- Fix bug with competitions submissions.
Release date: 6/8/18
- Improve error message for closed competitions
- Remove stacktrace on errors
- Print any invalid tags
- Warn if there are no competition files to download
- Implement resumable uploads
- Add subtitle metadata to dataset uploads
- Add progress bars for uploads and downloads
- Add command for downloading competitions leaderboard
- Add command for viewing the top of the leaderboard
Release date: 5/18/18
- Add option to delete all previous dataset versions
Release date: 5/18/18
- Add aliases for subcommands (ex.
kaggle cis the same thing askaggle competitions) - Add version command
- Show full download path for files
- Remove file size limitation from uploads
Release date: 5/7/18
- Give the option to add tags to datasets.
- Known limitiation - you cannot delete tags through the API. Those changes must be done through the website.
Release date: 5/4/18
- Fix schema declaration in dataset resources
Release date: 4/30/18
- Rename
columnstofields
Release date: 4/26/18
- Fix UnicodeEncodeError for certain datasets
- Include Swagger yaml and config files
Release date: 4/24/18
- Fix bug with column metadata
Release date: 4/24/18
- Give the option to specify a schema for uploaded datasets
- Give the option to set the dataset description during updates
Release date: 4/19/18
- Give the option to set dataset file descriptions
- Give the option to not convert tabular datasets to csv
Release date: 4/18/18
- Give the option to set the dataset description during creation
Release date: 4/17/18
- Issue #5 - Reformat code for consistency and to align with Google's python coding style. Most of the changes are cosmetic, but most cases of
camelCasingother than class names have been changed tosnake_case. This is a breaking change for anyone directly using the python code rather than simply using the command line.