بنقرة واحدة
pinata-api
Pinata IPFS API for file storage, groups, gateways, signatures, x402 payments, and file vectorization.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Pinata IPFS API for file storage, groups, gateways, signatures, x402 payments, and file vectorization.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
| name | pinata-api |
| description | Pinata IPFS API for file storage, groups, gateways, signatures, x402 payments, and file vectorization. |
| homepage | https://pinata.cloud |
| metadata | {"openclaw":{"emoji":"📌","requires":{"env":["PINATA_JWT","PINATA_GATEWAY_URL"]},"primaryEnv":"PINATA_JWT"}} |
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
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}