pinata-apiPinata IPFS API for file storage, groups, gateways, signatures, x402 payments, and file vectorization.
Install via ClawdBot CLI:
clawdbot install iammatthias/pinata-apiAccess the Pinata IPFS storage API. Upload files, manage groups, create gateways, add signatures, set up x402 payments, and perform AI-powered vector search.
Repo: https://github.com/PinataCloud/pinata-api-skill
All requests require the header:
Authorization: Bearer $PINATA_JWT
Environment Variables:
PINATA_JWT (required) - Your Pinata API JWT token. Get one at app.pinata.cloud/developers/api-keysPINATA_GATEWAY_URL (required) - Your Pinata gateway domain (e.g., your-gateway.mypinata.cloud). Find yours at app.pinata.cloud/gatewayPINATA_GATEWAY_KEY (optional) - Gateway key for accessing public IPFS content not tied to your Pinata account. See Gateway Access ControlsGET https://api.pinata.cloud/data/testAuthentication
https://api.pinata.cloudhttps://uploads.pinata.cloud{network} - IPFS network: public (default) or privatelimit and pageToken query parametersGET https://api.pinata.cloud/v3/files/{network}
Query parameters (all optional): name, cid, mimeType, limit, pageToken
GET https://api.pinata.cloud/v3/files/{network}/{id}
PUT https://api.pinata.cloud/v3/files/{network}/{id}
Content-Type: application/json
Body:
{
"name": "new-name",
"keyvalues": {"key": "value"}
}
Both fields are optional.
DELETE https://api.pinata.cloud/v3/files/{network}/{id}
POST https://uploads.pinata.cloud/v3/files
Content-Type: multipart/form-data
Form fields:
file (required) - The file to uploadnetwork (optional) - public or privategroup_id (optional) - Group to add the file tokeyvalues (optional) - JSON string of key-value metadataGET https://api.pinata.cloud/v3/groups/{network}
Query parameters (all optional): name, limit, pageToken
POST https://api.pinata.cloud/v3/groups/{network}
Content-Type: application/json
Body:
{
"name": "my-group"
}
GET https://api.pinata.cloud/v3/groups/{network}/{id}
PUT https://api.pinata.cloud/v3/groups/{network}/{id}
Content-Type: application/json
Body:
{
"name": "updated-name"
}
DELETE https://api.pinata.cloud/v3/groups/{network}/{id}
PUT https://api.pinata.cloud/v3/groups/{network}/{groupId}/ids/{fileId}
DELETE https://api.pinata.cloud/v3/groups/{network}/{groupId}/ids/{fileId}
POST https://api.pinata.cloud/v3/files/private/download_link
Content-Type: application/json
Creates a temporary signed URL for accessing private files.
Body:
{
"url": "https://{PINATA_GATEWAY_URL}/files/{cid}",
"expires": 600,
"date": 1700000000,
"method": "GET"
}
url (required) - Full gateway URL using your PINATA_GATEWAY_URL and the file's CIDexpires (optional) - Seconds until expiry (default: 600)date (required) - Current Unix timestamp in secondsmethod (required) - HTTP method, typically GETPOST https://uploads.pinata.cloud/v3/files/sign
Content-Type: application/json
Creates a pre-signed URL for client-side uploads (no JWT needed on the client).
Body:
{
"date": 1700000000,
"expires": 3600
}
Optional fields: max_file_size (bytes), allow_mime_types (array), group_id, filename, keyvalues
EIP-712 signatures for verifying content authenticity.
POST https://api.pinata.cloud/v3/files/{network}/signature/{cid}
Content-Type: application/json
Body:
{
"signature": "0x...",
"address": "0x..."
}
GET https://api.pinata.cloud/v3/files/{network}/signature/{cid}
DELETE https://api.pinata.cloud/v3/files/{network}/signature/{cid}
Pin existing IPFS content by its CID (public network only).
POST https://api.pinata.cloud/v3/files/public/pin_by_cid
Content-Type: application/json
Body:
{
"cid": "bafybeig..."
}
Optional fields: name, group_id, keyvalues, host_nodes (array of multiaddrs)
GET https://api.pinata.cloud/v3/files/public/pin_by_cid
Query parameters (all optional): order (ASC/DESC), status, cid, limit, pageToken
DELETE https://api.pinata.cloud/v3/files/public/pin_by_cid/{id}
Create payment instructions for monetizing IPFS content using the x402 protocol with USDC on Base.
USDC Contract Addresses:
0x833589fCD6eDb6E08f4c7C32D4f71b54bdA029130x036CbD53842c5426634e7929541eC2318f3dCF7eImportant: The amount field uses the smallest USDC unit (6 decimals). For example, $1.50 = "1500000".
POST https://api.pinata.cloud/v3/x402/payment_instructions
Content-Type: application/json
Body:
{
"name": "My Payment",
"description": "Pay to access this content",
"payment_requirements": [
{
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"pay_to": "0xWALLET_ADDRESS",
"network": "base",
"amount": "1500000"
}
]
}
name (required) - Display namedescription (optional) - Descriptionpayment_requirements (required) - Array with asset (USDC contract address), pay_to (wallet address), network (base or base-sepolia), amount (smallest unit as string)GET https://api.pinata.cloud/v3/x402/payment_instructions
Query parameters (all optional): limit, pageToken, cid, name, id
GET https://api.pinata.cloud/v3/x402/payment_instructions/{id}
DELETE https://api.pinata.cloud/v3/x402/payment_instructions/{id}
PUT https://api.pinata.cloud/v3/x402/payment_instructions/{id}/cids/{cid}
DELETE https://api.pinata.cloud/v3/x402/payment_instructions/{id}/cids/{cid}
Generate vector embeddings for files and perform semantic search across groups.
POST https://uploads.pinata.cloud/v3/vectorize/files/{file_id}
DELETE https://uploads.pinata.cloud/v3/vectorize/files/{file_id}
POST https://uploads.pinata.cloud/v3/vectorize/groups/{group_id}/query
Content-Type: application/json
Body:
{
"text": "search query here"
}
Content-Type: application/jsonmultipart/form-data — do not set Content-Type manuallypageToken from the previous response to get the next pagepublic if not specifiedhttps://{PINATA_GATEWAY_URL}/files/{cid}Generated Mar 1, 2026
A platform for creators to upload and monetize digital content like videos or e-books using IPFS storage and x402 payments. Users pay in USDC to access private files, with signatures ensuring content authenticity and groups organizing collections.
Developers use this skill to store and update NFT metadata files on IPFS, leveraging groups to categorize assets and signatures for verifiable provenance. It simplifies managing large-scale NFT projects with efficient file search and updates.
Businesses share confidential documents internally by uploading files to private IPFS networks, creating temporary download links for controlled access. Groups help organize documents by department, and signatures verify document integrity.
Integrate file vectorization for semantic search across stored documents, enabling users to find content based on meaning rather than keywords. This is useful for research platforms or knowledge bases needing advanced retrieval capabilities.
Online stores host product images and descriptions on IPFS, using groups to manage categories and gateways for fast delivery. x402 payments allow pay-per-view access to premium content like digital manuals or exclusive media.
Offer tiered plans where users pay monthly fees for increased IPFS storage limits and advanced features like AI vector search or priority support. Revenue comes from recurring subscriptions, with upsells for additional services like custom gateway setups.
Enable content creators to charge per download or view using x402 payments with USDC, taking a small transaction fee on each payment. This model works well for digital goods, courses, or exclusive media, generating revenue from microtransactions.
Provide white-label solutions for businesses needing secure file management, with custom integrations for signatures, groups, and private gateways. Revenue is generated through licensing fees, setup costs, and ongoing maintenance contracts.
💬 Integration Tip
Ensure PINATA_JWT and PINATA_GATEWAY_URL are securely set as environment variables, and test authentication first to avoid common API errors.
Use the mcporter CLI to list, configure, auth, and call MCP servers/tools directly (HTTP or stdio), including ad-hoc servers, config edits, and CLI/type generation.
Connect to 100+ APIs (Google Workspace, Microsoft 365, GitHub, Notion, Slack, Airtable, HubSpot, etc.) with managed OAuth. Use this skill when users want to...
Build, debug, and deploy websites using HTML, CSS, JavaScript, and modern frameworks following production best practices.
YouTube Data API integration with managed OAuth. Search videos, manage playlists, access channel data, and interact with comments. Use this skill when users want to interact with YouTube. For other third party apps, use the api-gateway skill (https://clawhub.ai/byungkyu/api-gateway).
Scaffold, test, document, and debug REST and GraphQL APIs. Use when the user needs to create API endpoints, write integration tests, generate OpenAPI specs, test with curl, mock APIs, or troubleshoot HTTP issues.
Search for jobs across LinkedIn, Indeed, Glassdoor, ZipRecruiter, Google Jobs, Bayt, Naukri, and BDJobs using the JobSpy MCP server.