---
canonical_url: "https://docs.composio.dev/toolkits/pinata"
markdown_url: "https://docs.composio.dev/toolkits/pinata.md"
product: "platform"
version: null
last_updated: null
---

# Pinata

Manage public IPFS files and groups, inspect gateways and upload metadata, and create constrained signed upload URLs through Pinata's V3 APIs.

- **Category:** content & files
- **Auth:** API_KEY
- **Composio-managed OAuth available?** N/A
- **Tools:** 9
- **Triggers:** 0
- **Slug:** `PINATA`
- **Version:** 00000000_00

## Tools

### Create Public Group

**Slug:** `PINATA_CREATE_PUBLIC_GROUP`

Create a group for organizing files on the connected account's public IPFS network. The connected Pinata JWT must include org:groups:write.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Name for the new group (maximum 50 characters). |
| `is_public` | boolean | No | Pinata's visibility flag for the group; this does not change the fixed public IPFS network. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Signed Public Upload URL

**Slug:** `PINATA_CREATE_SIGNED_PUBLIC_UPLOAD_URL`

Create a 60-second signed URL for one size- and MIME-constrained public IPFS upload. The URL is a secret: use it immediately and never log or persist it. This action does not upload content itself. The connected Pinata JWT must include org:files:write.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `filename` | string | Yes | Filename authorized by the signed upload URL. |
| `group_id` | string | No | Optional public-network group ID to associate with the uploaded file. |
| `metadata` | object | No | Optional string key-value metadata to attach to the uploaded file; each value may contain at most 250 characters. |
| `cid_version` | string ("v0" | "v1" | "unixfs-v1-2025") | No | CID format for the eventual upload. Use v1 unless compatibility requires another value. |
| `max_file_size` | integer | Yes | Maximum upload size in bytes permitted by the signed upload URL. |
| `allow_mime_types` | array | Yes | Allowed MIME types for the upload, such as ['text/plain']; at least one is required. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Public Group

**Slug:** `PINATA_DELETE_PUBLIC_GROUP`

Permanently delete one public-network group by ID. This destructive action does not delete the files the group organized. The connected Pinata JWT must include org:groups:write.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `group_id` | string | Yes | Pinata ID of the public-network group to permanently delete. Deleting the group does not delete the files it organized. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Public Group

**Slug:** `PINATA_GET_PUBLIC_GROUP`

Return one public-network group by its Pinata group ID. The connected Pinata JWT must include org:groups:read.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `group_id` | string | Yes | Pinata ID of the public-network group to retrieve. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Gateways

**Slug:** `PINATA_LIST_GATEWAYS`

Return one page of gateways owned by the connected Pinata account without changing gateway configuration. The connected Pinata JWT must include org:gateways:read.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page_size` | integer | No | Maximum gateways to return in this page. Omit to use Pinata's default. |
| `next_cursor` | string | No | Next one-based page cursor returned by a previous call. Omit for page 1 and pass the returned value back unchanged to continue. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Public Files

**Slug:** `PINATA_LIST_PUBLIC_FILES`

Return one page of files on the connected account's public IPFS network, optionally filtered by file attributes. The connected Pinata JWT must include org:files:read.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `cid` | string | No | Filter files by IPFS content identifier (CID). |
| `name` | string | No | Filter files by name. |
| `limit` | integer | No | Maximum files to return in this page. Omit to use Pinata's default. |
| `order` | string ("ASC" | "DESC") | No | Sort by creation time in ascending or descending order. |
| `group_id` | string | No | Filter files by the ID of a public-network group. |
| `mime_type` | string | No | Filter files by MIME type, such as text/plain or image/png. |
| `cid_pending` | boolean | No | When true, return only files still waiting for a CID. |
| `next_cursor` | string | No | Opaque cursor returned by a previous call; omit for the first page. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Public Groups

**Slug:** `PINATA_LIST_PUBLIC_GROUPS`

Return one page of groups that organize files on the connected account's public IPFS network. The connected Pinata JWT must include org:groups:read.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | Filter groups by name. |
| `limit` | integer | No | Maximum groups to return in this page. Omit to use Pinata's default. |
| `is_public` | boolean | No | Filter by Pinata's group visibility flag; this does not change the fixed public IPFS network. |
| `next_cursor` | string | No | Opaque cursor returned by a previous call; omit for the first page. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Upload Metadata

**Slug:** `PINATA_LIST_UPLOAD_METADATA`

List upload-service records, including upload IDs, filenames, CIDs, sizes, group IDs, and timestamps. Use List Public Files instead to search the public IPFS file inventory.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum metadata records to return in this page (1-100). |
| `reverse` | boolean | No | Reverse Pinata's default metadata ordering. |
| `next_cursor` | string | No | Cursor returned by a previous call; omit for the first page. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Public Group

**Slug:** `PINATA_UPDATE_PUBLIC_GROUP`

Update the name, visibility flag, or both for one public-network group. The connected Pinata JWT must include org:groups:write.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | New group name (maximum 50 characters). At least one of name or is_public is required. |
| `group_id` | string | Yes | Pinata ID of the public-network group to update. |
| `is_public` | boolean | No | New value for Pinata's group visibility flag. At least one of name or is_public is required. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |
