aid: crates-io
url: https://raw.githubusercontent.com/api-evangelist/crates-io/refs/heads/main/apis.yml
apis:
- aid: crates-io:crates-io-config-api
  name: crates.io Config API
  description: Registry configuration document
  humanURL: https://doc.rust-lang.org/cargo/reference/registry-web-api.html
  tags:
  - Config
  properties:
  - type: OpenAPI
    url: openapi/crates-io-config-api-openapi.yml
  - type: Documentation
    url: https://doc.rust-lang.org/cargo/reference/registry-web-api.html
  - type: JSONSchema
    url: json-schema/crates-io-crate-schema.json
  - type: JSONStructure
    url: json-structure/crates-io-crate-structure.json
  - type: JSONLD
    url: json-ld/crates-io-context.jsonld
  - type: SpectralRules
    url: rules/crates-io-rules.yml
  - type: Examples
    url: examples/crates-io-search-example.json
  - type: Examples
    url: examples/crates-io-get-crate-example.json
  - type: Documentation
    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: JSONSchema
    url: json-schema/crates-io-index-entry-schema.json
  - type: Examples
    url: examples/crates-io-config-example.json
  - type: Examples
    url: examples/crates-io-sparse-index-example.json
- aid: crates-io:crates-io-crates-api
  name: crates.io Crates API
  description: Search and manage Rust crates
  humanURL: https://doc.rust-lang.org/cargo/reference/registry-web-api.html
  tags:
  - Crates
  properties:
  - type: OpenAPI
    url: openapi/crates-io-crates-api-openapi.yml
  - type: Documentation
    url: https://doc.rust-lang.org/cargo/reference/registry-web-api.html
  - type: JSONSchema
    url: json-schema/crates-io-crate-schema.json
  - type: JSONStructure
    url: json-structure/crates-io-crate-structure.json
  - type: JSONLD
    url: json-ld/crates-io-context.jsonld
  - type: SpectralRules
    url: rules/crates-io-rules.yml
  - type: Examples
    url: examples/crates-io-search-example.json
  - type: Examples
    url: examples/crates-io-get-crate-example.json
  - type: Documentation
    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: JSONSchema
    url: json-schema/crates-io-index-entry-schema.json
  - type: Examples
    url: examples/crates-io-config-example.json
  - type: Examples
    url: examples/crates-io-sparse-index-example.json
- aid: crates-io:crates-io-index-api
  name: crates.io Index API
  description: Per-crate index metadata files served over HTTP
  humanURL: https://doc.rust-lang.org/cargo/reference/registry-web-api.html
  tags:
  - Index
  properties:
  - type: OpenAPI
    url: openapi/crates-io-index-api-openapi.yml
  - type: Documentation
    url: https://doc.rust-lang.org/cargo/reference/registry-web-api.html
  - type: JSONSchema
    url: json-schema/crates-io-crate-schema.json
  - type: JSONStructure
    url: json-structure/crates-io-crate-structure.json
  - type: JSONLD
    url: json-ld/crates-io-context.jsonld
  - type: SpectralRules
    url: rules/crates-io-rules.yml
  - type: Examples
    url: examples/crates-io-search-example.json
  - type: Examples
    url: examples/crates-io-get-crate-example.json
  - type: Documentation
    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: JSONSchema
    url: json-schema/crates-io-index-entry-schema.json
  - type: Examples
    url: examples/crates-io-config-example.json
  - type: Examples
    url: examples/crates-io-sparse-index-example.json
- aid: crates-io:crates-io-owners-api
  name: crates.io Owners API
  description: List, add, and remove crate owners
  humanURL: https://doc.rust-lang.org/cargo/reference/registry-web-api.html
  tags:
  - Owners
  properties:
  - type: OpenAPI
    url: openapi/crates-io-owners-api-openapi.yml
  - type: Documentation
    url: https://doc.rust-lang.org/cargo/reference/registry-web-api.html
  - type: JSONSchema
    url: json-schema/crates-io-crate-schema.json
  - type: JSONStructure
    url: json-structure/crates-io-crate-structure.json
  - type: JSONLD
    url: json-ld/crates-io-context.jsonld
  - type: SpectralRules
    url: rules/crates-io-rules.yml
  - type: Examples
    url: examples/crates-io-search-example.json
  - type: Examples
    url: examples/crates-io-get-crate-example.json
  - type: Documentation
    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: JSONSchema
    url: json-schema/crates-io-index-entry-schema.json
  - type: Examples
    url: examples/crates-io-config-example.json
  - type: Examples
    url: examples/crates-io-sparse-index-example.json
- aid: crates-io:crates-io-versions-api
  name: crates.io Versions API
  description: Yank and unyank crate versions
  humanURL: https://doc.rust-lang.org/cargo/reference/registry-web-api.html
  tags:
  - Versions
  properties:
  - type: OpenAPI
    url: openapi/crates-io-versions-api-openapi.yml
  - type: Documentation
    url: https://doc.rust-lang.org/cargo/reference/registry-web-api.html
  - type: JSONSchema
    url: json-schema/crates-io-crate-schema.json
  - type: JSONStructure
    url: json-structure/crates-io-crate-structure.json
  - type: JSONLD
    url: json-ld/crates-io-context.jsonld
  - type: SpectralRules
    url: rules/crates-io-rules.yml
  - type: Examples
    url: examples/crates-io-search-example.json
  - type: Examples
    url: examples/crates-io-get-crate-example.json
  - type: Documentation
    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: JSONSchema
    url: json-schema/crates-io-index-entry-schema.json
  - type: Examples
    url: examples/crates-io-config-example.json
  - type: Examples
    url: examples/crates-io-sparse-index-example.json
name: crates.io
tags:
  - Rust
  - Package Registry
  - Crates
  - Cargo
  - Open Source
  - Developer Tools
  - Rust Foundation
tags_raw:
  - Rust
  - Package Registry
  - Crates
  - Cargo
  - Open Source
  - Developer Tools
  - Rust Foundation
  - Open-Source
kind: contract
deliveryModel:
  model: unknown
  license: Apache 2.0 License
  open_source: false
  commercial: false
  callable_host: true
  label: Delivery model not determined — needs a product licence on record
  confidence: low
  source:
  - license
  - openapi
  generated: '2026-08-28'
  method: derived
accessModel:
  pricing: unknown
  onboarding: unknown
  trial: false
  try_now: false
  public: false
  label: Unknown
  confidence: low
  source:
  - authentication
  - security
  generated: '2026-09-03'
  method: derived
image: https://kinlane-images.s3.amazonaws.com/shared/apis-json/icons/crates-io.png
access: 3rd-Party
common:
  - type: CapabilityMap
    url: capabilities/crates-io-capability-edges.yml
    name: crates.io Business Capability Map
  - type: AgenticAccess
    url: agentic-access/crates-io-agentic-access.yml
  - type: VulnerabilityDisclosure
    url: security/crates-io-vulnerability-disclosure.yml
  - type: DomainSecurity
    url: security/crates-io-domain-security.yml
  - type: Authentication
    url: authentication/crates-io-authentication.yml
  - 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: Tools
  - 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: Tools
  - url: https://github.com/rust-lang/crates_io_og_image
    name: crates.io OpenGraph image generator
    type: Tools
  - url: https://github.com/rust-lang/crates-io-heroku-metrics
    name: crates.io Heroku metrics collector
    type: Tools
  - 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:help@crates.io
    name: help@crates.io
    type: Support
  - url: https://rust-lang.zulipchat.com/#narrow/stream/318791-t-crates-io
    name: Zulip —
    type: Forums
  - url: https://github.com/rust-lang/crates.io/discussions
    name: GitHub Discussions
    type: Forums
  - 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: info@apievangelist.com
    X: apievangelist
    url: https://apievangelist.com
specificationVersion: '0.23'
