Google Cloud Storage Folders API

The Folders API from Google Cloud Storage — 4 operation(s) for folders.

Operations 6

DELETE /storage/v1/b/{bucket}/folders/{folder} Permanently deletes a folder #
GET /storage/v1/b/{bucket}/folders/{folder} Returns metadata for the specified folder #
POST /storage/v1/b/{bucket}/folders/{folder}/deleteRecursive Deletes a folder recursively #
POST /storage/v1/b/{bucket}/folders Creates a new folder #
GET /storage/v1/b/{bucket}/folders Retrieves a list of folders matching the criteria #
POST /storage/v1/b/{bucket}/folders/{sourceFolder}/renameTo/folders/{destinationFolder} Renames a source folder to a destination folder #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/gcp-cloud-storage:gcp-cloud-storage-folders-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

gcp-cloud-storage-folders-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Cloud Storage JSON Folders API
  description: Stores and retrieves potentially large, immutable data objects.
  version: v1
  x-discovery-revision: '20261030'
  termsOfService: https://developers.google.com/terms/
  contact:
    name: Google Cloud Storage
    url: https://developers.google.com/storage/docs/json_api/
  x-generated-from: google-discovery
  x-source: https://storage.googleapis.com/$discovery/rest?version=v1
  x-conversion: mechanical Discovery-to-OpenAPI conversion by API Evangelist; every path, parameter and schema is copied from the provider Discovery document
servers:
- url: https://storage.googleapis.com
security:
- oauth2:
  - https://www.googleapis.com/auth/cloud-platform
  - https://www.googleapis.com/auth/cloud-platform.read-only
  - https://www.googleapis.com/auth/devstorage.full_control
  - https://www.googleapis.com/auth/devstorage.read_only
  - https://www.googleapis.com/auth/devstorage.read_write
tags:
- name: Folders
paths:
  /storage/v1/b/{bucket}/folders/{folder}:
    delete:
      operationId: storage.folders.delete
      tags:
      - Folders
      summary: Permanently deletes a folder
      description: Permanently deletes a folder. Only applicable to buckets with hierarchical namespace enabled.
      parameters:
      - name: bucket
        in: path
        required: true
        schema:
          type: string
        description: Name of the bucket in which the folder resides.
      - name: folder
        in: path
        required: true
        schema:
          type: string
        description: Name of a folder.
      - name: ifMetagenerationMatch
        in: query
        required: false
        schema:
          type: string
          format: int64
        description: If set, only deletes the folder if its metageneration matches this value.
      - name: ifMetagenerationNotMatch
        in: query
        required: false
        schema:
          type: string
          format: int64
        description: If set, only deletes the folder if its metageneration does not match this value.
      responses:
        '200':
          description: Successful response
        default:
          description: Error response
      security:
      - oauth2:
        - https://www.googleapis.com/auth/cloud-platform
        - https://www.googleapis.com/auth/devstorage.full_control
        - https://www.googleapis.com/auth/devstorage.read_write
    get:
      operationId: storage.folders.get
      tags:
      - Folders
      summary: Returns metadata for the specified folder
      description: Returns metadata for the specified folder. Only applicable to buckets with hierarchical namespace enabled.
      parameters:
      - name: bucket
        in: path
        required: true
        schema:
          type: string
        description: Name of the bucket in which the folder resides.
      - name: folder
        in: path
        required: true
        schema:
          type: string
        description: Name of a folder.
      - name: ifMetagenerationMatch
        in: query
        required: false
        schema:
          type: string
          format: int64
        description: Makes the return of the folder metadata conditional on whether the folder's current metageneration matches the given value.
      - name: ifMetagenerationNotMatch
        in: query
        required: false
        schema:
          type: string
          format: int64
        description: Makes the return of the folder metadata conditional on whether the folder's current metageneration does not match the given value.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Folder'
        default:
          description: Error response
      security:
      - oauth2:
        - https://www.googleapis.com/auth/cloud-platform
        - https://www.googleapis.com/auth/cloud-platform.read-only
        - https://www.googleapis.com/auth/devstorage.full_control
        - https://www.googleapis.com/auth/devstorage.read_only
        - https://www.googleapis.com/auth/devstorage.read_write
  /storage/v1/b/{bucket}/folders/{folder}/deleteRecursive:
    post:
      operationId: storage.folders.deleteRecursive
      tags:
      - Folders
      summary: Deletes a folder recursively
      description: Deletes a folder recursively. Only applicable to buckets with hierarchical namespace enabled.
      parameters:
      - name: bucket
        in: path
        required: true
        schema:
          type: string
        description: Name of the bucket in which the folder resides.
      - name: folder
        in: path
        required: true
        schema:
          type: string
        description: Name of a folder.
      - name: ifMetagenerationMatch
        in: query
        required: false
        schema:
          type: string
          format: int64
        description: If set, only deletes the folder if its metageneration matches this value.
      - name: ifMetagenerationNotMatch
        in: query
        required: false
        schema:
          type: string
          format: int64
        description: If set, only deletes the folder if its metageneration does not match this value.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GoogleLongrunningOperation'
        default:
          description: Error response
      security:
      - oauth2:
        - https://www.googleapis.com/auth/cloud-platform
        - https://www.googleapis.com/auth/devstorage.full_control
        - https://www.googleapis.com/auth/devstorage.read_write
  /storage/v1/b/{bucket}/folders:
    post:
      operationId: storage.folders.insert
      tags:
      - Folders
      summary: Creates a new folder
      description: Creates a new folder. Only applicable to buckets with hierarchical namespace enabled.
      parameters:
      - name: bucket
        in: path
        required: true
        schema:
          type: string
        description: Name of the bucket in which the folder resides.
      - name: recursive
        in: query
        required: false
        schema:
          type: boolean
        description: If true, any parent folder which doesn't exist will be created automatically.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Folder'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Folder'
        default:
          description: Error response
      security:
      - oauth2:
        - https://www.googleapis.com/auth/cloud-platform
        - https://www.googleapis.com/auth/devstorage.full_control
        - https://www.googleapis.com/auth/devstorage.read_write
    get:
      operationId: storage.folders.list
      tags:
      - Folders
      summary: Retrieves a list of folders matching the criteria
      description: Retrieves a list of folders matching the criteria. Only applicable to buckets with hierarchical namespace enabled.
      parameters:
      - name: bucket
        in: path
        required: true
        schema:
          type: string
        description: Name of the bucket in which to look for folders.
      - name: delimiter
        in: query
        required: false
        schema:
          type: string
        description: Returns results in a directory-like mode. The only supported value is '/'. If set, items will only contain folders that either exactly match the prefix, or are one level below the prefix.
      - name: endOffset
        in: query
        required: false
        schema:
          type: string
        description: Filter results to folders whose names are lexicographically before endOffset. If startOffset is also set, the folders listed will have names between startOffset (inclusive) and endOffset (exclusive).
      - name: pageSize
        in: query
        required: false
        schema:
          type: integer
          format: int32
        description: Maximum number of items to return in a single page of responses.
      - name: pageToken
        in: query
        required: false
        schema:
          type: string
        description: A previously-returned page token representing part of the larger set of results to view.
      - name: prefix
        in: query
        required: false
        schema:
          type: string
        description: Filter results to folders whose paths begin with this prefix. If set, the value must either be an empty string or end with a '/'.
      - name: startOffset
        in: query
        required: false
        schema:
          type: string
        description: Filter results to folders whose names are lexicographically equal to or after startOffset. If endOffset is also set, the folders listed will have names between startOffset (inclusive) and endOffset (exclusive).
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Folders'
        default:
          description: Error response
      security:
      - oauth2:
        - https://www.googleapis.com/auth/cloud-platform
        - https://www.googleapis.com/auth/cloud-platform.read-only
        - https://www.googleapis.com/auth/devstorage.full_control
        - https://www.googleapis.com/auth/devstorage.read_only
        - https://www.googleapis.com/auth/devstorage.read_write
  /storage/v1/b/{bucket}/folders/{sourceFolder}/renameTo/folders/{destinationFolder}:
    post:
      operationId: storage.folders.rename
      tags:
      - Folders
      summary: Renames a source folder to a destination folder
      description: Renames a source folder to a destination folder. Only applicable to buckets with hierarchical namespace enabled.
      parameters:
      - name: bucket
        in: path
        required: true
        schema:
          type: string
        description: Name of the bucket in which the folders are in.
      - name: destinationFolder
        in: path
        required: true
        schema:
          type: string
        description: Name of the destination folder.
      - name: ifSourceMetagenerationMatch
        in: query
        required: false
        schema:
          type: string
          format: int64
        description: Makes the operation conditional on whether the source object's current metageneration matches the given value.
      - name: ifSourceMetagenerationNotMatch
        in: query
        required: false
        schema:
          type: string
          format: int64
        description: Makes the operation conditional on whether the source object's current metageneration does not match the given value.
      - name: sourceFolder
        in: path
        required: true
        schema:
          type: string
        description: Name of the source folder.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GoogleLongrunningOperation'
        default:
          description: Error response
      security:
      - oauth2:
        - https://www.googleapis.com/auth/cloud-platform
        - https://www.googleapis.com/auth/devstorage.full_control
        - https://www.googleapis.com/auth/devstorage.read_write
components:
  schemas:
    Folder:
      type: object
      description: A folder. Only available in buckets with hierarchical namespace enabled.
      properties:
        bucket:
          type: string
          description: The name of the bucket containing this folder.
        id:
          type: string
          description: The ID of the folder, including the bucket name, folder name.
        kind:
          type: string
          description: The kind of item this is. For folders, this is always storage#folder.
          default: storage#folder
        metageneration:
          type: string
          description: The version of the metadata for this folder. Used for preconditions and for detecting changes in metadata.
          format: int64
        name:
          type: string
          description: The name of the folder. Required if not specified by URL parameter.
        selfLink:
          type: string
          description: The link to this folder.
        createTime:
          type: string
          description: The creation time of the folder in RFC 3339 format.
          format: date-time
        updateTime:
          type: string
          description: The modification time of the folder metadata in RFC 3339 format.
          format: date-time
        pendingRenameInfo:
          type: object
          description: Only present if the folder is part of an ongoing rename folder operation. Contains information which can be used to query the operation status.
          properties:
            operationId:
              type: string
              description: The ID of the rename folder operation.
    GoogleRpcStatus:
      type: object
      description: 'The "Status" type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each "Status" message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).'
      properties:
        code:
          type: integer
          description: The status code, which should be an enum value of google.rpc.Code.
          format: int32
        details:
          type: array
          description: A list of messages that carry the error details. There is a common set of message types for APIs to use.
          items:
            type: object
            additionalProperties:
              description: Properties of the object. Contains field @type with type URL.
        message:
          type: string
          description: A developer-facing error message, which should be in English.
    Folders:
      type: object
      description: A list of folders.
      properties:
        items:
          type: array
          description: The list of items.
          items:
            $ref: '#/components/schemas/Folder'
        kind:
          type: string
          description: The kind of item this is. For lists of folders, this is always storage#folders.
          default: storage#folders
        nextPageToken:
          type: string
          description: The continuation token, used to page through large result sets. Provide this value in a subsequent request to return the next page of results.
    GoogleLongrunningOperation:
      type: object
      description: This resource represents a long-running operation that is the result of a network API call.
      properties:
        done:
          type: boolean
          description: If the value is "false", it means the operation is still in progress. If "true", the operation is completed, and either "error" or "response" is available.
        error:
          $ref: '#/components/schemas/GoogleRpcStatus'
        metadata:
          type: object
          description: Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
          additionalProperties:
            description: Properties of the object. Contains field @type with type URL.
        name:
          type: string
          description: The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the "name" should be a resource name ending with "operations/{operationId}".
        response:
          type: object
          description: The normal response of the operation in case of success. If the original method returns no data on success, such as "Delete", the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type "XxxResponse", where "Xxx" is the original method name. For example, if the original method name is "TakeSnapshot()", the inferred response type is "TakeSnapshotResponse".
          additionalProperties:
            description: Properties of the object. Contains field @type with type URL.
        selfLink:
          type: string
          description: The link to this long running operation.
        kind:
          type: string
          description: The kind of item this is. For operations, this is always storage#operation.
          default: storage#operation
  securitySchemes:
    oauth2:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://accounts.google.com/o/oauth2/auth
          tokenUrl: https://oauth2.googleapis.com/token
          scopes:
            https://www.googleapis.com/auth/cloud-platform: View and manage your data across Google Cloud Platform services
            https://www.googleapis.com/auth/cloud-platform.read-only: View your data across Google Cloud Platform services
            https://www.googleapis.com/auth/devstorage.full_control: Manage your data and permissions in Google Cloud Storage
            https://www.googleapis.com/auth/devstorage.read_only: View your data in Google Cloud Storage
            https://www.googleapis.com/auth/devstorage.read_write: Manage your data in Google Cloud Storage