QuickNode · Capability

QuickNode IPFS REST API — Pinning

QuickNode IPFS REST API — Pinning. 5 operations. Lead operation: List pinned objects. Self-contained Naftiko capability covering one Quicknode business surface.

Run with Naftiko QuicknodePinning

What You Can Do

GET
Listpins — List pinned objects
/v1/v1/pinning
POST
Pinbycid — Pin an existing CID
/v1/v1/pinning
GET
Getpin — Get a pin by request id
/v1/v1/pinning/{requestid}
DELETE
Deletepin — Unpin an object
/v1/v1/pinning/{requestid}
POST
Putobject — Upload and pin a file
/v1/v1/s3/put-object

MCP Tools

list-pinned-objects

List pinned objects

read-only idempotent
pin-existing-cid

Pin an existing CID

get-pin-request-id

Get a pin by request id

read-only idempotent
unpin-object

Unpin an object

idempotent
upload-and-pin-file

Upload and pin a file

Capability Spec

ipfs-pinning.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: QuickNode IPFS REST API — Pinning
  description: 'QuickNode IPFS REST API — Pinning. 5 operations. Lead operation: List pinned objects. Self-contained Naftiko
    capability covering one Quicknode business surface.'
  tags:
  - Quicknode
  - Pinning
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    QUICKNODE_API_KEY: QUICKNODE_API_KEY
capability:
  consumes:
  - type: http
    namespace: ipfs-pinning
    baseUri: https://api.quicknode.com/ipfs/rest
    description: QuickNode IPFS REST API — Pinning business capability. Self-contained, no shared references.
    resources:
    - name: v1-pinning
      path: /v1/pinning
      operations:
      - name: listpins
        method: GET
        description: List pinned objects
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: pinbycid
        method: POST
        description: Pin an existing CID
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: v1-pinning-requestId
      path: /v1/pinning/{requestId}
      operations:
      - name: getpin
        method: GET
        description: Get a pin by request id
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: requestId
          in: path
          type: string
          required: true
      - name: deletepin
        method: DELETE
        description: Unpin an object
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: requestId
          in: path
          type: string
          required: true
    - name: v1-s3-put-object
      path: /v1/s3/put-object
      operations:
      - name: putobject
        method: POST
        description: Upload and pin a file
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    authentication:
      type: apikey
      key: x-api-key
      value: '{{env.QUICKNODE_API_KEY}}'
      placement: header
  exposes:
  - type: rest
    namespace: ipfs-pinning-rest
    port: 8080
    description: REST adapter for QuickNode IPFS REST API — Pinning. One Spectral-compliant resource per consumed operation,
      prefixed with /v1.
    resources:
    - path: /v1/v1/pinning
      name: v1-pinning
      description: REST surface for v1-pinning.
      operations:
      - method: GET
        name: listpins
        description: List pinned objects
        call: ipfs-pinning.listpins
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: pinbycid
        description: Pin an existing CID
        call: ipfs-pinning.pinbycid
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/pinning/{requestid}
      name: v1-pinning-requestid
      description: REST surface for v1-pinning-requestId.
      operations:
      - method: GET
        name: getpin
        description: Get a pin by request id
        call: ipfs-pinning.getpin
        with:
          requestId: rest.requestId
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deletepin
        description: Unpin an object
        call: ipfs-pinning.deletepin
        with:
          requestId: rest.requestId
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/s3/put-object
      name: v1-s3-put-object
      description: REST surface for v1-s3-put-object.
      operations:
      - method: POST
        name: putobject
        description: Upload and pin a file
        call: ipfs-pinning.putobject
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: ipfs-pinning-mcp
    port: 9090
    transport: http
    description: MCP adapter for QuickNode IPFS REST API — Pinning. One tool per consumed operation, routed inline through
      this capability's consumes block.
    tools:
    - name: list-pinned-objects
      description: List pinned objects
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: ipfs-pinning.listpins
      outputParameters:
      - type: object
        mapping: $.
    - name: pin-existing-cid
      description: Pin an existing CID
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: ipfs-pinning.pinbycid
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: get-pin-request-id
      description: Get a pin by request id
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: ipfs-pinning.getpin
      with:
        requestId: tools.requestId
      outputParameters:
      - type: object
        mapping: $.
    - name: unpin-object
      description: Unpin an object
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: ipfs-pinning.deletepin
      with:
        requestId: tools.requestId
      outputParameters:
      - type: object
        mapping: $.
    - name: upload-and-pin-file
      description: Upload and pin a file
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: ipfs-pinning.putobject
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.