All Collections
General
Pinata API - FAQs
Pinata API - FAQs

Navigate common questions about Pinata's API, from resolving 'invalid request' errors to understanding rate limits and API key management.

Lindsey Mazy avatar
Written by Lindsey Mazy
Updated over a week ago

What is an API key?

An API key is required to connect to the Pinata API. The key serves as a unique identifier for authentication and authorization. You can generate an API key following the steps outlined in this guide.

Why am I getting “invalid request”?

This error usually occurs when something unexpected is included with the API request. To resolve this issue:

Verify that you are following the correct API schema as described in the Pinata API docs. Watch for spelling errors, unknown characters, or invalid capitalization, e.g., “Files” instead of “files”

Examine your files. If you are including more than one file with the request, special handling is required, especially for folder uploads.

What is our API rate limit?

The Pinata API has a rate limit of 180 requests per minute, which aligns with web3 industry standards. Although we do not increase this limit, you can implement a bottlenecking mechanism in your code to manage the traffic.

How do I upload a directory/folder through the API?

For details on how to upload a directory or folder via the API, please refer to the relevant section in our documentation.

Is there an option to export all the IPFS CIDs out of a folder?

Currently, we do not offer a feature for exporting all the IPFS CIDs out of a folder directly. However, you can use third-party IPFS tools like the IPFS Desktop app or IPFS CLI. If you need a complete list of your CIDs, our API provides this information. For more details, visit this link.

Is there any way to limit usage on a specific domain(s) like CORS APIs?

We do not offer domain-based restrictions on our API as it is not designed for front-end usage; doing so would expose your API keys. We recommend utilizing the API in a backend environment for security reasons.

Did this answer your question?