crates.io · Capability

crates.io Web API — Owners

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

crates.io Web API — Owners is a Naftiko capability published by crates.io, one of 4 capabilities the APIs.io network indexes for this provider. It bundles 3 operations across the GET, PUT, and DELETE methods rooted at /v1/api/v1/crates/{…}/owners.

The capability includes 1 read-only operation and 2 state-changing operations. Lead operation: List Crate Owners. Can be deployed as a REST endpoint, MCP tool, or Agent Skill via Naftiko.

Tagged areas include Cratesio, Owners, and Rust.

Run with Naftiko CratesioOwnersRust

What You Can Do

GET
Listowners — List Crate Owners
/v1/api/v1/crates/{crate}/owners
PUT
Addowner — Add Crate Owner
/v1/api/v1/crates/{crate}/owners
DELETE
Removeowner — Remove Crate Owner
/v1/api/v1/crates/{crate}/owners

MCP Tools

crates-list-owners

List Crate Owners

read-only idempotent
crates-add-owner

Add Crate Owner

idempotent
crates-remove-owner

Remove Crate Owner

idempotent

Capability Spec

web-api-owners.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: crates.io Web API — Owners
  description: 'crates.io Web API — Owners. Self-contained Naftiko capability for listing, inviting, and removing crate owners.'
  tags:
  - Cratesio
  - Owners
  - Rust
  created: '2026-05-25'
  modified: '2026-05-25'
binds:
- namespace: env
  keys:
    CRATES_IO_TOKEN: CRATES_IO_TOKEN
capability:
  consumes:
  - type: http
    namespace: crates-owners
    baseUri: https://crates.io
    description: crates.io Owners business capability.
    resources:
    - name: api-v1-crates-owners
      path: /api/v1/crates/{crate}/owners
      operations:
      - name: listowners
        method: GET
        description: List Crate Owners
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: crate
          in: path
          type: string
          required: true
      - name: addowner
        method: PUT
        description: Add Crate Owner
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: crate
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: '{ "users": ["login"] }'
          required: true
      - name: removeowner
        method: DELETE
        description: Remove Crate Owner
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: crate
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: '{ "users": ["login"] }'
          required: true
    authentication:
      type: apikey
      key: Authorization
      value: '{{env.CRATES_IO_TOKEN}}'
      placement: header
  exposes:
  - type: rest
    namespace: crates-owners-rest
    port: 8080
    description: REST adapter for crates.io Owners.
    resources:
    - path: /v1/api/v1/crates/{crate}/owners
      name: owners
      description: REST surface for owners.
      operations:
      - method: GET
        name: listowners
        description: List Crate Owners
        call: crates-owners.listowners
        with:
          crate: rest.path.crate
        outputParameters:
        - type: object
          mapping: $.
      - method: PUT
        name: addowner
        description: Add Crate Owner
        call: crates-owners.addowner
        with:
          crate: rest.path.crate
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: removeowner
        description: Remove Crate Owner
        call: crates-owners.removeowner
        with:
          crate: rest.path.crate
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: crates-owners-mcp
    port: 9090
    transport: http
    description: MCP adapter for crates.io Owners.
    tools:
    - name: crates-list-owners
      description: List Crate Owners
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: crates-owners.listowners
      with:
        crate: tools.crate
      outputParameters:
      - type: object
        mapping: $.
    - name: crates-add-owner
      description: Add Crate Owner
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: crates-owners.addowner
      with:
        crate: tools.crate
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: crates-remove-owner
      description: Remove Crate Owner
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: crates-owners.removeowner
      with:
        crate: tools.crate
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.