# Pinata Docs ## Docs - [API keys](https://pinata-mintlify-5df45191.mintlify.app/account-management/api-keys.md): Create, scope, and revoke Pinata API keys from the dashboard, then authenticate requests to the Files API and legacy IPFS API with a JWT. - [Billing and usage](https://pinata-mintlify-5df45191.mintlify.app/account-management/billing.md): Upgrade your Pinata plan, monitor monthly storage and gateway bandwidth usage, and update payment methods from the billing dashboard. - [Pinata rate limits and plan limits](https://pinata-mintlify-5df45191.mintlify.app/account-management/limits.md): Reference for Pinata API rate limits, gateway request caps, and storage allowances across Free, Picnic, Fiesta, and Enterprise plans. - [Webhooks](https://pinata-mintlify-5df45191.mintlify.app/account-management/webhooks.md): Subscribe a server endpoint to Pinata events like uploads and deletes so your app reacts to file activity in real time using webhooks. - [Workspaces and team collaboration](https://pinata-mintlify-5df45191.mintlify.app/account-management/workspaces.md): Invite teammates to a shared Pinata workspace, manage seats on Picnic and Fiesta plans, and collaborate on uploads, gateways, and groups. - [Pinata Agents HTTP API reference](https://pinata-mintlify-5df45191.mintlify.app/agents/api.md): Authenticate, manage AI agents, run commands, and talk to gateways over the Pinata Agents HTTP API with examples for every endpoint. - [Agent channels: Telegram, Slack, Discord](https://pinata-mintlify-5df45191.mintlify.app/agents/channels.md): Connect your Pinata agent to Telegram, Slack, or Discord so users can chat with it directly from the messaging apps they already use. - [Chat with your Pinata agent](https://pinata-mintlify-5df45191.mintlify.app/agents/chat.md): Talk to your hosted Pinata agent through the web chat interface, share context, attach files, and review the agent's actions in one place. - [Pinata Agents concepts and architecture](https://pinata-mintlify-5df45191.mintlify.app/agents/concepts.md): Learn the terminology, file layout, runtime model, and architecture behind Pinata Agents so you can reason about how the pieces fit together. - [Agent console: terminal access](https://pinata-mintlify-5df45191.mintlify.app/agents/console.md): Open a real interactive terminal inside your Pinata agent's container to inspect files, run commands, and debug issues in real time. - [Agent inventory, restart, and delete](https://pinata-mintlify-5df45191.mintlify.app/agents/devtools.md): Use the Danger panel to view your full Pinata agent inventory, restart misbehaving agents, and permanently delete agents you no longer need. - [Pinata Agents API error reference](https://pinata-mintlify-5df45191.mintlify.app/agents/errors.md): Look up any Pinata Agents API error code, understand what it means, and follow the steps required to resolve the issue and unblock your agent. - [Agent issues and kanban boards](https://pinata-mintlify-5df45191.mintlify.app/agents/issues.md): Assign work to Pinata agents on a kanban board, review the diffs they produce, request changes, and ship completed pull requests to your repo. - [Stream Pinata agent engine logs](https://pinata-mintlify-5df45191.mintlify.app/agents/logs.md): Stream the live output from your Pinata agent's engine, follow tool calls and model responses, and debug runs as they happen in real time. - [Pinata agent manifest.json reference](https://pinata-mintlify-5df45191.mintlify.app/agents/manifest.md): Reference for every field in manifest.json, the source of truth for a Pinata agent's models, skills, secrets, routes, and runtime configuration. - [Choose AI models for your Pinata agent](https://pinata-mintlify-5df45191.mintlify.app/agents/models.md): Pick which large language models your Pinata agent can call, mix providers, and control which model handles chat, tools, and background tasks. - [Pinata Agents overview](https://pinata-mintlify-5df45191.mintlify.app/agents/overview.md): Pinata Agents are hosted AI agents that run code, manage files, call external services, and integrate with chat platforms, all from one dashboard. - [Agent domains and HTTP routes](https://pinata-mintlify-5df45191.mintlify.app/agents/routes.md): Expose web services running inside your Pinata agent to the internet using custom domains and HTTP routes, complete with TLS and auth options. - [Manage agent secrets and API keys](https://pinata-mintlify-5df45191.mintlify.app/agents/secrets.md): Store API keys, tokens, and credentials your Pinata agent needs to call external services, scoped per agent and injected at runtime safely. - [Agent skills: reusable capabilities](https://pinata-mintlify-5df45191.mintlify.app/agents/skills.md): Skills are reusable capability packages you attach to a Pinata agent to add new tools, integrations, and behavior without rewriting the manifest. - [Agent files and workspace snapshots](https://pinata-mintlify-5df45191.mintlify.app/agents/snapshots.md): Browse, version, and edit your Pinata agent's workspace from the dashboard, then roll back to any earlier snapshot when something goes wrong. - [Schedule recurring tasks for an agent](https://pinata-mintlify-5df45191.mintlify.app/agents/tasks.md): Run prompts against your Pinata agent on a schedule using cron expressions so it can monitor sources, send reports, and perform routine work. - [Create and publish an agent template](https://pinata-mintlify-5df45191.mintlify.app/agents/templates/creating.md): Package and share your Pinata agent configuration as a reusable template so other developers can deploy preconfigured agents in one click. - [Agent templates: one-click deploys](https://pinata-mintlify-5df45191.mintlify.app/agents/templates/overview.md): Deploy preconfigured Pinata agents in a single click, browse community templates, and use them as starting points for your own AI agents. - [Troubleshoot a misbehaving Pinata agent](https://pinata-mintlify-5df45191.mintlify.app/agents/troubleshooting.md): Diagnostic checklist for fixing a Pinata agent that won't start, ignores instructions, fails tool calls, or burns through context unexpectedly. - [Add File To Group](https://pinata-mintlify-5df45191.mintlify.app/api-reference/endpoint/add-file-to-group.md): `org:groups:write` - [Add Signature to CId](https://pinata-mintlify-5df45191.mintlify.app/api-reference/endpoint/add-signature-to-cid.md): `org:files:write` - [Add Swap](https://pinata-mintlify-5df45191.mintlify.app/api-reference/endpoint/add-swap.md): `org:files:write` - [Cancel Request](https://pinata-mintlify-5df45191.mintlify.app/api-reference/endpoint/cancel-pin-by-cid.md): `org:files:write` - [Create Group](https://pinata-mintlify-5df45191.mintlify.app/api-reference/endpoint/create-group.md): `org:groups:write` - [Create Signed Upload URL](https://pinata-mintlify-5df45191.mintlify.app/api-reference/endpoint/create-signed-upload-url.md): `org:files:write` - [Delete File by ID](https://pinata-mintlify-5df45191.mintlify.app/api-reference/endpoint/delete-file-by-id.md): `org:files:write` - [Delete File Vectors](https://pinata-mintlify-5df45191.mintlify.app/api-reference/endpoint/delete-file-vectors.md): `org:write` - [Delete Group](https://pinata-mintlify-5df45191.mintlify.app/api-reference/endpoint/delete-group.md): `org:groups:write` - [Get File by ID](https://pinata-mintlify-5df45191.mintlify.app/api-reference/endpoint/get-file-by-id.md): `org:files:read` - [Get Group](https://pinata-mintlify-5df45191.mintlify.app/api-reference/endpoint/get-group.md): `org:groups:read` - [Get Signature for a CID](https://pinata-mintlify-5df45191.mintlify.app/api-reference/endpoint/get-signature-for-a-cid.md): `org:files:read` - [Create Download Link](https://pinata-mintlify-5df45191.mintlify.app/api-reference/endpoint/get-signed-url.md): `org:files:write` - [Get Swap History](https://pinata-mintlify-5df45191.mintlify.app/api-reference/endpoint/get-swap-history.md): `org:files:read` - [Create Custom Domain for Gateway](https://pinata-mintlify-5df45191.mintlify.app/api-reference/endpoint/ipfs/create-custom-domain-for-gateway.md): `org:gateways:write` - [Create Gateway](https://pinata-mintlify-5df45191.mintlify.app/api-reference/endpoint/ipfs/create-gateway.md): `org:gateways:write` - [Create Gateway Host Origin Restriction](https://pinata-mintlify-5df45191.mintlify.app/api-reference/endpoint/ipfs/create-gateway-host-origin-restriction.md): `org:gateways:write` - [Create Gateway IP Address Restriction](https://pinata-mintlify-5df45191.mintlify.app/api-reference/endpoint/ipfs/create-gateway-ip-address-restriction.md): `org:gateways:write` - [Create Gateway Key Restriction](https://pinata-mintlify-5df45191.mintlify.app/api-reference/endpoint/ipfs/create-gateway-key-restriction.md): `org:gateways:write` - [Delete Gateway](https://pinata-mintlify-5df45191.mintlify.app/api-reference/endpoint/ipfs/delete-gateway.md): `org:gateways:write` - [Delete Gateway Custom Domain](https://pinata-mintlify-5df45191.mintlify.app/api-reference/endpoint/ipfs/delete-gateway-custom-domain.md): `org:gateways:write` - [Gateway Custom Domain Details](https://pinata-mintlify-5df45191.mintlify.app/api-reference/endpoint/ipfs/gateway-custom-domain-details.md): `org:gateways:read` - [Gateway Details](https://pinata-mintlify-5df45191.mintlify.app/api-reference/endpoint/ipfs/gateway-details.md): `org:gateways:read` - [Gateway Domain Available](https://pinata-mintlify-5df45191.mintlify.app/api-reference/endpoint/ipfs/gateway-domain-available.md): `org:gateways:read` - [Get Marketplace Plugin Details](https://pinata-mintlify-5df45191.mintlify.app/api-reference/endpoint/ipfs/get-marketplace-plugin-details.md): `org:gateways:read` - [Install Gateway Plugin](https://pinata-mintlify-5df45191.mintlify.app/api-reference/endpoint/ipfs/install-gateway-plugin.md): `org:gateways:write` - [List Gateway Plugins](https://pinata-mintlify-5df45191.mintlify.app/api-reference/endpoint/ipfs/list-gateway-plugins.md): `org:gateways:read` - [List Gateways](https://pinata-mintlify-5df45191.mintlify.app/api-reference/endpoint/ipfs/list-gateways.md): `org:gateways:read` - [List Installed Plugins for Gateway](https://pinata-mintlify-5df45191.mintlify.app/api-reference/endpoint/ipfs/list-installed-plugins-for-gateway.md): `org:gateways:read` - [List Marketplace Plugins](https://pinata-mintlify-5df45191.mintlify.app/api-reference/endpoint/ipfs/list-marketplace-plugins.md): `org:gateways:read` - [Revoke Gateway Key](https://pinata-mintlify-5df45191.mintlify.app/api-reference/endpoint/ipfs/revoke-gateway-key.md): `org:gateways:write` - [Revoke Host Origin Restriction](https://pinata-mintlify-5df45191.mintlify.app/api-reference/endpoint/ipfs/revoke-host-origin-restriction.md): `org:gateways:write` - [Revoke IP Address Restricton](https://pinata-mintlify-5df45191.mintlify.app/api-reference/endpoint/ipfs/revoke-ip-address-restricton.md): `org:gateways:write: - [Time Interval Gateway Analytics](https://pinata-mintlify-5df45191.mintlify.app/api-reference/endpoint/ipfs/time-interval-gateway-analytics.md): `org:analytics:read` - [Top Gateway Analytics](https://pinata-mintlify-5df45191.mintlify.app/api-reference/endpoint/ipfs/top-gateway-analytics.md): `org:analytics:read` - [Uninstall Gateway Plugin](https://pinata-mintlify-5df45191.mintlify.app/api-reference/endpoint/ipfs/uninstall-gateway-plugin.md): `org:gateways:write` - [List Files](https://pinata-mintlify-5df45191.mintlify.app/api-reference/endpoint/list-files.md): `org:files:read` - [List Groups](https://pinata-mintlify-5df45191.mintlify.app/api-reference/endpoint/list-groups.md): `org:groups:read` - [Pin by CID](https://pinata-mintlify-5df45191.mintlify.app/api-reference/endpoint/pin-by-cid.md): `org:files:write` - [Query File Vectors](https://pinata-mintlify-5df45191.mintlify.app/api-reference/endpoint/query-file-vectors.md): `org:write` - [Query Pin Requests](https://pinata-mintlify-5df45191.mintlify.app/api-reference/endpoint/query-pin-requests.md): `org:files:read` - [Remove File From Group](https://pinata-mintlify-5df45191.mintlify.app/api-reference/endpoint/remove-file-from-group.md): `org:groups:write` - [Remove Signature from CID](https://pinata-mintlify-5df45191.mintlify.app/api-reference/endpoint/remove-signature-from-cid.md): `org:files:write` - [Remove Swap](https://pinata-mintlify-5df45191.mintlify.app/api-reference/endpoint/remove-swap.md): `org:files:write` - [Update File](https://pinata-mintlify-5df45191.mintlify.app/api-reference/endpoint/update-file.md): `org:files:write` - [Update Group](https://pinata-mintlify-5df45191.mintlify.app/api-reference/endpoint/update-group.md): `org:groups:write` - [Upload a File](https://pinata-mintlify-5df45191.mintlify.app/api-reference/endpoint/upload-a-file.md): `org:files:write` - [Create API Key](https://pinata-mintlify-5df45191.mintlify.app/api-reference/endpoint/v3-create-api-key.md): `org:write` - [List API Keys](https://pinata-mintlify-5df45191.mintlify.app/api-reference/endpoint/v3-list-api-keys.md): `org:write` - [Revoke API Key](https://pinata-mintlify-5df45191.mintlify.app/api-reference/endpoint/v3-revoke-api-key.md): `org:write` - [Vectorize a File](https://pinata-mintlify-5df45191.mintlify.app/api-reference/endpoint/vectorize-file.md): `org:write` - [Add CID to Payment Instruction](https://pinata-mintlify-5df45191.mintlify.app/api-reference/endpoint/x402/cids-add.md): Associates a CID with a payment instruction - [List CIDs for Payment Instruction](https://pinata-mintlify-5df45191.mintlify.app/api-reference/endpoint/x402/cids-list.md): Returns a paginated list of CIDs associated with a payment instruction - [Remove CID from Payment Instruction](https://pinata-mintlify-5df45191.mintlify.app/api-reference/endpoint/x402/cids-remove.md): Removes a CID association from a payment instruction - [Create Payment Instruction](https://pinata-mintlify-5df45191.mintlify.app/api-reference/endpoint/x402/payment-instructions-create.md): Creates a new payment instruction - [Delete Payment Instruction](https://pinata-mintlify-5df45191.mintlify.app/api-reference/endpoint/x402/payment-instructions-delete.md): Deletes a payment instruction (soft delete). All CID mappings must be deleted first. - [Get Payment Instruction](https://pinata-mintlify-5df45191.mintlify.app/api-reference/endpoint/x402/payment-instructions-get.md): Retrieves a specific payment instruction by ID - [List Payment Instructions](https://pinata-mintlify-5df45191.mintlify.app/api-reference/endpoint/x402/payment-instructions-list.md): Returns a paginated list of payment instructions - [Update Payment Instruction](https://pinata-mintlify-5df45191.mintlify.app/api-reference/endpoint/x402/payment-instructions-update.md): Updates an existing payment instruction - [Upload a File](https://pinata-mintlify-5df45191.mintlify.app/api-reference/endpoint/x402/pin.md): Uploads a file to Pinata's public IPFS network - [Retrieve a Private File](https://pinata-mintlify-5df45191.mintlify.app/api-reference/endpoint/x402/retrieve.md): Retrieves a private file from IPFS by its CID - [Pinata API introduction and authentication](https://pinata-mintlify-5df45191.mintlify.app/api-reference/introduction.md): Start with the Pinata API: authenticate with a JWT, pick between the v3 Files API and IPFS API, and find endpoints for uploads and gateways. - [Deleting Files](https://pinata-mintlify-5df45191.mintlify.app/files/deleting-files.md): Delete files from Pinata permanently using the SDK delete method, the Files API, or the dashboard to remove single files or files in bulk. - [Organize uploads with file groups](https://pinata-mintlify-5df45191.mintlify.app/files/file-groups.md): Use Pinata groups to organize your uploads through the app, SDK, or API, add and remove files, and keep track of what each set of CIDs is for. - [Key-Values](https://pinata-mintlify-5df45191.mintlify.app/files/key-values.md): Attach up to ten custom key-value pairs to any Pinata upload so you can tag, query, and update files with metadata that fits your app's needs. - [List and query files on Pinata](https://pinata-mintlify-5df45191.mintlify.app/files/listing-files.md): Query files uploaded to Pinata by name, key-value tags, group, date, and more using the SDK or Files API to power dashboards and search. - [MPP Server](https://pinata-mintlify-5df45191.mintlify.app/files/mpp/overview.md): The MPP Server enables account-free IPFS uploads and downloads using crypto payments via the Machine Payments Protocol on Cloudflare Workers. - [MPP Server quickstart for IPFS uploads](https://pinata-mintlify-5df45191.mintlify.app/files/mpp/quickstart.md): Upload and download files from IPFS using the hosted Pinata MPP Server, pay per request with crypto, and skip account creation entirely. - [Self-host the Pinata MPP Server](https://pinata-mintlify-5df45191.mintlify.app/files/mpp/self-hosting.md): Deploy your own Machine Payments Protocol server for Pinata on Cloudflare Workers with custom pricing, wallets, and request handling logic. - [Collections](https://pinata-mintlify-5df45191.mintlify.app/files/nft-backup/collections.md): View NFT collections you've backed up to Pinata, inspect the IPFS CIDs for each token, and confirm that all metadata and media is fully pinned. - [Back up NFT collections to Pinata](https://pinata-mintlify-5df45191.mintlify.app/files/nft-backup/overview.md): Back up NFT collections to Pinata by syncing wallets, pinning the IPFS CIDs for every token, and keeping a permanent copy of media and metadata. - [Sync NFT collections to Pinata](https://pinata-mintlify-5df45191.mintlify.app/files/nft-backup/sync.md): Pin every CID referenced by your NFT collections to Pinata so the media and metadata stay available even if other pinning services go down. - [Add wallets to back up NFTs](https://pinata-mintlify-5df45191.mintlify.app/files/nft-backup/wallets.md): Add Ethereum, Polygon, and other EVM wallets to Pinata so it can find every NFT you own and back the underlying CIDs up to IPFS automatically. - [Presigned URLs](https://pinata-mintlify-5df45191.mintlify.app/files/presigned-urls.md): Generate presigned upload URLs on your server so client apps can upload files directly to Pinata without exposing API keys or JWT tokens. - [Private IPFS](https://pinata-mintlify-5df45191.mintlify.app/files/private-ipfs.md): Pinata Private IPFS keeps your content off the public DHT and only serves it to authorized requests, combining IPFS addressing with access control. - [Signatures](https://pinata-mintlify-5df45191.mintlify.app/files/signatures.md): Cryptographically sign IPFS CIDs with a wallet using Pinata so consumers can verify content authenticity and prove who published a given file. - [Uploading Files](https://pinata-mintlify-5df45191.mintlify.app/files/uploading-files.md): Upload files to public or private IPFS through Pinata using the SDK, Files API, or app, including large files, JSON, base64, and CID pins. - [File vectors for AI (beta)](https://pinata-mintlify-5df45191.mintlify.app/files/vectors.md): Upload a file to Pinata and vectorize it in one step on Private IPFS so AI apps can run similarity search and retrieval without separate storage. - [Introduction to Pinata x402 monetization](https://pinata-mintlify-5df45191.mintlify.app/files/x402/intro.md): Use Pinata x402 to monetize private IPFS files with USDC payments sent directly to your wallet, with no third-party processors in the middle. - [Accessing Paid Content](https://pinata-mintlify-5df45191.mintlify.app/files/x402/x402-accessing-paid-content.md): Access x402-protected content on Pinata: request a file, read the payment requirements, send USDC, and use the proof to unlock the download. - [x402 payment instructions guide](https://pinata-mintlify-5df45191.mintlify.app/files/x402/x402-payment-instructions.md): Create, attach, and manage x402 payment instructions on Pinata to set prices, accept USDC, and monetize private IPFS files programmatically. - [x402 monetization quickstart](https://pinata-mintlify-5df45191.mintlify.app/files/x402/x402-quick-start.md): Monetize a private IPFS file with Pinata x402 in minutes: set a USDC price, attach payment instructions, and start receiving wallet payments. - [x402 Services](https://pinata-mintlify-5df45191.mintlify.app/files/x402/x402-services.md): Pinata's x402 Services provide streamlined endpoints for crypto-based content monetization using the x402-axios and x402-fetch libraries. - [Astro](https://pinata-mintlify-5df45191.mintlify.app/frameworks/astro.md): Set up Pinata in an Astro project to upload files to IPFS, serve them through a Dedicated Gateway, and integrate with server routes safely. - [Hono](https://pinata-mintlify-5df45191.mintlify.app/frameworks/hono.md): Build a Hono server that mints Pinata presigned upload URLs so client apps can upload to IPFS securely without exposing your API keys. - [Next.js](https://pinata-mintlify-5df45191.mintlify.app/frameworks/next-js.md): Set up Pinata in a Next.js app to upload files to IPFS from server actions or route handlers and serve them via a Dedicated Gateway. - [Node.js](https://pinata-mintlify-5df45191.mintlify.app/frameworks/node-js.md): Use Pinata from a Node.js backend to upload files to public or private IPFS, manage groups, and serve content through a Dedicated Gateway. - [React](https://pinata-mintlify-5df45191.mintlify.app/frameworks/react.md): Use Pinata from a React app with presigned upload URLs so files go to IPFS directly from the browser without ever exposing your API keys. - [Remix](https://pinata-mintlify-5df45191.mintlify.app/frameworks/remix.md): Set up Pinata in a Remix app to upload files to IPFS from loader and action functions, then serve them through a Dedicated Gateway. - [SvelteKit](https://pinata-mintlify-5df45191.mintlify.app/frameworks/sveltekit.md): Set up Pinata in a SvelteKit app to upload files to IPFS using server endpoints and serve them through a Pinata Dedicated Gateway. - [Dedicated IPFS Gateways](https://pinata-mintlify-5df45191.mintlify.app/gateways/dedicated-ipfs-gateways.md): Pinata Dedicated Gateways serve IPFS content fast and reliably with caching, custom domains, and analytics for production decentralized apps. - [Gateway Access Controls](https://pinata-mintlify-5df45191.mintlify.app/gateways/gateway-access-controls.md): Lock down a Pinata Dedicated Gateway using gateway keys, IP allowlists, and host origin restrictions to prevent abuse and control who fetches. - [Image Optimizations](https://pinata-mintlify-5df45191.mintlify.app/gateways/image-optimizations.md): Resize, reformat, and compress images on the fly through your Pinata Dedicated Gateway to speed up page loads without preprocessing content. - [Content Addressable](https://pinata-mintlify-5df45191.mintlify.app/gateways/plugins/content-addressable.md): Use the Content Addressable plugin to attach CID signatures to gateway responses so consumers can verify the content they fetch is authentic. - [Getting started with gateway plugins](https://pinata-mintlify-5df45191.mintlify.app/gateways/plugins/getting-started.md): Install Pinata Dedicated Gateway plugins like Hot Swaps and Content Addressable to extend your IPFS delivery system with new request features. - [Hot Swaps plugin for gateways](https://pinata-mintlify-5df45191.mintlify.app/gateways/plugins/hot-swaps.md): Install the Hot Swaps gateway plugin to remap a stable IPFS CID to new content over time, useful for mutable references behind a fixed URL. - [Retrieving Files](https://pinata-mintlify-5df45191.mintlify.app/gateways/retrieving-files.md): Retrieve IPFS files through Pinata Dedicated Gateways with caching, image optimizations, signed URLs, and custom domains for production apps. - [Chat completions endpoint reference](https://pinata-mintlify-5df45191.mintlify.app/inference/chat-completions.md): Call the Pinata Inference chat completions endpoint, which is OpenAI compatible, to run hosted LLMs from your own apps with a single API key. - [Inference credits and auto top-up](https://pinata-mintlify-5df45191.mintlify.app/inference/credits.md): Fund Pinata Inference model usage with credits, view your balance, set auto top-up thresholds, and monitor spend per model and per request. - [Models available on Pinata Inference](https://pinata-mintlify-5df45191.mintlify.app/inference/models.md): Browse the open and proprietary LLMs hosted on Pinata Inference, see context windows and pricing, and pick the right model for your workload. - [Pinata Inference overview](https://pinata-mintlify-5df45191.mintlify.app/inference/overview.md): Pinata Inference runs hosted LLMs behind an OpenAI-compatible API so you can swap in open and proprietary models without rewriting your code. - [How does IPFS work with NFTs?](https://pinata-mintlify-5df45191.mintlify.app/ipfs-101/how-does-ipfs-work-with-nfts.md): Learn how NFTs use IPFS to store media and metadata, why CIDs make tokens tamper-proof, and how Pinata keeps your NFT content available. - [What are CIDs?](https://pinata-mintlify-5df45191.mintlify.app/ipfs-101/what-are-cids.md): A CID, or Content Identifier, is the cryptographic address IPFS uses to locate content. Learn how CIDs work and when to use CID v0 versus v1. - [What are IPFS Gateways?](https://pinata-mintlify-5df45191.mintlify.app/ipfs-101/what-are-ipfs-gateways.md): IPFS gateways let HTTP clients fetch content addressed by CID. Learn how public and dedicated gateways differ and when to use each kind. - [What is IPFS?](https://pinata-mintlify-5df45191.mintlify.app/ipfs-101/what-is-ipfs.md): IPFS is a peer-to-peer protocol for storing and addressing content by hash instead of location. Learn how it works and why developers use it. - [What is Pinning?](https://pinata-mintlify-5df45191.mintlify.app/ipfs-101/what-is-ipfs-pinning.md): IPFS pinning keeps a file available on the network by telling at least one node to hold it. Learn what pinning is and why services like Pinata exist. - [LLM-ready docs for AI code editors](https://pinata-mintlify-5df45191.mintlify.app/llm-docs.md): Feed the Pinata docs into ChatGPT, Claude, Cursor, or Zed using the llms.txt and AI-optimized doc bundles for better in-editor code completions. - [Quickstart](https://pinata-mintlify-5df45191.mintlify.app/quickstart.md): Sign up, generate an API key, install the Pinata SDK, upload your first file to IPFS, and retrieve it through a Dedicated Gateway in minutes. - [bandwidth](https://pinata-mintlify-5df45191.mintlify.app/sdk/analytics/bandwidth.md): Pinata SDK analytics.bandwidth queries gateway bandwidth usage by domain, time range, and bucket. Requires the org:analytics:read permission. - [requests](https://pinata-mintlify-5df45191.mintlify.app/sdk/analytics/requests.md): Pinata SDK analytics.requests queries gateway request counts by domain, content type, and time range. Requires the org:analytics:read permission. - [Config](https://pinata-mintlify-5df45191.mintlify.app/sdk/config.md): Configure the Pinata SDK with your JWT, default Dedicated Gateway, custom headers, and network selection so every call uses the right context. - [files.private.addSwap](https://pinata-mintlify-5df45191.mintlify.app/sdk/files/private/add-swap.md): Pinata SDK files.private.addSwap remaps an existing private IPFS CID to a new one through Hot Swaps. Requires the org:files:write permission. - [files.private.delete](https://pinata-mintlify-5df45191.mintlify.app/sdk/files/private/delete.md): Pinata SDK files.private.delete unpins one or more private IPFS files by ID and frees up account storage. Requires the org:files:write permission. - [files.private.deleteSwap](https://pinata-mintlify-5df45191.mintlify.app/sdk/files/private/delete-swap.md): Pinata SDK files.private.deleteSwap removes a Hot Swap mapping on a private IPFS CID. Requires the org:files:write permission to call. - [files.private.deleteVectors](https://pinata-mintlify-5df45191.mintlify.app/sdk/files/private/delete-vectors.md): Pinata SDK files.private.deleteVectors removes the vector embeddings stored for a private IPFS file. Requires the org:files:write permission. - [files.private.getSwapHistory](https://pinata-mintlify-5df45191.mintlify.app/sdk/files/private/get-swap-history.md): Pinata SDK files.private.getSwapHistory lists Hot Swap mappings ever created for a private IPFS CID. Requires the org:files:read permission. - [files.private.list](https://pinata-mintlify-5df45191.mintlify.app/sdk/files/private/list.md): Pinata SDK files.private.list returns private IPFS files filtered by name, CID, key-value tags, group, and date. Requires org:files:read permission. - [files.private.queryVectors](https://pinata-mintlify-5df45191.mintlify.app/sdk/files/private/query-vectors.md): Pinata SDK files.private.queryVectors runs similarity search over vectorized private IPFS files in a group. Requires the org:files:write permission. - [files.private.update](https://pinata-mintlify-5df45191.mintlify.app/sdk/files/private/update.md): Pinata SDK files.private.update changes the name, group, or key-value metadata on a private IPFS file. Requires the org:files:write permission. - [files.private.vectorize](https://pinata-mintlify-5df45191.mintlify.app/sdk/files/private/vectorize.md): Pinata SDK files.private.vectorize creates embeddings for an existing private IPFS file so it can be queried for similarity search later on. - [files.public.addSwap](https://pinata-mintlify-5df45191.mintlify.app/sdk/files/public/add-swap.md): Pinata SDK files.public.addSwap remaps a public IPFS CID to point at new content using Hot Swaps. Requires the org:files:write permission. - [files.public.delete](https://pinata-mintlify-5df45191.mintlify.app/sdk/files/public/delete.md): Pinata SDK files.public.delete unpins one or more public IPFS files by ID, removing them from your Pinata account and freeing up storage. - [files.public.deleteSwap](https://pinata-mintlify-5df45191.mintlify.app/sdk/files/public/delete-swap.md): Pinata SDK files.public.deleteSwap removes a Hot Swap mapping previously set on a public IPFS CID. Requires the org:files:write permission. - [files.public.getSwapHistory](https://pinata-mintlify-5df45191.mintlify.app/sdk/files/public/get-swap-history.md): Pinata SDK files.public.getSwapHistory lists every Hot Swap mapping that has ever been set on a public IPFS CID. Requires org:files:read permission. - [files.public.list](https://pinata-mintlify-5df45191.mintlify.app/sdk/files/public/list.md): Pinata SDK files.public.list returns public IPFS files filtered by name, CID, group, key-value tags, and date. Requires the org:files:read permission. - [files.public.queue](https://pinata-mintlify-5df45191.mintlify.app/sdk/files/public/queue.md): Pinata SDK files.public.queue returns the status of public IPFS pin-by-CID jobs queued for your account. Requires the org:files:read permission. - [files.public.update](https://pinata-mintlify-5df45191.mintlify.app/sdk/files/public/update.md): Pinata SDK files.public.update changes the name, group, or key-value metadata on a public IPFS file. Requires the org:files:write permission. - [gateways.private.createAccessLink](https://pinata-mintlify-5df45191.mintlify.app/sdk/gateways/private/create-signed-url.md): Pinata SDK gateways.private.createAccessLink mints a time-limited signed URL that grants access to a private IPFS file through your gateway. - [gateways.private.get](https://pinata-mintlify-5df45191.mintlify.app/sdk/gateways/private/get.md): Pinata SDK gateways.private.get fetches a private IPFS file through your configured Dedicated Gateway. Requires the org:files:write permission. - [gateways.public.convert](https://pinata-mintlify-5df45191.mintlify.app/sdk/gateways/public/convert.md): Pinata SDK gateways.public.convert rewrites any IPFS URL or CID into a request that uses your configured Pinata Dedicated Gateway domain. - [gateways.public.get](https://pinata-mintlify-5df45191.mintlify.app/sdk/gateways/public/get.md): Pinata SDK gateways.public.get fetches a public IPFS file through your configured Pinata Dedicated Gateway and returns its content and metadata. - [Getting Started](https://pinata-mintlify-5df45191.mintlify.app/sdk/getting-started.md): Install the Pinata SDK, authenticate with a JWT, and run your first upload to public or private IPFS in a Node, browser, or edge runtime. - [groups.private.addFiles](https://pinata-mintlify-5df45191.mintlify.app/sdk/groups/private/add-files.md): Pinata SDK groups.private.addFiles attaches one or more private IPFS files to an existing private group. Requires the org:groups:write permission. - [groups.private.create](https://pinata-mintlify-5df45191.mintlify.app/sdk/groups/private/create.md): Pinata SDK groups.private.create makes a new private file group on Pinata so you can organize private IPFS uploads. Requires org:groups:write. - [groups.private.delete](https://pinata-mintlify-5df45191.mintlify.app/sdk/groups/private/delete.md): Pinata SDK groups.private.delete removes a private file group from your account. The files inside the group are not unpinned by this call. - [groups.private.get](https://pinata-mintlify-5df45191.mintlify.app/sdk/groups/private/get.md): Pinata SDK groups.private.get returns details about a single private file group, including name, IDs, and timestamps. Requires org:groups:read. - [groups.private.list](https://pinata-mintlify-5df45191.mintlify.app/sdk/groups/private/list.md): Pinata SDK groups.private.list returns private file groups on your account, filtered by name or pagination cursor. Requires the org:groups:read permission. - [groups.private.removeFiles](https://pinata-mintlify-5df45191.mintlify.app/sdk/groups/private/remove-files.md): Pinata SDK groups.private.removeFiles detaches one or more private IPFS files from a private group without unpinning the underlying files. - [groups.private.update](https://pinata-mintlify-5df45191.mintlify.app/sdk/groups/private/update.md): Pinata SDK groups.private.update renames an existing private file group on Pinata. Requires the org:groups:write permission to call. - [groups.public.addFiles](https://pinata-mintlify-5df45191.mintlify.app/sdk/groups/public/add-files.md): Pinata SDK groups.public.addFiles attaches one or more public IPFS files to an existing public group. Requires the org:groups:write permission. - [groups.public.create](https://pinata-mintlify-5df45191.mintlify.app/sdk/groups/public/create.md): Pinata SDK groups.public.create makes a new public file group on Pinata so you can organize public IPFS uploads. Requires org:groups:write. - [groups.public.delete](https://pinata-mintlify-5df45191.mintlify.app/sdk/groups/public/delete.md): Pinata SDK groups.public.delete removes a public file group from your account. The files inside the group are not unpinned by this call. - [groups.public.get](https://pinata-mintlify-5df45191.mintlify.app/sdk/groups/public/get.md): Pinata SDK groups.public.get returns details about a single public file group, including name, IDs, and timestamps. Requires org:groups:read. - [groups.public.list](https://pinata-mintlify-5df45191.mintlify.app/sdk/groups/public/list.md): Pinata SDK groups.public.list returns public file groups on your account, filtered by name or pagination cursor. Requires the org:groups:read permission. - [groups.public.removeFiles](https://pinata-mintlify-5df45191.mintlify.app/sdk/groups/public/remove-files.md): Pinata SDK groups.public.removeFiles detaches one or more public IPFS files from a public group without unpinning the underlying files. - [groups.public.update](https://pinata-mintlify-5df45191.mintlify.app/sdk/groups/public/update.md): Pinata SDK groups.public.update renames an existing public file group on Pinata. Requires the org:groups:write permission to call. - [keys.create](https://pinata-mintlify-5df45191.mintlify.app/sdk/keys/create.md): Pinata SDK keys.create generates a new scoped API key for your Pinata account with selectable permissions and usage limits. Requires org:write. - [keys.list](https://pinata-mintlify-5df45191.mintlify.app/sdk/keys/list.md): Pinata SDK keys.list returns the API keys on your Pinata account, including name, scopes, usage counts, and timestamps. Requires the org:write permission. - [keys.revoke](https://pinata-mintlify-5df45191.mintlify.app/sdk/keys/revoke.md): Pinata SDK keys.revoke immediately invalidates an existing Pinata API key so it can no longer authenticate requests. Requires the org:write permission. - [React Hooks](https://pinata-mintlify-5df45191.mintlify.app/sdk/react.md): A collection of React hooks for Pinata that wrap uploads, file lists, gateway URLs, and signatures so you can drop them into client components. - [signatures.private.add](https://pinata-mintlify-5df45191.mintlify.app/sdk/signatures/private/add.md): Pinata SDK signatures.private.add attaches a wallet signature to a private IPFS CID so consumers can later verify its origin and authenticity. - [signatures.private.delete](https://pinata-mintlify-5df45191.mintlify.app/sdk/signatures/private/delete.md): Pinata SDK signatures.private.delete removes the wallet signature attached to a private IPFS CID. Requires the org:files:write permission. - [signatures.private.get](https://pinata-mintlify-5df45191.mintlify.app/sdk/signatures/private/get.md): Pinata SDK signatures.private.get fetches the wallet signature attached to a private IPFS CID, including signer address and signed message. - [signatures.public.add](https://pinata-mintlify-5df45191.mintlify.app/sdk/signatures/public/add.md): Pinata SDK signatures.public.add attaches a wallet signature to a public IPFS CID so consumers can later verify who published the content. - [signatures.public.delete](https://pinata-mintlify-5df45191.mintlify.app/sdk/signatures/public/delete.md): Pinata SDK signatures.public.delete removes the wallet signature attached to a public IPFS CID. Requires the org:files:write permission. - [signatures.public.get](https://pinata-mintlify-5df45191.mintlify.app/sdk/signatures/public/get.md): Pinata SDK signatures.public.get fetches the wallet signature attached to a public IPFS CID, including the signer address and signed message. - [Analytics](https://pinata-mintlify-5df45191.mintlify.app/sdk/types/analytics.md): TypeScript types for Pinata analytics queries and responses, including AnalyticsQuery, time series buckets, and gateway bandwidth summaries. - [Config](https://pinata-mintlify-5df45191.mintlify.app/sdk/types/config.md): TypeScript types for configuring the Pinata SDK, including PinataConfig with JWT, gateway, custom headers, upload URL, and network settings. - [Files](https://pinata-mintlify-5df45191.mintlify.app/sdk/types/files.md): TypeScript types for the Pinata Files SDK, including FileObject, upload responses, list filters, signatures, and key-value metadata structures. - [Gateways](https://pinata-mintlify-5df45191.mintlify.app/sdk/types/gateways.md): TypeScript types for the Pinata Gateways SDK, including ContentType, GetCIDResponse, signed URL options, and image optimization parameters. - [Groups](https://pinata-mintlify-5df45191.mintlify.app/sdk/types/groups.md): TypeScript types for the Pinata Groups SDK, including GroupOptions, GroupResponseItem, list filters, and add and remove file payload shapes. - [Keys](https://pinata-mintlify-5df45191.mintlify.app/sdk/types/keys.md): TypeScript types for the Pinata Keys SDK, including KeyPermissions, KeyOptions, and list responses for managing scoped API keys programmatically. - [Signatures](https://pinata-mintlify-5df45191.mintlify.app/sdk/types/signatures.md): TypeScript types for the Pinata Signatures SDK, including SignatureOptions and the response shapes for adding, fetching, and deleting CID signatures. - [Uploads](https://pinata-mintlify-5df45191.mintlify.app/sdk/types/uploads.md): TypeScript types for Pinata uploads, including UploadResponse and the option shapes for file, base64, URL, JSON, and signed upload methods. - [x402](https://pinata-mintlify-5df45191.mintlify.app/sdk/types/x402.md): TypeScript types for the Pinata x402 SDK, including PaymentRequirement, payment instructions, and CID association responses for monetization. - [upload.private.base64](https://pinata-mintlify-5df45191.mintlify.app/sdk/upload/private/base64.md): Pinata SDK upload.private.base64 uploads a base64-encoded payload to private IPFS, useful for server actions that already encode binary data. - [upload.private.createSignedURL](https://pinata-mintlify-5df45191.mintlify.app/sdk/upload/private/create-signed-url.md): Pinata SDK upload.private.createSignedURL mints a presigned upload URL so a client can upload directly to private IPFS without exposing your JWT. - [upload.private.file](https://pinata-mintlify-5df45191.mintlify.app/sdk/upload/private/file.md): Pinata SDK upload.private.file uploads a single file to private IPFS and returns the resulting CID, file ID, and metadata. Requires org:files:write. - [upload.private.json](https://pinata-mintlify-5df45191.mintlify.app/sdk/upload/private/json.md): Pinata SDK upload.private.json uploads a JSON object to private IPFS, automatically serializing it and returning the resulting CID and file ID. - [upload.private.url](https://pinata-mintlify-5df45191.mintlify.app/sdk/upload/private/url.md): Pinata SDK upload.private.url fetches content from an HTTP URL and uploads it to private IPFS, returning a CID and file ID for the saved data. - [upload.public.base64](https://pinata-mintlify-5df45191.mintlify.app/sdk/upload/public/base64.md): Pinata SDK upload.public.base64 uploads a base64-encoded payload to public IPFS, useful for server actions that already encode binary data. - [upload.public.cid](https://pinata-mintlify-5df45191.mintlify.app/sdk/upload/public/cid.md): Pinata SDK upload.public.cid queues a pin-by-CID job so an existing public IPFS CID gets pinned to your Pinata account and served via gateways. - [upload.public.createSignedURL](https://pinata-mintlify-5df45191.mintlify.app/sdk/upload/public/create-signed-url.md): Pinata SDK upload.public.createSignedURL mints a presigned upload URL so a client can upload directly to public IPFS without exposing your JWT. - [upload.public.file](https://pinata-mintlify-5df45191.mintlify.app/sdk/upload/public/file.md): Pinata SDK upload.public.file uploads a single file to public IPFS and returns the resulting CID, file ID, and metadata. Requires org:files:write. - [upload.public.fileArray](https://pinata-mintlify-5df45191.mintlify.app/sdk/upload/public/file-array.md): Pinata SDK upload.public.fileArray uploads multiple files together to public IPFS as a single directory CID. Requires org:files:write. - [upload.public.json](https://pinata-mintlify-5df45191.mintlify.app/sdk/upload/public/json.md): Pinata SDK upload.public.json uploads a JSON object to public IPFS, automatically serializing it and returning the resulting CID and file ID. - [upload.public.url](https://pinata-mintlify-5df45191.mintlify.app/sdk/upload/public/url.md): Pinata SDK upload.public.url fetches content from an HTTP URL and uploads it to public IPFS, returning a CID and file ID for the saved data. - [V2 Migration Guide](https://pinata-mintlify-5df45191.mintlify.app/sdk/v2-migration-guide.md): Migrate from pinata 1.x or pinata-web3 to the unified Pinata SDK 2.x covering both public and private IPFS in a single package with v3 APIs. - [x402.cids.add](https://pinata-mintlify-5df45191.mintlify.app/sdk/x402/cids/add.md): Pinata SDK x402.cids.add associates a private IPFS CID with a payment instruction so consumers must pay before downloading the file. - [x402.cids.list](https://pinata-mintlify-5df45191.mintlify.app/sdk/x402/cids/list.md): Pinata SDK x402.cids.list returns the private IPFS CIDs currently associated with a given x402 payment instruction on your Pinata account. - [x402.cids.remove](https://pinata-mintlify-5df45191.mintlify.app/sdk/x402/cids/remove.md): Pinata SDK x402.cids.remove detaches a private IPFS CID from an x402 payment instruction so it no longer requires payment to access. - [x402 Monetization](https://pinata-mintlify-5df45191.mintlify.app/sdk/x402/index.md): Pinata SDK x402 monetizes private IPFS files using USDC payments sent directly to your wallet, with no payment processor or third-party hold. - [x402.paymentInstructions.create](https://pinata-mintlify-5df45191.mintlify.app/sdk/x402/payment-instructions/create.md): Pinata SDK x402.paymentInstructions.create defines a new USDC price and wallet that consumers must pay before accessing private IPFS files. - [x402.paymentInstructions.delete](https://pinata-mintlify-5df45191.mintlify.app/sdk/x402/payment-instructions/delete.md): Pinata SDK x402.paymentInstructions.delete removes a payment instruction from your Pinata account so its associated CIDs are no longer monetized. - [x402.paymentInstructions.get](https://pinata-mintlify-5df45191.mintlify.app/sdk/x402/payment-instructions/get.md): Pinata SDK x402.paymentInstructions.get fetches a single x402 payment instruction by ID, including price, wallet, network, and associated CIDs. - [x402.paymentInstructions.list](https://pinata-mintlify-5df45191.mintlify.app/sdk/x402/payment-instructions/list.md): Pinata SDK x402.paymentInstructions.list returns and filters every x402 payment instruction on your Pinata account for monetized private files. - [x402.paymentInstructions.update](https://pinata-mintlify-5df45191.mintlify.app/sdk/x402/payment-instructions/update.md): Pinata SDK x402.paymentInstructions.update changes the price, wallet, or network on an existing x402 payment instruction for private IPFS files. - [Agents CLI: manage agents from the terminal](https://pinata-mintlify-5df45191.mintlify.app/tools/cli/agents.md): Create, configure, and chat with Pinata AI agents from the command line using the Agents CLI, including templates, secrets, and live logs. - [Pinata IPFS CLI commands](https://pinata-mintlify-5df45191.mintlify.app/tools/cli/ipfs.md): Upload files, manage groups, run gateways, rotate keys, and configure swaps on Pinata directly from your terminal using the IPFS CLI. - [Pinata CLI overview](https://pinata-mintlify-5df45191.mintlify.app/tools/cli/overview.md): The official Pinata CLI is written in Go and bundles IPFS uploads, gateway management, agent control, and authentication in one binary. - [Community SDKs](https://pinata-mintlify-5df45191.mintlify.app/tools/community-sdks.md): Community-maintained Pinata and IPFS SDKs for Python, Go, Rust, Ruby, and more, plus gateway URL conversion tools you can drop into any app. - [ERC-8004 agent registration quickstart](https://pinata-mintlify-5df45191.mintlify.app/tools/erc-8004/quickstart.md): Register your first on-chain AI agent using the ERC-8004 standard and Pinata, including wallet setup, IPFS metadata pinning, and registry calls. - [ERC-8004 service endpoints and IPFS](https://pinata-mintlify-5df45191.mintlify.app/tools/erc-8004/services.md): Reference for ERC-8004 service endpoint types and how to use Pinata IPFS to host the metadata, manifests, and credentials each agent requires. - [Pinata MCP server for AI assistants](https://pinata-mintlify-5df45191.mintlify.app/tools/mcp/overview.md): Run the Pinata MCP server to give Claude, Cursor, and other AI assistants direct access to IPFS uploads, gateways, and file management. - [Pinata MCP server tool reference](https://pinata-mintlify-5df45191.mintlify.app/tools/mcp/tools.md): Complete reference for every tool exposed by the Pinata MCP server, including upload, list, delete, and gateway helpers for AI agents. - [Pinata Expo Hooks](https://pinata-mintlify-5df45191.mintlify.app/tools/pinata-expo-hooks.md): Use Pinata Expo Hooks to upload to IPFS and serve content from React Native apps with hooks for files, gateways, signatures, and groups. ## OpenAPI Specs - [pinata-x402-api-v3](https://pinata-mintlify-5df45191.mintlify.app/pinata-x402-api-v3.yaml) - [pinata-x402-api-v1](https://pinata-mintlify-5df45191.mintlify.app/pinata-x402-api-v1.yaml) - [pinata-api-v3](https://pinata-mintlify-5df45191.mintlify.app/pinata-api-v3.yaml) - [pinata-api-v3-uploads](https://pinata-mintlify-5df45191.mintlify.app/pinata-api-v3-uploads.yaml) - [pinata-api-ipfs](https://pinata-mintlify-5df45191.mintlify.app/pinata-api-ipfs.yaml) ## Optional - [API Keys](https://app.pinata.cloud/developers/api-keys) - [Blog](https://pinata.cloud/blog) - [Community](https://github.com/PinataCloud)