---
title: "Updates the details of an existing folder, not including its content."
method: PUT
path: "/folders/{guid}"
tags: ["Folder"]
---

# Updates the details of an existing folder, not including its content.

`PUT /folders/{guid}`

## Request

- Base URL: `http://localhost:5050`
- URL: `http://localhost:5050/folders/{guid}`
- Auth: none declared
- TypeScript: <https://skmtc.dev/kameleo-io/apis/kameleo-local-api/docs/folders/:guid/put.ts> (a function with typed inputs; its response is checked against the schema)

## Path parameters

- `guid` string, uuid, required

## Request body

- UpdateFolderRequest
  - `name` string, required: Human readable name of the folder.

## Response `200`

OK.

- FolderResponse
  - `id` string, uuid, required: A unique identifier of the folder.
  - `name` string, required: The name of the folder.
  - `lastModifiedAt` string, date-time, required: Timestamp of the last modification.
  - `lastModifiedBy` string, required: Name of the user who last modified the folder.
  - `createdAt` string, date-time, required: Timestamp of the creation.
  - `createdBy` string, required: Name of the user who created the folder.
  - `profiles` ProfilePreview[], required: List of profiles in the current folder.
    - `id` string, uuid, required: A unique identifier of the profile
    - `name` string, required: The name of the profile
    - `tags` string[], required: Profile tags
    - `proxy` ProxyChoice, required
      - `value` 'none' | 'http' | 'socks5' | 'ssh', required: Proxy connection settings of the profiles. Possible values: 'none': Direct connection without any proxy. 'http': Use a HTTP proxy for upstream communication. 'socks5': Use a SOCKS5 proxy for upstream communication. 'ssh': Use an SSH connection for upstream communication. Basically a SOCKS5 proxy created at the given SSH host.
      - `extra` Server: Represents a server connection. It can be used as a proxy server connection as well.
        - `host` string, required: Gets or sets the hostname where the service is provided from.
        - `port` integer, required: Gets or sets the port where the service is provided from.
        - `id` string, nullable: Gets or sets the identity information provided for the service. This could be a custom id or username or anything which identifies a resource on the remote service. Use it as a proxy username. This field is optional.
        - `secret` string, nullable: Gets or sets the shared secret between the client and the service provider. Use it as a proxy password. This field is optional.
    - `createdAt` string, date-time, required: Date when the profile was created.
    - `device` Device, required
      - `type` string, required: Type of the device. Possible values are: 'desktop', 'mobile'.
      - `name` string, nullable: Name of the device. This is only available for mobile profiles.
    - `os` Os, required
      - `family` string, required: Specifies the operating system family. Possible values are 'windows', 'macos', 'linux', 'android', 'ios'.
      - `version` string, required: The specific version of the OS. For example it helps you determine the exact version of the macOS.
      - `platform` string, required: The OS's platform, indicating the processor architecture (e.g., 64-bit, 32-bit)
    - `browser` Browser, required
      - `product` string, required: Product of the browser. Possible values are 'chrome', 'firefox', 'edge', 'safari'.
      - `major` integer, required: Major version of the browser.
      - `version` string, required: Exact version of the browser.
    - `language` string, required: A language or a comma-separated list of languages for the profile. ISO 639-1 language and optionally ISO 3166-1 region code.
    - `status` StatusResponse, required: Status information about the profile
      - `lifetimeState` 'created' | 'starting' | 'running' | 'terminating' | 'terminated' | 'locked' | 'loading' | 'unknown', required: Represents the lifetime states of a profile, indicating which actions can be performed with the associated browser engine at each state. Possible values are: - Created: Profile is created; the associated browser engine is not started. - Starting: The associated browser engine is starting. - Running: The associated browser engine is currently running. - Terminating: The associated browser engine is in the process of terminating. - Terminated: The associated browser engine is not running but has been started at least once. - Locked: The profile is currently being used by another user. - Loading: The profile data or the browser engine is syncing with the cloud storage. - Unknown: State of the profile is undefined.
    - `storage` 'local' | 'cloud'
    - `folderId` string, uuid, nullable: A unique identifier of the containing folder, or empty (00000000-0000-0000-0000-000000000000) if not in a folder. This will always be empty for locally stored profiles, as only cloud profiles can be added to folders.
  - `shareAccesses` ShareAccess[], required: List of users accessing this folder.
    - `user` User, required
      - `id` string, uuid, required: Unique identifier of the user.
      - `name` string, required: Dispaly name of the user.
      - `email` string, required: Email address of the user.
    - `role` GroupRole, required
      - `id` string, uuid, required: Unique identifier of the role.
      - `name` string, required: Name of the role.
      - `description` string, required: Description of the role.
    - `sharedAt` string, date-time, required: Timestamp when the acess was granted to the user.

## Other responses

- `400`: The provided data failed validation.
- `401`: Unauthorized
- `404`: Folder is not found.
- `default`: Error

## Changes

- **2026-08-03** `dc959e78ce25`: 4 warning
  - added the new `running_mobile_profiles_limit_reached` enum value to the `errorCode/allOf[#/components/schemas/ErrorCode]/` response property for the response status `400`
  - added the new `running_mobile_profiles_limit_reached` enum value to the `errorCode/allOf[#/components/schemas/ErrorCode]/` response property for the response status `401`
  - added the new `running_mobile_profiles_limit_reached` enum value to the `errorCode/allOf[#/components/schemas/ErrorCode]/` response property for the response status `404`
  - added the new `running_mobile_profiles_limit_reached` enum value to the `errorCode/allOf[#/components/schemas/ErrorCode]/` response property for the response status `default`
- **2026-06-16** `4d1d53a322e2`: 8 warning, 28 info
  - removed the optional property `code` from the response with the `400` status
  - removed the optional property `code` from the response with the `401` status
  - removed the optional property `code` from the response with the `404` status
  - removed the optional property `code` from the response with the `default` status
  - …32 more
- …earlier changes not shown

[Operation history](https://skmtc.dev/kameleo-io/apis/kameleo-local-api/changes/folders/:guid/put.md)

---

[API](https://skmtc.dev/kameleo-io/apis/kameleo-local-api.md) - [All operations](https://skmtc.dev/kameleo-io/apis/kameleo-local-api/llms.txt) - [OpenAPI document](https://skmtc.dev/kameleo-io/apis/kameleo-local-api/revisions/d3225562612a?raw)
