A Claude Code skill for interacting with Pinata's IPFS storage services. Manage files, groups, gateways, signatures, payments, and AI-powered vector search.
Skill URL: https://clawhub.ai/iammatthias/pinata-api
Set the following environment variables:
| Variable | Required | Description |
|---|---|---|
PINATA_JWT |
Yes | Your Pinata API JWT token |
PINATA_GATEWAY_URL |
Yes | Your Pinata gateway domain (e.g., your-gateway.mypinata.cloud) |
PINATA_GATEWAY_KEY |
No | Gateway key for accessing public IPFS content not tied to your account. See Gateway Access Controls |
testAuthentication()- Verify your Pinata JWT is valid
searchFiles({ network?, name?, cid?, mimeType?, limit?, pageToken? })- Search filesgetFileById({ network?, id })- Get file by IDupdateFile({ network?, id, name?, keyvalues? })- Update file metadatadeleteFile({ network?, id })- Delete a fileuploadFile({ file, fileName, network?, group_id?, keyvalues? })- Upload a file
listGroups({ network?, name?, limit?, pageToken? })- List groupscreateGroup({ network?, name })- Create a groupgetGroup({ network?, id })- Get group by IDupdateGroup({ network?, id, name })- Update groupdeleteGroup({ network?, id })- Delete a groupaddFileToGroup({ network?, groupId, fileId })- Add file to groupremoveFileFromGroup({ network?, groupId, fileId })- Remove file from group
createPrivateDownloadLink({ cid, expires? })- Create temporary download linkcreateSignedUploadUrl({ expires, max_file_size?, allow_mime_types?, group_id?, filename?, keyvalues? })- Create signed upload URL for client-side uploads
addSignature({ network?, cid, signature, address })- Add EIP-712 signaturegetSignature({ network?, cid })- Get signature for CIDdeleteSignature({ network?, cid })- Delete signature
pinByCid({ cid, name?, group_id?, keyvalues?, host_nodes? })- Pin existing IPFS contentqueryPinRequests({ order?, status?, cid?, limit?, pageToken? })- Query pin request statuscancelPinRequest({ id })- Cancel pending pin request
createPaymentInstruction({ name, pay_to, amount_usdc, network?, description? })- Create payment instructionlistPaymentInstructions({ limit?, pageToken?, cid?, name?, id? })- List payment instructionsgetPaymentInstruction({ id })- Get payment instructiondeletePaymentInstruction({ id })- Delete payment instructionaddCidToPaymentInstruction({ id, cid })- Associate CID with paymentremoveCidFromPaymentInstruction({ id, cid })- Remove CID from payment
vectorizeFile({ file_id })- Generate vector embeddings for a filedeleteFileVectors({ file_id })- Delete vectors for a filequeryVectors({ group_id, text })- Semantic search within a group
| Parameter | Description |
|---|---|
network |
IPFS network: "public" (default) or "private" |
amount_usdc |
USD amount as string (e.g., "1.50" for $1.50) |
blockchain network |
For payments: "base" (default) or "base-sepolia" |