> ## Documentation Index
> Fetch the complete documentation index at: https://docs.base44.com/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Internal links on these pages omit the .md extension. Append .md to a docs page URL, or send an Accept: text/markdown header, to get that page as markdown.

# Update app folder

> <Info>This API is in beta. Endpoints, fields, and behavior may still change, so avoid depending on it in production.</Info>

Renames a folder, or changes its color, icon or position. Send only the fields you want to change.

A folder's `scope`, `app_type`, `owner_id` and `parent_folder_id` can't change here, and sending any of them returns a `400`.

You can change your own personal folders. Workspace folders need the editor role or higher, and any editor can change any workspace folder. A folder that doesn't exist, or another user's personal folder, returns a `404` with the code `folder_not_found`.

This is limited to 60 requests per minute, shared with the other endpoints that change folders. A signed-in session has its own limit, and every personal access token for the workspace shares one. Some workspaces have a different limit.

<Note>Call this with a personal access token sent as a Bearer token, or from a signed-in session. A token works on its own workspace's folders. Workspace API keys aren't accepted, and a read-only token is refused.</Note>

<Warning>The response includes fields beyond the ones documented here. Don't rely on undocumented response fields, as they can change at any time.</Warning>



## OpenAPI

````yaml /developers/references/app-management/app-management-openapi.json put /api/app-folders/{item_id}
openapi: 3.1.0
info:
  title: Base44 App Management API
  version: 1.0.0
servers:
  - url: https://app.base44.com
security:
  - PersonalAccessTokenAuth: []
paths:
  /api/app-folders/{item_id}:
    put:
      summary: Update app folder
      description: >-
        <Info>This API is in beta. Endpoints, fields, and behavior may still
        change, so avoid depending on it in production.</Info>


        Renames a folder, or changes its color, icon or position. Send only the
        fields you want to change.


        A folder's `scope`, `app_type`, `owner_id` and `parent_folder_id` can't
        change here, and sending any of them returns a `400`.


        You can change your own personal folders. Workspace folders need the
        editor role or higher, and any editor can change any workspace folder. A
        folder that doesn't exist, or another user's personal folder, returns a
        `404` with the code `folder_not_found`.


        This is limited to 60 requests per minute, shared with the other
        endpoints that change folders. A signed-in session has its own limit,
        and every personal access token for the workspace shares one. Some
        workspaces have a different limit.


        <Note>Call this with a personal access token sent as a Bearer token, or
        from a signed-in session. A token works on its own workspace's folders.
        Workspace API keys aren't accepted, and a read-only token is
        refused.</Note>


        <Warning>The response includes fields beyond the ones documented here.
        Don't rely on undocumented response fields, as they can change at any
        time.</Warning>
      operationId: api_put_api_app_folders__item_id__put
      parameters:
        - name: item_id
          in: path
          required: true
          schema:
            type: string
            description: >-
              ID of the folder to update. Get it from `id` in [List app
              folders](/api-reference/list-app-folders).
            title: Item Id
          description: >-
            ID of the folder to update. Get it from `id` in [List app
            folders](/api-reference/list-app-folders).
          example: 68c1f2a9b4e7d3005a2c9e11
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateAppFolderRequest'
      responses:
        '200':
          description: The updated folder.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppFolderSummary'
        '400':
          description: >-
            The request sends `scope`, `app_type`, `owner_id`, `organization_id`
            or `parent_folder_id`.
        '401':
          description: Missing or invalid credentials.
        '403':
          description: >-
            The folder is a workspace folder and you're a viewer or guest, or
            your token is read-only.
        '404':
          description: >-
            `folder_not_found`: the folder doesn't exist in the workspace, or
            it's another user's personal folder.
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '429':
          description: Rate limit exceeded.
components:
  schemas:
    UpdateAppFolderRequest:
      properties:
        name:
          type: string
          maxLength: 100
          minLength: 1
          title: Name
          description: New name, 1 to 100 characters.
          example: Client work
        position:
          type: number
          title: Position
          description: New sort key among folders. Lower values come first.
          example: 3
        color:
          anyOf:
            - type: string
              maxLength: 32
            - type: 'null'
          title: Color
          description: New color, up to 32 characters, or `null` to clear it.
          example: '#10B981'
        icon:
          anyOf:
            - type: string
              maxLength: 64
            - type: 'null'
          title: Icon
          description: New icon name, up to 64 characters, or `null` to clear it.
          example: folder
      type: object
      title: UpdateAppFolderRequest
    AppFolderSummary:
      properties:
        id:
          type: string
          title: Id
          description: ID of the folder.
          example: 68c1f2a9b4e7d3005a2c9e11
        name:
          type: string
          title: Name
          description: Name of the folder.
          example: Client projects
        parent_folder_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Parent Folder Id
          description: ID of the folder this one sits in, or `null` for a top-level folder.
          example: 68c1f27eb4e7d3005a2c9e0f
        scope:
          type: string
          enum:
            - workspace
            - personal
          title: Scope
          description: >-
            `workspace` for a folder every member of the workspace sees, or
            `personal` for one only you see.
          example: workspace
        position:
          type: number
          title: Position
          description: Sort key among folders. Lower values come first.
          example: 2
        color:
          anyOf:
            - type: string
            - type: 'null'
          title: Color
          description: Color set on the folder, or `null` when none is set.
          example: '#3B82F6'
        icon:
          anyOf:
            - type: string
            - type: 'null'
          title: Icon
          description: Icon name set on the folder, or `null` when none is set.
          example: briefcase
        app_type:
          anyOf:
            - type: string
              enum:
                - user_app
                - user_agent
            - type: 'null'
          title: App Type
          description: >-
            `user_app` for a folder of builder apps, or `user_agent` for a
            folder of agents. Builder app folders created before agent folders
            existed leave it out.
          example: user_app
        created_date:
          type: string
          format: date-time
          title: Created Date
          description: >-
            Time the folder was created, in UTC, as an ISO 8601 timestamp
            without a time zone offset.
          example: '2026-08-01T09:15:00'
      type: object
      required:
        - id
        - name
        - parent_folder_id
        - scope
        - position
        - created_date
      title: AppFolderSummary
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    PersonalAccessTokenAuth:
      type: http
      scheme: bearer
      description: 'Personal access token, sent as `Authorization: Bearer <token>`.'

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.