crates.io Scraper
Pricing
from $2.50 / 1,000 results
crates.io Scraper
Scrape Rust crates from crates.io by search term, crate name, or search, crate, category, keyword, user and team URLs: versions, licenses, repositories, keywords, categories, all-time and 90-day downloads, MSRV, size, dependents and owners. No login, no API key.
Pricing
from $2.50 / 1,000 results
Rating
0.0
(0)
Developer
Anyx Solutions
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Security
Limited permissionsShare

crates.io Scraper
Search crates.io or list any category, keyword, user or team, and get each Rust crate's version, metadata, downloads, dependents and owners as clean JSON.
crates.io is the Rust community's package registry, home to every public Rust library and tool. This Actor scrapes Rust crates from crates.io by search term, crate name, or search, crate, category, keyword, user and team URLs, and returns each crate's current version, description, license, homepage, repository and documentation links, keywords, categories, all-time and 90-day downloads, minimum supported Rust version (MSRV), edition, package size, release dates, yanked status, how many crates depend on it, and optionally its owners. Search the way you would on crates.io, or paste the pages you already have. There is no login, no API key, and no proxy to configure. Built for developer-tool market research, open-source due diligence, dependency and license audits, lead generation among crate maintainers, and Rust ecosystem tracking.
⚡ Quick start
{"searchTerms": ["web scraper"],"startUrls": [{ "url": "https://crates.io/categories/web-programming::http-client" }],"maxItems": 5}
Or read crates by name, with their owners:
{"crateNames": ["serde", "tokio", "reqwest@0.12.0"],"includeOwners": true}
🧩 Input
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
searchTerms | array | no | — | Searches to run on crates.io, one per line, for example web scraper or http client. |
crateNames | array | no | — | Crate names, one per line, such as serde or tokio. Add @<version> for one release instead of the current one, such as serde@1.0.200. |
startUrls | array | no | — | crates.io URLs: a search (/search?q=…), a crate (/crates/serde, /crates/serde/1.0.200), a category (/categories/web-programming::http-client), a keyword (/keywords/async), a user (/users/dtolnay) or a team (/teams/…). |
sortBy | string | no | — | Sort by: relevance, downloads (all-time), recent-downloads, recent-updates, new or alpha. Applies to search terms and to URLs that set no sort of their own; leave empty for crates.io's own order. |
includeOwners | boolean | no | false | Include owners: add each crate's owners, the users and teams that can publish it. Adds one request per crate. |
maxItems | integer | no | — | Maximum number of crates per search term or listing URL. The input form starts at 5; leave it empty to get every matching crate. Crate names and crate URLs return one crate each. |
proxyConfiguration | object | no | { "useApifyProxy": false } | Proxy configuration. crates.io needs no proxy. |
Add search terms, crate names, URLs, or any mix. A search URL keeps the sort set in it. A category or keyword page lists its crates by recent downloads unless you choose another order; a user or team page lists every crate that account owns, alphabetically. A crate URL or name that pins a version returns that release; otherwise the crate's current version is used.
📤 Output
Each crate is one dataset row. Version-level fields (license, MSRV, edition, size, publisher) describe the crate's current version: the highest stable release that is not yanked, or the version you pinned.
Fields
| Field | Type | Description |
|---|---|---|
name | string | Crate name. |
version | string | Current version (the highest stable release that is not yanked), or the version you pinned. |
description | string | Crate description. |
homepage | string | Project homepage. |
repository | string | Source repository. |
documentation | string | Documentation site, usually docs.rs. |
license | string | License as an SPDX expression, such as MIT OR Apache-2.0. |
keywords | array | Keywords the authors tagged the crate with. |
categories | array | crates.io category slugs, such as web-programming::http-client. |
downloads | number | All-time downloads. |
recentDownloads | number | Downloads over the last 90 days. |
versionsCount | number | Number of published versions. |
createdAt | string | When the crate was first published (ISO 8601). |
updatedAt | string | When the crate last changed on crates.io (ISO 8601). |
lastPublishedAt | string | When the version in version was published (ISO 8601). |
rustVersion | string | Minimum supported Rust version (MSRV) the version declares; null when it declares none. |
edition | string | Rust edition of the version, such as 2021. |
crateSize | number | Size of the version's package, in bytes. |
yanked | boolean | Whether the version was yanked. |
publishedBy | string | crates.io login of the account that published the version. |
reverseDependenciesCount | number | Number of crates that depend on this one. |
owners | array | Users and teams that can publish the crate: login, name, kind, url and githubUrl. Only with Include owners; null otherwise. |
searchQuery | string | The search that found the crate; null for crate names and for category, keyword, user and team URLs. |
url | string | The crate's page on crates.io. |
💡 Use cases
- Developer-tool market research — size a Rust category by downloads and dependents, and see which crates lead it.
- Open-source due diligence — check how actively a crate is released, by whom, which Rust version it needs, and whether it was yanked.
- Dependency and license audits — collect licenses, MSRVs and repositories across the crates you rely on.
- Ecosystem tracking — watch a category, a keyword, or a maintainer's crates, their releases and download trends over time.
- Lead generation — find the companies, teams and maintainers behind the crates in your niche.
❓ FAQ
- Do I need a crates.io account or an API key? No. The Actor reads the same public crate data anyone can see.
- Do I need a proxy? No. It runs without one by default.
- How fast is it? crates.io asks automated clients to send at most one request per second, and the Actor keeps to that. Each crate takes two requests (three with owners), so expect roughly 30 crates a minute.
- Which version do the version fields describe? The crate's current version, the one crates.io shows by default: the highest stable release that is not yanked. Pin another with
serde@1.0.200or a crate URL that names a version. - What is
recentDownloads? crates.io's download count for the last 90 days, across all versions. - Why is
rustVersionempty for some crates? It is the MSRV the crate declares in its manifest, and many crates declare none. - Can I get category names instead of slugs? Categories come as their crates.io slugs, which also work as category URLs (
https://crates.io/categories/<slug>).
🔗 More scrapers by Anyx
🤝 Anyx Solutions
We build custom scrapers and data-extraction pipelines.
- Email: tantosthor@gmail.com
🖼 Image credit
Image credit: crates.io