crates.io Scraper avatar

crates.io Scraper

Pricing

from $2.50 / 1,000 results

Go to Apify Store
crates.io Scraper

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

Anyx Solutions

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Categories

Security

Limited permissions

Share

banner

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

FieldTypeRequiredDefaultDescription
searchTermsarrayno—Searches to run on crates.io, one per line, for example web scraper or http client.
crateNamesarrayno—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.
startUrlsarrayno—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/…).
sortBystringno—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.
includeOwnersbooleannofalseInclude owners: add each crate's owners, the users and teams that can publish it. Adds one request per crate.
maxItemsintegerno—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.
proxyConfigurationobjectno{ "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

FieldTypeDescription
namestringCrate name.
versionstringCurrent version (the highest stable release that is not yanked), or the version you pinned.
descriptionstringCrate description.
homepagestringProject homepage.
repositorystringSource repository.
documentationstringDocumentation site, usually docs.rs.
licensestringLicense as an SPDX expression, such as MIT OR Apache-2.0.
keywordsarrayKeywords the authors tagged the crate with.
categoriesarraycrates.io category slugs, such as web-programming::http-client.
downloadsnumberAll-time downloads.
recentDownloadsnumberDownloads over the last 90 days.
versionsCountnumberNumber of published versions.
createdAtstringWhen the crate was first published (ISO 8601).
updatedAtstringWhen the crate last changed on crates.io (ISO 8601).
lastPublishedAtstringWhen the version in version was published (ISO 8601).
rustVersionstringMinimum supported Rust version (MSRV) the version declares; null when it declares none.
editionstringRust edition of the version, such as 2021.
crateSizenumberSize of the version's package, in bytes.
yankedbooleanWhether the version was yanked.
publishedBystringcrates.io login of the account that published the version.
reverseDependenciesCountnumberNumber of crates that depend on this one.
ownersarrayUsers and teams that can publish the crate: login, name, kind, url and githubUrl. Only with Include owners; null otherwise.
searchQuerystringThe search that found the crate; null for crate names and for category, keyword, user and team URLs.
urlstringThe 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.200 or 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 rustVersion empty 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.

🖼 Image credit

Image credit: crates.io