# Send Pinata API to your agent
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
## Fast path
- Download the package from Yavira.
- Extract it into a folder your agent can access.
- Paste one of the prompts below and point your agent at the extracted folder.
## Suggested prompts
### New install

```text
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
```
### Upgrade existing

```text
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
```
## Machine-readable fields
```json
{
  "schemaVersion": "1.0",
  "item": {
    "slug": "pinata-api",
    "name": "Pinata API",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/iammatthias/pinata-api",
    "canonicalUrl": "https://clawhub.ai/iammatthias/pinata-api",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadUrl": "/downloads/pinata-api",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=pinata-api",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "packageFormat": "ZIP package",
    "primaryDoc": "SKILL.md",
    "includedAssets": [
      "SKILL.md"
    ],
    "downloadMode": "redirect",
    "sourceHealth": {
      "source": "tencent",
      "slug": "pinata-api",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-07T03:08:55.898Z",
      "expiresAt": "2026-05-14T03:08:55.898Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=pinata-api",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=pinata-api",
        "contentDisposition": "attachment; filename=\"pinata-api-1.0.10.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "pinata-api"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/pinata-api"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    }
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/pinata-api",
    "downloadUrl": "https://openagent3.xyz/downloads/pinata-api",
    "agentUrl": "https://openagent3.xyz/skills/pinata-api/agent",
    "manifestUrl": "https://openagent3.xyz/skills/pinata-api/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/pinata-api/agent.md"
  }
}
```
## Documentation

### 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:

PINATA_JWT (required) - Your Pinata API JWT token. Get one at app.pinata.cloud/developers/api-keys
PINATA_GATEWAY_URL (required) - Your Pinata gateway domain (e.g., your-gateway.mypinata.cloud). Find yours at app.pinata.cloud/gateway
PINATA_GATEWAY_KEY (optional) - Gateway key for accessing public IPFS content not tied to your Pinata account. See Gateway Access Controls

### 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

### 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

### 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}

### 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

Pinata Documentation
API Keys
Gateway Setup
x402 Protocol
Source (GitHub)
## Trust
- Source: tencent
- Verification: Indexed source record
- Publisher: iammatthias
- Version: 1.0.9
## Source health
- Status: healthy
- Item download looks usable.
- Yavira can redirect you to the upstream package for this item.
- Health scope: item
- Reason: direct_download_ok
- Checked at: 2026-05-07T03:08:55.898Z
- Expires at: 2026-05-14T03:08:55.898Z
- Recommended action: Download for OpenClaw
## Links
- [Detail page](https://openagent3.xyz/skills/pinata-api)
- [Send to Agent page](https://openagent3.xyz/skills/pinata-api/agent)
- [JSON manifest](https://openagent3.xyz/skills/pinata-api/agent.json)
- [Markdown brief](https://openagent3.xyz/skills/pinata-api/agent.md)
- [Download page](https://openagent3.xyz/downloads/pinata-api)