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#
| Endpoint | What it does | Parameters | Credits | Status |
|---|---|---|---|---|
categories | crates.io categories with crate counts. | - | 5 | stable |
crate | Metadata and stats of a crate on crates.io. | name* | 1 | stable |
dependencies | Dependencies of a crate version. | name*, version* | 5 | stable |
downloads | Daily download counts of a crate (90 days). | name* | 5 | stable |
just_updated | Crates most recently updated. | - | 5 | stable |
keywords | crates.io keywords with crate counts. | - | 5 | stable |
most_downloaded | Most downloaded crates of all time. | - | 5 | stable |
new_crates | Newest crates on crates.io. | - | 5 | stable |
owners | Owners of a crate. | name* | 5 | stable |
reverse_dependencies | Crates that depend on a given crate. | name* | 5 | stable |
search | Search crates.io. | q* | 5 | stable |
stats | Global crates.io totals (crates and downloads). | - | 1 | stable |
user | Public profile of a crates.io user. | login* | 1 | stable |
version | Metadata of one specific crate version. | name*, version* | 1 | stable |
versions | Most recent published versions of a crate. | name* | 5 | stable |
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.
| Field | Type | Endpoints |
|---|---|---|
entity.name | string | 10 |
entity.stats.downloads | integer | 9 |
entity.createdAt | ISO 8601 date | 8 |
package.version | string | 8 |
entity.description | string | 6 |
entity.updatedAt | ISO 8601 date | 5 |
package.documentationUrl | URL | 5 |
package.homepageUrl | URL | 5 |
package.repositoryUrl | URL | 5 |
author.username | string | 3 |
author.avatarUrl | URL | 2 |
author.displayName | string | 2 |
author.id | string | 2 |
author.url | URL | 2 |
entity.id | string | 2 |
package.license | string | 2 |
package.yanked | boolean | 2 |
author.createdAt | ISO 8601 date | 1 |
content.createdAt | ISO 8601 date | 1 |
content.id | string | 1 |
engagement.views | integer | 1 |
entity.tags | list of strings | 1 |
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.