Pinata | Autonomous File Storage

WHAT ARE YOU BUILDING?

AI agents or file storage—choose your starting point.

AI AGENT HOSTING

Deploy and manage Pinata Agents.

Launch agents

Agent docs

IPFS FILE STORAGE

Add IPFS uploads and manage your IPFS files.

Get started

Read docs

TRUSTED BY 600,000 DEVELOPERS

POWER TOOLS FOR DEVELOPERS

See more

AGENTS

Instantly deploy an Agent instance with prebuilt templates.

IPFS STORAGE

Achieve secure, scalable storage with IPFS's decentralized infrastructure.

PRIVATE IPFS

All of the benefits of IPFS and content addressability, but on a private network.

GROUPS

Improve data handling and team workflows.

Next-Level Uploads, No Sweat

The long road

const bucketName = BUCKET_NAME;
const bucketRegion = BUCKET_REGION;
const IdentityPoolId = IDENTITY_POOL_ID;

AWS.config.update({
    region: bucketRegion,
    credentials: new AWS.CognitoIdentityCredentials({
        IdentityPoolId: IdentityPoolId
    })
});

var s3 = new AWS.S3({
    apiVersion: '2006-03-01',
    params: {Bucket: bucketName}
});

function s3upload() {
   var files = document.getElementById('fileUpload').files;
   if (files)
   {
     var file = files[0];
     var fileName = file.name;
     var filePath = 'my-first-bucket-path/' + fileName;
     var fileUrl = 'https://' + bucketRegion + '.amazonaws.com/my-first-bucket/' +  filePath;
     s3.upload({
        Key: filePath,
        Body: file,
        ACL: 'public-read'
        }, function(err, data) {
        if(err) {
        reject('error');
        }
        alert('Successfully Uploaded!');
        }).on('httpUploadProgress', function (progress) {
        var uploaded = parseInt((progress.loaded * 100) / progress.total);
        $("progress").attr('value', uploaded);
      });
   }
};

The Pinata shortcut

import { PinataSDK } from "pinata";

const pinata = new PinataSDK({
  pinataJwt: process.env.PINATA_JWT!,
  pinataGateway: "example-gateway.mypinata.cloud",
});

const file = new File(["hello world!"], "hello.txt", { type: "text/plain" })
const upload = await pinata.upload.file(file)

GET STARTED IN < 2 MINS, FOR REAL

SDK

Add effortless uploads to any app with our Typescript SDK.

npm i pinata

Next.JS Template

Spin up a new IPFS-powered app in under 20 seconds.

npx create-pinata-app

TIPS, TRICKS, & NEWS

View all

ANNOUNCEMENTS

How to Back Up Your IPFS NFTs

Our NFT Backup feature makes it easy to back up any NFT you own that uses IPFS.

Read more

CRYPTO

What is Private IPFS

If you have been in the blockchain and crypto space, then there is a chance you've heard…

Read more

CRYPTO

The Easiest Way to Upload JSON to IPFS

JSON data is one of the most crucial file types when it comes to offchain storage. NFTs and…

Read more

WHAT DEVELOPERS ARE SAYING

const testimonial = {
feedback: “The Pinata team is amazing to work with! They provide us with awesome support, and features we've been talking about are very quickly prioritized and launched.”
name: "Kartik Patel",
title: "Head of protocol",
};
const testimonial = {
feedback: “Pinata has eliminated all the complication of hosting content which lets us develop things faster with more confidence. Pinata makes easy so we can focus on delivering best-in-class loyalty programs.”
name: "Danny Franklin",
title: "CEO",
};
const testimonial = {
feedback: “Pinata has been an essential piece to making both ddocs.new and Fileverse Portals reliable and secure. Working with the team has been a delight.”
name: "Andreas Tsamados",
title: "Co-founder",
};
const testimonial = {
feedback: “Pinata has been great. A very comprehensive and advanced solution, with team members supporting our project from the get-go.”
name: "Stuart Burton",
title: "Co-founder",
};

START BUILDING WITH ZERO-COST CODING

500 Pinned Files

Total

1GB Storage

Total

1 Gateway

Total

10G Bandwidth

Per month

10k Requests

Per month

Get started

Read docs