crates.io logo

crates.io

crates.io is the official package registry for the Rust programming language, operated by the crates.io team under the Rust Foundation with infrastructure support from Amazon Web Services and Fastly. It exposes a Web API at /api/v1 used by Cargo and the website for search, publishing, yanking, and owner management, plus a sparse HTTP index at index.crates.io that has been Cargo's default registry protocol since Rust 1.70 (June 2023). The legacy git index is still mirrored. Every published version is checksummed with SHA-256 and companion documentation is auto-built on docs.rs. The crates.io source code is dual-licensed under Apache-2.0 and MIT and runs on Rust (axum, diesel) with a SvelteKit frontend.

2 APIs 4 Capabilities 14 Features
RustPackage RegistryCratesCargoOpen SourceDeveloper ToolsRust Foundation

crates.io publishes 2 APIs on the APIs.io network: Web API and Sparse Index. Tagged areas include Rust, Package Registry, Crates, Cargo, and Open Source.

The crates.io catalog on APIs.io includes 4 machine-runnable capabilities, 1 JSON-LD context, and 1 Spectral governance ruleset.

crates.io’s developer surface includes developer portal, documentation, getting-started guide, tooling, engineering blog, changelog, support, and 26 more developer resources.

APIs

crates.io Web API

The crates.io Web API exposes the endpoints used by Cargo and the crates.io website to search the registry, fetch crate and version metadata, publish new versions, yank and unya...

crates.io Sparse Index

The crates.io sparse index at https://index.crates.io serves the registry config document plus per-crate newline-delimited JSON metadata files over HTTP, replacing the legacy gi...

Capabilities

crates.io Sparse Index — Index

crates.io Sparse Index — Index. Self-contained Naftiko capability covering the sparse index configuration and per-crate index lookups served from index.crates.io.

Run with Naftiko

crates.io Web API — Crates

crates.io Web API — Crates. Self-contained Naftiko capability covering crate search, detail lookup, and publishing.

Run with Naftiko

crates.io Web API — Owners

crates.io Web API — Owners. Self-contained Naftiko capability for listing, inviting, and removing crate owners.

Run with Naftiko

crates.io Web API — Versions

crates.io Web API — Versions. Self-contained Naftiko capability for inspecting, yanking, and unyanking specific crate versions.

Run with Naftiko

Features

Centralized package registry for the Rust programming language operated by the crates.io team under the Rust Foundation
Web API at https://crates.io/api/v1 for search, crate detail, version detail, download redirect, publish, yank, unyank, and owner management
Sparse HTTP index at https://index.crates.io (default for Cargo since Rust 1.70) — replaces the legacy git index for the vast majority of fetches
Legacy git index at https://github.com/rust-lang/crates.io-index still mirrored for source replacement and offline scenarios
SHA-256 checksums published per version for tamper-evident downloads
Index format v2 with features2 map for namespaced and weak-dep features
Per-crate keywords, categories, and reverse-dependency listings on the website
Authentication via per-user API tokens scoped to publish, yank, and owner-management permissions
Trusted Publishing flow via crates-io-auth-action exchanging GitHub Actions OIDC tokens for short-lived publish tokens
Open source under Apache-2.0 and MIT — backend in Rust (axum + diesel), frontend in SvelteKit/TypeScript
Infrastructure sponsored by Amazon Web Services (file hosting) and Fastly (CDN)
Status page at status.crates.io reporting crates.io and docs.rs uptime
Companion documentation host docs.rs auto-builds and serves docs for every published crate version
No paid plans — operated as a public good of the Rust ecosystem

Semantic Vocabularies

Crates Io Context

0 classes · 8 properties

JSON-LD

API Governance Rules

crates.io API Rules

7 rules · 1 errors 3 warnings 1 info

SPECTRAL

Resources

🌐
Portal
Portal
🔗
Documentation
Documentation
🔗
Documentation
Documentation
🔗
Documentation
Documentation
🔗
Documentation
Documentation
🔗
Documentation
Documentation
🚀
GettingStarted
GettingStarted
👥
GitHubOrganization
GitHubOrganization
💻
SourceCode
SourceCode
💻
SourceCode
SourceCode
💻
SourceCode
SourceCode
🔧
Tool
Tool
👥
GitHubOrganization
GitHubOrganization
🔧
Tool
Tool
🔧
Tool
Tool
🔧
Tool
Tool
🟢
StatusPage
StatusPage
📰
Blog
Blog
📄
ChangeLog
ChangeLog
🔗
Documentation
Documentation
🔗
SecurityPolicy
SecurityPolicy
💻
CodeOfConduct
CodeOfConduct
🔗
License
License
🔗
License
License
💬
Support
Support
🔗
Forum
Forum
🔗
Forum
Forum
🔗
Documentation
Documentation
🔗
Documentation
Documentation
🔗
Documentation
Documentation
🔗
Sponsor
Sponsor
🔗
Sponsor
Sponsor
🔗
Sponsor
Sponsor

Sources

Raw ↑
aid: crates-io
url: https://raw.githubusercontent.com/api-evangelist/crates-io/refs/heads/main/apis.yml
apis:
- aid: crates-io:crates-io-web-api
  name: crates.io Web API
  tags:
  - Crates
  - Package Registry
  - Rust
  - Search
  - Publishing
  humanURL: https://doc.rust-lang.org/cargo/reference/registry-web-api.html
  properties:
  - url: https://doc.rust-lang.org/cargo/reference/registry-web-api.html
    type: Documentation
  - url: openapi/crates-io-web-api-openapi.yml
    type: OpenAPI
  - url: json-schema/crates-io-crate-schema.json
    type: JSONSchema
  - url: json-structure/crates-io-crate-structure.json
    type: JSONStructure
  - url: json-ld/crates-io-context.jsonld
    type: JSONLD
  - url: rules/crates-io-rules.yml
    type: SpectralRules
  - url: examples/crates-io-search-example.json
    type: Example
  - url: examples/crates-io-get-crate-example.json
    type: Example
  - type: NaftikoCapability
    url: capabilities/web-api-crates.yaml
  - type: NaftikoCapability
    url: capabilities/web-api-versions.yaml
  - type: NaftikoCapability
    url: capabilities/web-api-owners.yaml
  description: >
    The crates.io Web API exposes the endpoints used by Cargo and the crates.io
    website to search the registry, fetch crate and version metadata, publish
    new versions, yank and unyank versions, and manage crate ownership. Hosted
    at https://crates.io/api/v1, it is the canonical implementation of the
    Cargo Registry Web API specification documented in the Cargo book.
- aid: crates-io:crates-io-sparse-index
  name: crates.io Sparse Index
  tags:
  - Index
  - Package Registry
  - Rust
  - Sparse Protocol
  humanURL: https://doc.rust-lang.org/cargo/reference/registry-index.html
  properties:
  - url: https://doc.rust-lang.org/cargo/reference/registry-index.html
    type: Documentation
  - url: https://blog.rust-lang.org/2023/03/09/Rust-1.68.0.html
    type: Documentation
    name: Sparse registry protocol stabilized in Rust 1.68
  - url: openapi/crates-io-sparse-index-openapi.yml
    type: OpenAPI
  - url: json-schema/crates-io-index-entry-schema.json
    type: JSONSchema
  - url: examples/crates-io-config-example.json
    type: Example
  - url: examples/crates-io-sparse-index-example.json
    type: Example
  - type: NaftikoCapability
    url: capabilities/sparse-index.yaml
  description: >
    The crates.io sparse index at https://index.crates.io serves the registry
    config document plus per-crate newline-delimited JSON metadata files
    over HTTP, replacing the legacy git index clone. Cargo uses the sparse
    protocol by default since Rust 1.70 (June 2023). Each index entry records
    a version's dependencies, features, SHA-256 checksum, and yank state.
name: crates.io
tags:
- Rust
- Package Registry
- Crates
- Cargo
- Open Source
- Developer Tools
- Rust Foundation
kind: contract
image: https://kinlane-productions2.s3.amazonaws.com/apis-json/apis-json-logo.jpg
access: 3rd-Party
common:
- url: https://crates.io
  name: crates.io
  type: Portal
- url: https://doc.rust-lang.org/cargo/
  name: The Cargo Book
  type: Documentation
- url: https://doc.rust-lang.org/cargo/reference/registry-web-api.html
  name: Registry Web API Reference
  type: Documentation
- url: https://doc.rust-lang.org/cargo/reference/registry-index.html
  name: Registry Index (Sparse + Git) Reference
  type: Documentation
- url: https://doc.rust-lang.org/cargo/reference/registries.html
  name: Cargo Registries Overview
  type: Documentation
- url: https://doc.rust-lang.org/cargo/reference/registry-authentication.html
  name: Registry Authentication
  type: Documentation
- url: https://doc.rust-lang.org/cargo/reference/publishing.html
  name: Publishing on crates.io
  type: GettingStarted
- url: https://github.com/rust-lang/crates.io
  name: rust-lang/crates.io Source Code
  type: GitHubOrganization
- url: https://github.com/rust-lang/crates.io-index
  name: rust-lang/crates.io-index (legacy git index)
  type: SourceCode
- url: https://github.com/rust-lang/crates.io-index-archive
  name: crates.io-index Archive
  type: SourceCode
- url: https://github.com/rust-lang/cargo
  name: rust-lang/cargo
  type: SourceCode
- url: https://github.com/rust-lang/crates-io-auth-action
  name: crates-io-auth-action (Trusted Publishing)
  type: Tool
- url: https://github.com/rust-lang/crates-io-cargo-teams
  name: crates.io and Cargo Teams Home
  type: GitHubOrganization
- url: https://github.com/rust-lang/crates-io-ops-bot
  name: crates-io-ops-bot
  type: Tool
- url: https://github.com/rust-lang/crates_io_og_image
  name: crates.io OpenGraph image generator
  type: Tool
- url: https://github.com/rust-lang/crates-io-heroku-metrics
  name: crates.io Heroku metrics collector
  type: Tool
- url: https://status.crates.io/
  name: crates.io Status
  type: StatusPage
- url: https://blog.rust-lang.org/inside-rust/
  name: Inside Rust Blog
  type: Blog
- url: https://blog.rust-lang.org/2023/03/09/Rust-1.68.0.html
  name: Rust 1.68 — Sparse registry protocol
  type: ChangeLog
- url: https://github.com/rust-lang/crates.io/blob/main/CONTRIBUTING.md
  name: Contributing to crates.io
  type: Documentation
- url: https://github.com/rust-lang/crates.io/blob/main/SECURITY.md
  name: Security Policy
  type: SecurityPolicy
- url: https://github.com/rust-lang/crates.io/blob/main/CODE_OF_CONDUCT.md
  name: Code of Conduct
  type: CodeOfConduct
- url: https://github.com/rust-lang/crates.io/blob/main/LICENSE-APACHE
  name: Apache 2.0 License
  type: License
- url: https://github.com/rust-lang/crates.io/blob/main/LICENSE-MIT
  name: MIT License
  type: License
- url: mailto:[email protected]
  name: [email protected]
  type: Support
- url: https://rust-lang.zulipchat.com/#narrow/stream/318791-t-crates-io
  name: Zulip — #t-crates-io
  type: Forum
- url: https://github.com/rust-lang/crates.io/discussions
  name: GitHub Discussions
  type: Forum
- url: https://crates.io/policies
  name: Policies
  type: Documentation
- url: https://crates.io/data-access
  name: Data Access
  type: Documentation
- url: https://docs.rs
  name: docs.rs (companion documentation host)
  type: Documentation
- url: https://foundation.rust-lang.org/
  name: Rust Foundation
  type: Sponsor
- url: https://aws.amazon.com/
  name: Amazon Web Services (infrastructure)
  type: Sponsor
- url: https://www.fastly.com/
  name: Fastly (CDN)
  type: Sponsor
- type: Features
  data:
  - Centralized package registry for the Rust programming language operated by the crates.io team under the Rust Foundation
  - Web API at https://crates.io/api/v1 for search, crate detail, version detail, download redirect, publish, yank, unyank, and owner management
  - Sparse HTTP index at https://index.crates.io (default for Cargo since Rust 1.70) — replaces the legacy git index for the vast majority of fetches
  - Legacy git index at https://github.com/rust-lang/crates.io-index still mirrored for source replacement and offline scenarios
  - SHA-256 checksums published per version for tamper-evident downloads
  - Index format v2 with features2 map for namespaced and weak-dep features
  - Per-crate keywords, categories, and reverse-dependency listings on the website
  - Authentication via per-user API tokens scoped to publish, yank, and owner-management permissions
  - Trusted Publishing flow via crates-io-auth-action exchanging GitHub Actions OIDC tokens for short-lived publish tokens
  - Open source under Apache-2.0 and MIT — backend in Rust (axum + diesel), frontend in SvelteKit/TypeScript
  - Infrastructure sponsored by Amazon Web Services (file hosting) and Fastly (CDN)
  - Status page at status.crates.io reporting crates.io and docs.rs uptime
  - Companion documentation host docs.rs auto-builds and serves docs for every published crate version
  - No paid plans — operated as a public good of the Rust ecosystem
  sources:
  - https://crates.io
  - https://github.com/rust-lang/crates.io
  - https://doc.rust-lang.org/cargo/reference/registry-web-api.html
  - https://doc.rust-lang.org/cargo/reference/registry-index.html
  - https://doc.rust-lang.org/cargo/reference/registries.html
  - https://status.crates.io/
  updated: '2026-05-25'
created: '2026-05-25T00:00:00.000Z'
modified: '2026-05-25'
position: Consuming
description: >
  crates.io is the official package registry for the Rust programming language,
  operated by the crates.io team under the Rust Foundation with infrastructure
  support from Amazon Web Services and Fastly. It exposes a Web API at
  /api/v1 used by Cargo and the website for search, publishing, yanking, and
  owner management, plus a sparse HTTP index at index.crates.io that has been
  Cargo's default registry protocol since Rust 1.70 (June 2023). The legacy
  git index is still mirrored. Every published version is checksummed with
  SHA-256 and companion documentation is auto-built on docs.rs. The crates.io
  source code is dual-licensed under Apache-2.0 and MIT and runs on Rust
  (axum, diesel) with a SvelteKit frontend.
maintainers:
- FN: Kin Lane
  email: [email protected]
  X: apievangelist
  url: https://apievangelist.com
specificationVersion: '0.16'