API Documentation
IPFS Pinning Service API - Spec-compliant and fully compatible with IPFS CLI
Real-World Applications
See how developers and organisations are using IPFS for gaming, music, scientific research, and more
Explore Use CasesPinning Service API
Spec-compliant IPFS Pinning Service API for seamless integration
IPFS CLI
Native IPFS CLI support with remote pinning service integration
Gateway Access
On-demand pinning with automatic content retrieval
Quick Start Guide
Get started with our IPFS pinning service in three simple steps:
Create an Account
Sign up for a free account to get started. 1 GB storage included.
Generate API Key
Create an API key from your Developer page. Keep it secure and never share it publicly.
Start Pinning
Use the IPFS CLI, REST API, or web interface to pin your content to IPFS.
Authentication
All API requests require authentication using an API key. Include your API key in the Authorisation header:
Authorization: Bearer YOUR_API_KEYYou can generate API keys from your Developer page. Each key can be assigned specific permissions.
IPFS CLI Setup
Our service is fully compatible with the native IPFS CLI (Kubo 0.8+). Add the service as a remote pinning service:
Add Service
ipfs pin remote service add pinning \
https://your-service.com/api/pinning \
YOUR_API_KEYCommon Commands
Pin content:
ipfs pin remote add --service=pinning --name="my-file" QmXxx...List pins:
ipfs pin remote ls --service=pinning --status=pinnedRemove pin:
ipfs pin remote rm --service=pinning --cid=QmXxx...Pinning Service API
We implement the official IPFS Pinning Service API specification, ensuring full compatibility with standard IPFS tools.
Base URL: /api/pinning
Native IPFS CLI compatibility
Works seamlessly with ipfs pin remote commands
CID-based pinning
Pin existing CIDs from the IPFS network without re-uploading
Flexible upload options
Upload via local IPFS node, web interface, or directly to cluster
On-demand pinning
Content automatically pinned to IPFS when first accessed via gateway
List Pins
/api/pinning/pinsList pin objects with optional filtering and pagination
Query Parameters
| Parameter | Type | Description |
|---|---|---|
| cid | string[] | Filter by CID (can specify multiple) |
| status | Status[] | Filter by status: queued, pinning, pinned, failed |
| name | string | Filter by exact name |
| limit | number | Max results (default: 10, max: 1000) |
Request
curl "https://your-service.com/api/pinning/pins?status=pinned&limit=10" \
-H "Authorization: Bearer YOUR_API_KEY"Add Pin
/api/pinning/pinsCreate a new pin request for a CID already in the IPFS network
Request Body
{
"cid": "QmXxx...",
"name": "my-document.pdf",
"origins": [
"/ip4/203.0.113.1/tcp/4001/p2p/QmSourcePeerId"
],
"meta": {
"app": "my-app"
}
}Response 201 Created
{
"requestid": "clxyz456",
"status": "queued",
"created": "2025-10-13T12:05:00Z",
"pin": {
"cid": "QmXxx...",
"name": "my-document.pdf"
},
"delegates": ["/dns4/cluster.example.com/tcp/4001/p2p/QmPeerId"]
}Get Pin Status
/api/pinning/pins/{requestid}Get the status and details of a specific pin request
Request
curl "https://your-service.com/api/pinning/pins/clxyz123" \
-H "Authorization: Bearer YOUR_API_KEY"Status Values
queued- Pin request received, waiting to startpinning- Currently fetching and pinning contentpinned- Successfully pinned on all replicasfailed- Pin operation failed
Update Pin
/api/pinning/pins/{requestid}Replace pin metadata (name, origins, meta). The CID cannot be changed.
Request Body
{
"cid": "QmXxx...",
"name": "updated-name.jpg",
"meta": {
"app": "my-app",
"tag": "updated"
}
}Delete Pin
/api/pinning/pins/{requestid}Remove a pin and unpin content from the cluster
Request
curl -X DELETE "https://your-service.com/api/pinning/pins/clxyz123" \
-H "Authorization: Bearer YOUR_API_KEY"Response 202 Accepted
Unpins from cluster immediately and updates storage quota
On-Demand Pinning
Files are automatically pinned to IPFS when first accessed through our gateway. This eliminates the need for manual pinning of uploaded content.
How It Works
- 1
File Upload
Upload files via web interface or API, stored in MinIO
- 2
First Access
When accessed via gateway, file is automatically pinned to IPFS
- 3
Cluster Distribution
File is distributed across cluster nodes for redundancy
Benefit: Reduces bandwidth waste and speeds up uploads. Files are pinned only when actually needed.
Gateway Access
Access your pinned content through our IPFS gateway. Files are served with on-demand pinning support.
Gateway URL
/api/gateway/{cid}Features
- Automatic on-demand pinning when file is accessed
- Access metrics tracking (view count, last accessed)
- Redirects to IPFS gateway for actual content delivery
- Seamless integration with dashboard file links
Pin from CID
Pin existing content from the IPFS network without re-uploading. Perfect for pinning content from other IPFS nodes or gateways.
Upload Options
Local IPFS Node
Upload to your local IPFS node, then pin to our service:
ipfs add file.jpg
ipfs pin remote add --service=pinning --name="file.jpg" QmXxx...Web Interface
Use the "Pin from CID" feature on the Files page to pin existing CIDs.
Direct Upload
Upload directly via our web interface or API endpoints for seamless integration.