crates.io API

Get crates.io data as clean JSON with one key: 15 endpoints, 1 to 5 credits per call, the same response shape as every other platform.

What you get#

Onekey exposes crates.io as 15 endpoints behind one API key: 4 endpoints return one record (data is an object) and 11 endpoints return a list (data is an array). Every answer uses the same envelope (success, data, metadata, error), the cost is reported in metadata.credits_charged, and fields are mapped onto the unified schema so the code you write for crates.io also works for the rest of the developer platforms category.

Endpoints#

EndpointWhat it doesParametersCreditsStatus
categoriescrates.io categories with crate counts.-5stable
crateMetadata and stats of a crate on crates.io.name*1stable
dependenciesDependencies of a crate version.name*, version*5stable
downloadsDaily download counts of a crate (90 days).name*5stable
just_updatedCrates most recently updated.-5stable
keywordscrates.io keywords with crate counts.-5stable
most_downloadedMost downloaded crates of all time.-5stable
new_cratesNewest crates on crates.io.-5stable
ownersOwners of a crate.name*5stable
reverse_dependenciesCrates that depend on a given crate.name*5stable
searchSearch crates.io.q*5stable
statsGlobal crates.io totals (crates and downloads).-1stable
userPublic profile of a crates.io user.login*1stable
versionMetadata of one specific crate version.name*, version*1stable
versionsMost recent published versions of a crate.name*5stable

A * marks a required parameter. Each endpoint name links to its reference page with the full parameter table, caching window and a recorded response.

Make a request#

This calls crates.crate (1 credit, stable). Replace YOUR_API_KEY with your key; sign up, no card. 1,000 free credits cover the open-platform endpoints. Hard-to-reach platforms (X, TikTok, Instagram, Reddit, and others marked on their page) need a verified email and a purchased pack.

curl "https://api.onekey.dev/v1/crates/crate?name=serde" \
  -H "x-api-key: YOUR_API_KEY"

Fields you get back#

These unified fields come back from crates.io, with the same names as on every other platform. The count is how many of its 15 mapped endpoints return the field; a field the source lacks is null, never missing. 11 platform-specific fields (ext.<name>) come on top, documented on each endpoint page.

FieldTypeEndpoints
entity.namestring10
entity.stats.downloadsinteger9
entity.createdAtISO 8601 date8
package.versionstring8
entity.descriptionstring6
entity.updatedAtISO 8601 date5
package.documentationUrlURL5
package.homepageUrlURL5
package.repositoryUrlURL5
author.usernamestring3
author.avatarUrlURL2
author.displayNamestring2
author.idstring2
author.urlURL2
entity.idstring2
package.licensestring2
package.yankedboolean2
author.createdAtISO 8601 date1
content.createdAtISO 8601 date1
content.idstring1
engagement.viewsinteger1
entity.tagslist of strings1

The full schema is in Unified schema.

Pricing#

crates.io calls cost 1 to 5 credits, flat per endpoint. Free when served from cache (0.2 credit for a cached response over 100 KB). Invalid, failed or not-found calls are not charged. See pricing for credit packs.