IPFS Pin API

The Pin API from IPFS — 11 operation(s) for pin.

Operations 11

POST /api/v0/pin/add Pin/add #
POST /api/v0/pin/ls Pin/ls #
POST /api/v0/pin/remote/add Pin/remote/add #
POST /api/v0/pin/remote/ls Pin/remote/ls #
POST /api/v0/pin/remote/rm Pin/remote/rm #
POST /api/v0/pin/remote/service/add Pin/remote/service/add #
POST /api/v0/pin/remote/service/ls Pin/remote/service/ls #
POST /api/v0/pin/remote/service/rm Pin/remote/service/rm #
POST /api/v0/pin/rm Pin/rm #
POST /api/v0/pin/update Pin/update #
POST /api/v0/pin/verify Pin/verify #

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-pin-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-pin-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: IPFS RPC Pin 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: PIN
paths:
  /api/v0/pin/add:
    post:
      operationId: pin/add
      description: Pin objects to local storage.
      externalDocs:
        url: https://docs.ipfs.tech/reference/kubo/rpc/#api-v0-pin-add
      parameters:
      - name: arg
        in: query
        description: Path to object(s) to be pinned.
        required: true
        schema:
          type: string
      - name: recursive
        in: query
        description: Recursively pin the object linked to by the specified object(s).
        schema:
          type: boolean
          default: true
      - name: progress
        in: query
        description: Show progress.
        schema:
          type: boolean
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              example:
                Pins:
                - <string>
                Progress: <int>
      tags:
      - PIN
      summary: Pin/add
      x-summary-source: derived
  /api/v0/pin/ls:
    post:
      operationId: pin/ls
      description: List objects pinned to local storage.
      externalDocs:
        url: https://docs.ipfs.tech/reference/kubo/rpc/#api-v0-pin-ls
      parameters:
      - name: arg
        in: query
        description: Path to object(s) to be listed.
        schema:
          type: string
      - name: type
        in: query
        description: The type of pinned keys to list. Can be "direct", "indirect", "recursive", or "all".
        schema:
          type: string
          default: all
      - name: quiet
        in: query
        description: Write just hashes of objects.
        schema:
          type: boolean
      - name: stream
        in: query
        description: Enable streaming of pins as they are discovered.
        schema:
          type: boolean
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              example:
                PinLsList:
                  Keys:
                    <string>:
                      Type: <string>
                PinLsObject:
                  Cid: <string>
                  Type: <string>
      tags:
      - PIN
      summary: Pin/ls
      x-summary-source: derived
  /api/v0/pin/remote/add:
    post:
      operationId: pin/remote/add
      description: Pin object to remote pinning service.
      externalDocs:
        url: https://docs.ipfs.tech/reference/kubo/rpc/#api-v0-pin-remote-add
      parameters:
      - name: arg
        in: query
        description: CID or Path to be pinned.
        required: true
        schema:
          type: string
      - name: service
        in: query
        description: Name of the remote pinning service to use (mandatory).
        schema:
          type: string
      - name: name
        in: query
        description: An optional name for the pin.
        schema:
          type: string
      - name: background
        in: query
        description: Add to the queue on the remote service and return immediately (does not wait for pinned status).
        schema:
          type: boolean
          default: false
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              example:
                Cid: <string>
                Name: <string>
                Status: <string>
      tags:
      - PIN
      summary: Pin/remote/add
      x-summary-source: derived
  /api/v0/pin/remote/ls:
    post:
      operationId: pin/remote/ls
      description: List objects pinned to remote pinning service.
      externalDocs:
        url: https://docs.ipfs.tech/reference/kubo/rpc/#api-v0-pin-remote-ls
      parameters:
      - name: service
        in: query
        description: Name of the remote pinning service to use (mandatory).
        schema:
          type: string
      - name: name
        in: query
        description: Return pins with names that contain the value provided (case-sensitive, exact match).
        schema:
          type: string
      - name: cid
        in: query
        description: Return pins for the specified CIDs (comma-separated).
        schema:
          type: array
          items:
            type: string
      - name: status
        in: query
        description: Return pins with the specified statuses (queued,pinning,pinned,failed).
        schema:
          type: array
          items:
            type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              example:
                Cid: <string>
                Name: <string>
                Status: <string>
      tags:
      - PIN
      summary: Pin/remote/ls
      x-summary-source: derived
  /api/v0/pin/remote/rm:
    post:
      operationId: pin/remote/rm
      description: Remove pins from remote pinning service.
      externalDocs:
        url: https://docs.ipfs.tech/reference/kubo/rpc/#api-v0-pin-remote-rm
      parameters:
      - name: service
        in: query
        description: Name of the remote pinning service to use (mandatory).
        schema:
          type: string
      - name: name
        in: query
        description: Remove pins with names that contain provided value (case-sensitive, exact match).
        schema:
          type: string
      - name: cid
        in: query
        description: Remove pins for the specified CIDs.
        schema:
          type: array
          items:
            type: string
      - name: status
        in: query
        description: Remove pins with the specified statuses (queued,pinning,pinned,failed).
        schema:
          type: array
          items:
            type: string
      - name: force
        in: query
        description: Allow removal of multiple pins matching the query without additional confirmation.
        schema:
          type: boolean
          default: false
      responses:
        '200':
          description: Successful response
      tags:
      - PIN
      summary: Pin/remote/rm
      x-summary-source: derived
  /api/v0/pin/remote/service/add:
    post:
      operationId: pin/remote/service/add
      description: Add remote pinning service.
      externalDocs:
        url: https://docs.ipfs.tech/reference/kubo/rpc/#api-v0-pin-remote-service-add
      parameters:
      - name: arg
        in: query
        description: 'arg0: Service name.


          arg1: Service endpoint.


          arg2: Service key.'
        required: true
        explode: true
        schema:
          type: array
          items:
            type: string
      responses:
        '200':
          description: Successful response
      tags:
      - PIN
      summary: Pin/remote/service/add
      x-summary-source: derived
  /api/v0/pin/remote/service/ls:
    post:
      operationId: pin/remote/service/ls
      description: List remote pinning services.
      externalDocs:
        url: https://docs.ipfs.tech/reference/kubo/rpc/#api-v0-pin-remote-service-ls
      parameters:
      - name: stat
        in: query
        description: Try to fetch and display current pin count on remote service (queued/pinning/pinned/failed).
        schema:
          type: boolean
          default: false
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              example:
                RemoteServices:
                - ApiEndpoint: <string>
                  Service: <string>
                  Stat:
                    PinCount:
                      Failed: <int>
                      Pinned: <int>
                      Pinning: <int>
                      Queued: <int>
                    Status: <string>
      tags:
      - PIN
      summary: Pin/remote/service/ls
      x-summary-source: derived
  /api/v0/pin/remote/service/rm:
    post:
      operationId: pin/remote/service/rm
      description: Remove remote pinning service.
      externalDocs:
        url: https://docs.ipfs.tech/reference/kubo/rpc/#api-v0-pin-remote-service-rm
      parameters:
      - name: arg
        in: query
        description: Name of remote pinning service to remove.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful response
      tags:
      - PIN
      summary: Pin/remote/service/rm
      x-summary-source: derived
  /api/v0/pin/rm:
    post:
      operationId: pin/rm
      description: Remove object from pin-list.
      externalDocs:
        url: https://docs.ipfs.tech/reference/kubo/rpc/#api-v0-pin-rm
      parameters:
      - name: arg
        in: query
        description: Path to object(s) to be unpinned.
        required: true
        schema:
          type: string
      - name: recursive
        in: query
        description: Recursively unpin the object linked to by the specified object(s).
        schema:
          type: boolean
          default: true
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              example:
                Pins:
                - <string>
      tags:
      - PIN
      summary: Pin/rm
      x-summary-source: derived
  /api/v0/pin/update:
    post:
      operationId: pin/update
      description: Update a recursive pin.
      externalDocs:
        url: https://docs.ipfs.tech/reference/kubo/rpc/#api-v0-pin-update
      parameters:
      - name: arg
        in: query
        description: 'arg0: Path to old object.


          arg1: Path to a new object to be pinned.'
        required: true
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: unpin
        in: query
        description: Remove the old pin.
        schema:
          type: boolean
          default: true
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              example:
                Pins:
                - <string>
      tags:
      - PIN
      summary: Pin/update
      x-summary-source: derived
  /api/v0/pin/verify:
    post:
      operationId: pin/verify
      description: Verify that recursive pins are complete.
      externalDocs:
        url: https://docs.ipfs.tech/reference/kubo/rpc/#api-v0-pin-verify
      parameters:
      - name: verbose
        in: query
        description: Also write the hashes of non-broken pins.
        schema:
          type: boolean
      - name: quiet
        in: query
        description: Write just hashes of broken pins.
        schema:
          type: boolean
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              example:
                Cid: <string>
                PinStatus:
                  BadNodes:
                  - Cid: <string>
                    Err: <string>
                  Ok: <bool>
      tags:
      - PIN
      summary: Pin/verify
      x-summary-source: derived
externalDocs:
  url: https://docs.ipfs.tech/reference/kubo/rpc/