pinata-api

Pinata IPFS API for file storage, groups, gateways, signatures, x402 payments, and file vectorization.

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "pinata-api" with this command: npx skills add pinata/pinata-api

Pinata API

Access 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

Authentication

All requests require the header:

Authorization: Bearer $PINATA_JWT

Environment Variables:

Test Authentication

GET https://api.pinata.cloud/data/testAuthentication

Base URLs

  • API: https://api.pinata.cloud
  • Uploads: https://uploads.pinata.cloud

Common Parameters

  • {network} - IPFS network: public (default) or private
  • Pagination uses limit and pageToken query parameters

Files

Search Files

GET https://api.pinata.cloud/v3/files/{network}

Query parameters (all optional): name, cid, mimeType, limit, pageToken

Get File by ID

GET https://api.pinata.cloud/v3/files/{network}/{id}

Update File Metadata

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 File

DELETE https://api.pinata.cloud/v3/files/{network}/{id}

Upload File

POST https://uploads.pinata.cloud/v3/files
Content-Type: multipart/form-data

Form fields:

  • file (required) - The file to upload
  • network (optional) - public or private
  • group_id (optional) - Group to add the file to
  • keyvalues (optional) - JSON string of key-value metadata

Groups

List Groups

GET https://api.pinata.cloud/v3/groups/{network}

Query parameters (all optional): name, limit, pageToken

Create Group

POST https://api.pinata.cloud/v3/groups/{network}
Content-Type: application/json

Body:

{
  "name": "my-group"
}

Get Group

GET https://api.pinata.cloud/v3/groups/{network}/{id}

Update Group

PUT https://api.pinata.cloud/v3/groups/{network}/{id}
Content-Type: application/json

Body:

{
  "name": "updated-name"
}

Delete Group

DELETE https://api.pinata.cloud/v3/groups/{network}/{id}

Add File to Group

PUT https://api.pinata.cloud/v3/groups/{network}/{groupId}/ids/{fileId}

Remove File from Group

DELETE https://api.pinata.cloud/v3/groups/{network}/{groupId}/ids/{fileId}

Gateway & Downloads

Create Private Download Link

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 CID
  • expires (optional) - Seconds until expiry (default: 600)
  • date (required) - Current Unix timestamp in seconds
  • method (required) - HTTP method, typically GET

Create Signed Upload URL

POST 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

Signatures

EIP-712 signatures for verifying content authenticity.

Add Signature

POST https://api.pinata.cloud/v3/files/{network}/signature/{cid}
Content-Type: application/json

Body:

{
  "signature": "0x...",
  "address": "0x..."
}

Get Signature

GET https://api.pinata.cloud/v3/files/{network}/signature/{cid}

Delete Signature

DELETE https://api.pinata.cloud/v3/files/{network}/signature/{cid}

Pin By CID

Pin existing IPFS content by its CID (public network only).

Pin a CID

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)

Query Pin Requests

GET https://api.pinata.cloud/v3/files/public/pin_by_cid

Query parameters (all optional): order (ASC/DESC), status, cid, limit, pageToken

Cancel Pin Request

DELETE https://api.pinata.cloud/v3/files/public/pin_by_cid/{id}

x402 Payment Instructions

Create payment instructions for monetizing IPFS content using the x402 protocol with USDC on Base.

USDC Contract Addresses:

  • Base mainnet: 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
  • Base Sepolia (testnet): 0x036CbD53842c5426634e7929541eC2318f3dCF7e

Important: The amount field uses the smallest USDC unit (6 decimals). For example, $1.50 = "1500000".

Create Payment Instruction

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 name
  • description (optional) - Description
  • payment_requirements (required) - Array with asset (USDC contract address), pay_to (wallet address), network (base or base-sepolia), amount (smallest unit as string)

List Payment Instructions

GET https://api.pinata.cloud/v3/x402/payment_instructions

Query parameters (all optional): limit, pageToken, cid, name, id

Get Payment Instruction

GET https://api.pinata.cloud/v3/x402/payment_instructions/{id}

Delete Payment Instruction

DELETE https://api.pinata.cloud/v3/x402/payment_instructions/{id}

Associate CID with Payment

PUT https://api.pinata.cloud/v3/x402/payment_instructions/{id}/cids/{cid}

Remove CID from Payment

DELETE https://api.pinata.cloud/v3/x402/payment_instructions/{id}/cids/{cid}

Vectorize (AI Search)

Generate vector embeddings for files and perform semantic search across groups.

Vectorize a File

POST https://uploads.pinata.cloud/v3/vectorize/files/{file_id}

Delete File Vectors

DELETE https://uploads.pinata.cloud/v3/vectorize/files/{file_id}

Query Vectors (Semantic Search)

POST https://uploads.pinata.cloud/v3/vectorize/groups/{group_id}/query
Content-Type: application/json

Body:

{
  "text": "search query here"
}

Notes

  • All JSON endpoints require Content-Type: application/json
  • File uploads use multipart/form-data — do not set Content-Type manually
  • Pagination: use pageToken from the previous response to get the next page
  • Network defaults to public if not specified
  • Gateway URLs follow the pattern https://{PINATA_GATEWAY_URL}/files/{cid}

Resources

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

Cclaw

Open-source comedy AI + video editing + poster generation. Create standup/sketch/manzai/scripts, edit videos via FFmpeg, and generate comedy posters via canv...

Registry SourceRecently Updated
General

Dlazy Seedance 1.5 Pro

Convert images into dynamic dance videos using Doubao Seedance 1.5 Pro.

Registry SourceRecently Updated
General

Pod Template Pack

Use when user needs ready-to-use POD (Print on Demand) design keywords, title templates, and listing copy. Use when creating POD product listings for TikTok,...

Registry SourceRecently Updated
General

Dlazy Mj.Imagine

Generate artistic images using Midjourney (MJ) model. Supports text-to-image.

Registry SourceRecently Updated