> ## Documentation Index
> Fetch the complete documentation index at: https://pinata-mintlify-a6f16ddb.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Upload a File

> `org:files:write`


<Note>
  The V3 Upload endpoint currently does not support folder uploads. Please use the legacy [pinFileToIPFS endpoint](/api-reference/endpoint/ipfs/pin-file-to-ipfs)
</Note>


## OpenAPI

````yaml post /files
openapi: 3.0.0
info:
  title: Private IPFS API
  version: 1.0.0
servers:
  - url: https://uploads.pinata.cloud/v3
security:
  - bearerAuth: []
paths:
  /files:
    post:
      tags:
        - default
      summary: Upload a File
      description: |
        `org:files:write`
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              required:
                - file
                - network
              properties:
                network:
                  type: string
                  enum:
                    - public
                    - private
                  description: >-
                    Determine if the file should be uploaded to either the
                    public or private IPFS network. If not designated it will
                    default to private.
                  default: private
                file:
                  type: string
                  format: binary
                  description: File object you want to upload
                name:
                  type: string
                  description: Add a custom name for the file
                group_id:
                  type: string
                  description: ID of the group you would like to upload
                keyvalues:
                  type: object
                  description: Add additional key value metadata to files upon upload
                  additionalProperties:
                    type: string
                car:
                  type: boolean
                  description: >-
                    Upload a file as a raw CAR file (only supported for public
                    network)
                cid_version:
                  type: string
                  enum:
                    - v0
                    - v1
                    - unixfs-v1-2025
                  default: v1
                  description: >
                    UnixFS import profile used to hash the upload. `v1`
                    (default) produces a CIDv1 (`bafy…`) with raw leaves, 256
                    KiB chunks and up to 174 links per node, matching `ipfs add
                    --cid-version=1`. `v0` produces a legacy CIDv0 (`Qm…`) with
                    dag-pb leaves, matching `ipfs add --cid-version=0`.
                    `unixfs-v1-2025` produces a CIDv1 using the
                    [IPIP-499](https://github.com/ipfs/specs/pull/499) profile —
                    1 MiB chunks and up to 1024 links per node — matching kubo's
                    `test-cid-v1-wide` config profile. The profile is fixed when
                    the upload is created and cannot be changed while resuming
                    it.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                      name:
                        type: string
                      cid:
                        type: string
                      created_at:
                        type: string
                      size:
                        type: number
                      number_of_files:
                        type: number
                      mime_type:
                        type: string
                      user_id:
                        type: string
                      group_id:
                        type: string
                      is_duplicate:
                        type: boolean
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````