IPFS Pin API

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

Operations 11

POST /api/v0/pin/add #
POST /api/v0/pin/ls #
POST /api/v0/pin/remote/add #
POST /api/v0/pin/remote/ls #
POST /api/v0/pin/remote/rm #
POST /api/v0/pin/remote/service/add #
POST /api/v0/pin/remote/service/ls #
POST /api/v0/pin/remote/service/rm #
POST /api/v0/pin/rm #
POST /api/v0/pin/update #
POST /api/v0/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.


    In many cases, using this RPC API is preferable to embedding IPFS directly in your program — it allows you to maintain peer connections that are longer lived than your app and you can keep a single IPFS node running instead of several if your app can be launched multiple times. In fact, the `ipfs` CLI commands use this RPC API when operating in online mode.'
  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
  /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
  /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
  /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
  /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
  /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
  /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
  /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
  /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
  /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
  /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
externalDocs:
  url: https://docs.ipfs.tech/reference/kubo/rpc/