Know of an official OpenAPI document? Contribute it →
For Agents
Drive Kaggle competitions, datasets, notebooks (kernels), and models from code: list, download, submit, push, and pull resources via 25 REST endpoints.
Use for: I need to download a Kaggle dataset for training, Submit a predictions file to a competition, Push my notebook to Kaggle, Get the leaderboard for a competition
Not supported: Does not handle Kaggle Discussions, user account administration, or paid model hosting - use for competition, dataset, kernel, and model resource management only.
Jentic publishes the only available OpenAPI specification for Kaggle API, keeping it validated and agent-ready. The Kaggle API gives programmatic access to Kaggle competitions, datasets, notebooks (kernels), and models. Across 25 endpoints it lists and downloads competition data and submissions, manages datasets and dataset versions, pushes and pulls kernels, retrieves kernel outputs and execution status, and creates or updates models. Authentication uses HTTP Basic with the Kaggle username and API key, the same credentials produced by the official Kaggle CLI.
Install Jentic One Beta
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the Kaggle API, or any other public or private API you need. You set the rules, the agent never sees your credentials, and every call is logged.
Two steps, two machines. Install the instance in a safe environment, then register your agent from wherever it runs.
Step 1: Jentic One Host machine
# On the machine that will host your Jentic One instance:
curl -fsSL "https://jentic.com/install.sh?src=apis&api=%2Fapis%2Fkaggle.com%2Fkaggle" | shStep 2: Agent machine
# On the machine where your agent runs (keep this separate from the instance):
curl -fsSL "https://jentic.com/install.sh?src=apis&api=%2Fapis%2Fkaggle.com%2Fkaggle" | sh
jentic register # connects your agent to your Jentic One instanceJentic One is in public beta. The setup above keeps your agent separate from the instance, which is what you want before using real credentials: an agent running as the same OS user as Jentic One can read its stored keys directly. Just evaluating? A single local install is fine to start. See the secure deployment guide for the tiers.
What an agent can do with Kaggle API.
List and download competition data files and submit predictions through /competitions/* endpoints
View and download competition leaderboards via /competitions/{id}/leaderboard/view and /download
List, download, create, version, and delete datasets through /datasets/* endpoints
Push and pull kernels (notebooks), inspect their execution status, and retrieve their outputs via /kernels/* endpoints
List, retrieve, create, update, and delete models through /models/* endpoints
Inspect dataset metadata before downloading large archives with GET /datasets/view/{ownerSlug}/{datasetSlug}
Patterns agents use Kaggle API for, with concrete tasks.
★ Automated Competition Submission Loop
ML engineers training models for an active competition need a tight loop that submits the latest predictions and reads the resulting leaderboard position. POST /competitions/submissions/submit/{id} uploads the predictions file and GET /competitions/{id}/leaderboard/view returns the current ranking. This replaces dragging files into the web UI on every iteration.
After each training run, call POST /competitions/submissions/submit/{competition_id} with the predictions file and GET /competitions/{competition_id}/leaderboard/view to log the new rank.
Dataset Versioning Pipeline
Teams publishing reusable datasets on Kaggle script the version bump rather than uploading manually. POST /datasets/create/version/{ownerSlug}/{datasetSlug} pushes a new version with a changelog message, while GET /datasets/view/{ownerSlug}/{datasetSlug} confirms metadata. CI then validates schema and triggers downstream notebooks.
After data validation passes, call POST /datasets/create/version/{ownerSlug}/{datasetSlug} with the new files and a versionNotes message.
Kernel-Based Reproducible Reports
Analytics teams using Kaggle kernels (notebooks) for shareable reports use POST /kernels/push to upload a new version, GET /kernels/status/{ownerSlug}/{kernelSlug} to wait for execution, and GET /kernels/output/{ownerSlug}/{kernelSlug} to retrieve charts and CSVs once the run completes. This keeps the reporting cycle reproducible and auditable.
Call POST /kernels/push with the notebook payload, poll GET /kernels/status/{ownerSlug}/{kernelSlug} until status is 'complete', then call GET /kernels/output/{ownerSlug}/{kernelSlug}.
Agent-Driven Competition Research
An AI assistant exploring a problem space can list competitions, pull a relevant dataset, and start a notebook run via Jentic. The agent searches 'list Kaggle competitions', loads /competitions/list, and chains to /datasets/download/{ownerSlug}/{datasetSlug} for the underlying data. This puts a full ML research kickoff behind a chat prompt.
Through Jentic, search 'list active Kaggle competitions', call GET /competitions/list, pick a relevant competition, then call GET /competitions/data/list/{competition_id}.
25 endpoints — jentic publishes the only available openapi specification for kaggle api, keeping it validated and agent-ready.
METHOD
PATH
DESCRIPTION
/competitions/list
List competitions
/competitions/submissions/submit/{id}
Submit predictions to a competition
/competitions/{id}/leaderboard/view
View competition leaderboard
/datasets/download/{ownerSlug}/{datasetSlug}
Download a dataset
/datasets/create/new
Create a new dataset
/datasets/create/version/{ownerSlug}/{datasetSlug}
Create a dataset version
/kernels/push
Push a kernel
/kernels/status/{ownerSlug}/{kernelSlug}
Get kernel execution status
/competitions/list
List competitions
/competitions/submissions/submit/{id}
Submit predictions to a competition
/competitions/{id}/leaderboard/view
View competition leaderboard
/datasets/download/{ownerSlug}/{datasetSlug}
Download a dataset
/datasets/create/new
Create a new dataset
/datasets/create/version/{ownerSlug}/{datasetSlug}
Create a dataset version
/kernels/push
Push a kernel
/kernels/status/{ownerSlug}/{kernelSlug}
Get kernel execution status
What agents get from Jentic-routed access to this vendor.
Setup
Wiring the Kaggle API by hand means learning its basic auth from username and key, navigating competition, dataset, kernel, and model surfaces, and threading owner and dataset slugs through each call yourself. Through Jentic you install once, import the Kaggle API from the API Directory, store the credentials once, and your agent calls it.
Permission scoping
Kaggle puts the owner and dataset slugs in the URL path (/datasets/download/{ownerSlug}/{datasetSlug}), so a rule can pin your agent to one dataset: it can download or version that dataset and nothing else. You choose the operations it may call, so ones like submitting to a competition or pushing a kernel are not included unless you add them.
Credential isolation
Your Kaggle username and API key are stored once, encrypted, by your own Jentic One instance and injected at execution time. They never enter the agent's prompt, logs, or context.
Intent-based discovery
Agents search Jentic by intent such as 'download a Kaggle dataset' or 'submit predictions to a competition', and Jentic returns the matching Kaggle operation with its input schema so the agent calls the right endpoint without browsing the reference docs.
Alternatives and complements available in the Jentic catalogue.
Specific to using Kaggle API through Jentic.
Why is there no official OpenAPI spec for Kaggle API?
Kaggle does not publish an OpenAPI specification (the official integration is the Kaggle CLI). Jentic generates and maintains this spec so that AI agents and developers can call Kaggle API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.
What authentication does the Kaggle API use?
The Kaggle API uses HTTP Basic authentication with your Kaggle username and API key (the same credentials downloaded from the Account page as kaggle.json). Through Jentic these credentials sit in the encrypted vault and are injected at request time.
Can I submit predictions to a competition with the Kaggle API?
Yes. POST /competitions/submissions/submit/{id} uploads a predictions file to the named competition, and GET /competitions/submissions/list/{id} lists prior submissions. The leaderboard is then available via GET /competitions/{id}/leaderboard/view.
What are the rate limits for the Kaggle API?
Kaggle does not document strict per-endpoint rate limits in the spec but throttles abusive usage. Treat 429 responses with exponential backoff and avoid tight polling on /kernels/status/{ownerSlug}/{kernelSlug}.
How do I download a Kaggle dataset through Jentic?
Search Jentic for 'download a Kaggle dataset', load GET /datasets/download/{ownerSlug}/{datasetSlug}, and execute with the owner and dataset slugs. Jentic resolves Basic auth and streams the dataset archive.
Can I push and run a notebook (kernel) on Kaggle?
Yes. POST /kernels/push uploads a kernel, GET /kernels/status/{ownerSlug}/{kernelSlug} reports execution status, and GET /kernels/output/{ownerSlug}/{kernelSlug} returns the produced files once the run completes.
Can I limit what my agent is allowed to do with the Kaggle API?
Yes. Because you run Jentic One yourself, your own rules decide which Kaggle operations and credentials the agent may use. Since Kaggle puts the owner and dataset slugs in the URL path, such as GET /datasets/download/{ownerSlug}/{datasetSlug}, you can pin the agent to a single dataset so it downloads or versions that one and nothing else. You also choose the exact operations it may call, so higher-impact actions like POST /competitions/submissions/submit/{id} or POST /kernels/push stay off unless you add them.
GET STARTED