IPFS Key API

The Key API from IPFS — 5 operation(s) for key.

Operations 5

POST /api/v0/key/gen Key/gen #
POST /api/v0/key/import Key/import #
POST /api/v0/key/list Key/list #
POST /api/v0/key/rename Key/rename #
POST /api/v0/key/rm Key/rm #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/ipfs-key-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

ipfs-key-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: IPFS RPC Key API
  version: v0
  description: When a Kubo IPFS node is running as a daemon, it exposes an HTTP RPC API that allows you to control the node and run the same commands you can from the command line.
  x-providerName: IPFS
  x-logo:
    url: https://raw.githubusercontent.com/ipfs/ipfs-docs/55fe8bc6a53ba3b9023951fb4b432efbbc81fba5/docs/.vuepress/public/images/ipfs-logo.svg
servers:
- description: Local IPFS node
  url: http://localhost:5001
- description: Local IPFS node
  url: http://127.0.0.1:5001
- description: Infura hosted IPFS node
  url: https://ipfs.infura.io:5001
tags:
- name: Key
paths:
  /api/v0/key/gen:
    post:
      operationId: key/gen
      description: Create a new keypair
      externalDocs:
        url: https://docs.ipfs.tech/reference/kubo/rpc/#api-v0-key-gen
      parameters:
      - name: arg
        in: query
        description: name of key to create
        required: true
        schema:
          type: string
      - name: type
        in: query
        description: 'type of the key to create: rsa, ed25519.'
        schema:
          type: string
          default: ed25519
      - name: size
        in: query
        description: size of the key to generate.
        schema:
          type: integer
      - name: ipns-base
        in: query
        description: 'Encoding used for keys: Can either be a multibase encoded CID or a base58btc encoded multihash. Takes {b58mh|base36|k|base32|b...}.'
        schema:
          type: string
          default: base36
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              example:
                Id: <string>
                Name: <string>
      tags:
      - Key
      summary: Key/gen
      x-summary-source: derived
  /api/v0/key/import:
    post:
      operationId: key/import
      description: Import a key and prints imported key id
      externalDocs:
        url: https://docs.ipfs.tech/reference/kubo/rpc/#api-v0-key-import
      parameters:
      - name: arg
        in: query
        description: name to associate with key in keychain
        required: true
        schema:
          type: string
      - name: ipns-base
        in: query
        description: 'Encoding used for keys: Can either be a multibase encoded CID or a base58btc encoded multihash. Takes {b58mh|base36|k|base32|b...}.'
        schema:
          type: string
          default: base36
      - name: format
        in: query
        description: The format of the private key to import, libp2p-protobuf-cleartext or pem-pkcs8-cleartext.
        schema:
          type: string
          default: libp2p-protobuf-cleartext
      - name: allow-any-key-type
        in: query
        description: Allow importing any key type.
        schema:
          type: boolean
          default: false
      requestBody:
        description: Argument `key` is of file type. This endpoint expects one or several files (depending on the command) in the body of the request as 'multipart/form-data'.
        content: {}
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              example:
                Id: <string>
                Name: <string>
      tags:
      - Key
      summary: Key/import
      x-summary-source: derived
  /api/v0/key/list:
    post:
      operationId: key/list
      description: List all local keypairs.
      externalDocs:
        url: https://docs.ipfs.tech/reference/kubo/rpc/#api-v0-key-list
      parameters:
      - name: l
        in: query
        description: Show extra information about keys.
        schema:
          type: boolean
      - name: ipns-base
        in: query
        description: 'Encoding used for keys: Can either be a multibase encoded CID or a base58btc encoded multihash. Takes {b58mh|base36|k|base32|b...}.'
        schema:
          type: string
          default: base36
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              example:
                Keys:
                - Id: <string>
                  Name: <string>
      tags:
      - Key
      summary: Key/list
      x-summary-source: derived
  /api/v0/key/rename:
    post:
      operationId: key/rename
      description: Rename a keypair.
      externalDocs:
        url: https://docs.ipfs.tech/reference/kubo/rpc/#api-v0-key-rename
      parameters:
      - name: arg
        in: query
        description: 'arg0: name of key to rename


          arg1: new name of the key'
        required: true
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: force
        in: query
        description: Allow to overwrite an existing key.
        schema:
          type: boolean
      - name: ipns-base
        in: query
        description: 'Encoding used for keys: Can either be a multibase encoded CID or a base58btc encoded multihash. Takes {b58mh|base36|k|base32|b...}.'
        schema:
          type: string
          default: base36
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              example:
                Id: <string>
                Now: <string>
                Overwrite: <bool>
                Was: <string>
      tags:
      - Key
      summary: Key/rename
      x-summary-source: derived
  /api/v0/key/rm:
    post:
      operationId: key/rm
      description: Remove a keypair.
      externalDocs:
        url: https://docs.ipfs.tech/reference/kubo/rpc/#api-v0-key-rm
      parameters:
      - name: arg
        in: query
        description: names of keys to remove
        required: true
        schema:
          type: string
      - name: l
        in: query
        description: Show extra information about keys.
        schema:
          type: boolean
      - name: ipns-base
        in: query
        description: 'Encoding used for keys: Can either be a multibase encoded CID or a base58btc encoded multihash. Takes {b58mh|base36|k|base32|b...}.'
        schema:
          type: string
          default: base36
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              example:
                Keys:
                - Id: <string>
                  Name: <string>
      tags:
      - Key
      summary: Key/rm
      x-summary-source: derived
externalDocs:
  url: https://docs.ipfs.tech/reference/kubo/rpc/