This repository contains the specs for the vendor-agnostic pinning service API for the IPFS ecosystem
A pinning service is a service that accepts CIDs from a user in order to host the data associated with them.
The rationale behind defining a generic pinning service API is to have a baseline functionality and interface that can be provided by pinning services, so that tools can be built on top of a common base of functionality.
In this presentation, IPFS creator Juan Benet discusses current and potential pinning use cases, and how a standardized IPFS pinning API can meet these envisioned needs.
The API spec in this repo is the first step towards that future.
This API is defined as an OpenAPI spec in YAML format:
You can find human-readable API documentation generated from the YAML file here:
https://openapi-generator.tech allows generation of API client libraries (SDK generation), server stubs, documentation and configuration automatically, given the OpenAPI spec at ipfs-pinning-service.yaml.
Give it a try before you resort to implementing things from scratch.
Built-in support for pinning services exposing this API is coming to IPFS tooling:
ipfs pin remote --help
, see how to work with remote pinning services)ipfs.pin.remote.*
JS APIs)ipfs pin remote --help
commands.ENDPOINT
compatible with Pinning Service APIipfs pin remote service add pinata https://api.pinata.cloud/psa YOUR_JWT
ipfs pin remote service add nft-storage https://nft.storage/api YOUR_API_KEY
ipfs pin remote service add filebase https://api.filebase.io/v1/ipfs SECRET-ACCESS-TOKEN
{your project could be here}
– open a PR!pin remote
commandsSuggestions, contributions, and criticisms are welcome! However, please make sure to familiarize yourself deeply with IPFS, the models it adopts, and the principles it follows.
This repository falls under the IPFS Code of Conduct.
We use the following label system to identify the state of aspects of this spec: