Crates.io
Rust crate metadata from crates.io
crates.io JSON API for Rust package versions, downloads and dependencies. Read endpoints are keyless — ideal for build tools and dependency dashboards.
We probe a documented GET and expect 2xx JSON — full uptime and health score. Open provider docs ↗
On our probe schedule. Uptime charts appear after the first check lands.
GET https://crates.io/api/v1/crates/serde
{
"crate": {
"id": "serde",
"name": "serde",
"updated_at": "2025-09-27T16:51:35.265429Z",
"versions": [
1748414,
1746112
],
"keywords": [
"no_std",
"serde"
],
"categories": [
"encoding",
"no-std"
],
"badges": [],
"created_at": "2014-12-05T20:20:39.487502Z"
},
"versions": [
{
"id": 1748414,
"crate": "serde",
"num": "1.0.228",
"dl_path": "/api/v1/crates/serde/1.0.228/download",
"readme_path": "/api/v1/crates/serde/1.0.228/readme",
"updated_at": "2025-09-27T16:51:35.265429Z",
"created_at": "2025-09-27T16:51:35.265429Z",
"downloads": 324823921
},
{
"id": 1746112,
"crate": "serde",
"num": "1.0.227",
"dl_path": "/api/v1/crates/serde/1.0.227/download",
"readme_path": "/api/v1/crates/serde/1.0.227/readme",
"updated_at": "2025-09-25T23:43:08.742811Z",
"created_at": "2025-09-25T23:43:08.742811Z",
"downloads": 1665506
}
],
"keywords": [
{
"id": "no_std",
"keyword": "no_std",
"created_at": "2015-06-20T04:34:42.753830Z",
"crates_cnt": 2222
},
{
"id": "serde",
"keyword": "serde",
"created_at": "2015-08-10T17:10:09.021436Z",
"crates_cnt": 1424
}
],
"categories": [
{
"id": "encoding",
"category": "Encoding",
"slug": "encoding",
"description": "Encoding and/or decoding data from one data format to another.",
"created_at": "2017-01-17T19:13:05.112025Z",
"crates_cnt": 5871
},
{
"id": "no-std",
"category": "No standard library",
"slug": "no-std",
"description": "Crates that are able to function without the Rust standard library.",
"created_at": "2017-02-10T01:52:09.447906Z",
"crates_cnt": 11553
}
]
}curl "https://crates.io/api/v1/crates/serde"const res = await fetch("https://crates.io/api/v1/crates/serde");
const data = await res.json();
console.log(data);import requests
res = requests.get("https://crates.io/api/v1/crates/serde")
print(res.json())/crates/serdePROBEDRust crate metadata from crates.io
/cratesCrates — documented GET route.
/crates/1Crates details by ID (example: 1).
/crates?limit=10Crates — documented GET route.
/crates/search?q=testSearch by query parameters.
We probe a documented GET and expect 2xx JSON — full uptime and health score. Export includes every documented route below.
Not tracked yet. Shape-change history starts once this API joins our probe schedule.
Crates.io: common questions
Is Crates.io free to use?
Yes — Crates.io is a free developer tools API. Free tier: Free — limits not published. Whether the free tier allows commercial use is unclear — check the provider docs.
Does Crates.io need an API key?
No — Crates.io needs no API key or signup. You can call it straight away; rate limits still apply (Unpublished).
Can I call Crates.io from the browser?
Yes — Crates.io returns CORS headers over HTTPS, so front-end code can fetch it directly with no backend proxy. Use the fetch snippet on this page, or hit "Run live" to try it now.
Is Crates.io up right now?
Crates.io is catalogued but not yet on our probe schedule, so we don't publish a live status for it. Check the provider's own status page or docs for its current state.