# Penpot

Open-source design and prototyping platform for collaborative design workflows

- **Category:** images & design
- **Auth:** API_KEY
- **Composio Managed App Available?** N/A
- **Tools:** 90
- **Triggers:** 0
- **Slug:** `PENPOT`
- **Version:** 00000000_00

## Tools

### Create Access Token

**Slug:** `PENPOT_CREATE_ACCESS_TOKEN`

Tool to create a personal access token for API authentication in Penpot. Use when you need to generate a new token for authenticating API requests. The token will only be shown once during creation, so it should be stored securely.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Descriptive name for the access token to help identify its purpose. Must be between 1 and 250 characters. |
| `expiration` | string | No | Optional expiration duration for the token in ISO 8601 duration format (e.g., 'P30D' for 30 days, 'P90D' for 90 days). If not provided, the token may not expire or use the default expiration policy. |

#### 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 Comment Thread

**Slug:** `PENPOT_CREATE_COMMENT_THREAD`

Tool to create a new comment thread on a Penpot file at a specific position. Use when you need to add collaborative feedback or discussion points on design elements within a Penpot project.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `fileId` | string | Yes | UUID of the file where the comment thread will be created |
| `pageId` | string | Yes | UUID of the page where the comment thread will be created |
| `content` | string | Yes | Content text of the comment thread |
| `frameId` | string | Yes | UUID of the frame where the comment thread will be placed. Use '00000000-0000-0000-0000-000000000000' for the root frame |
| `shareId` | string | No | Optional UUID for shared file context |
| `mentions` | array | No | Optional list of user UUIDs to mention in the comment thread |
| `position` | string | Yes | Position coordinates for the comment thread in the format 'x,y' (e.g., '100,200', '-50.5,100.3') |

#### 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 File

**Slug:** `PENPOT_CREATE_FILE`

Tool to create a new design file in a Penpot project. Use when you need to create a new file for design work within a specific project.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | No | Optional UUID to assign to the new file. If not provided, Penpot will generate one automatically. |
| `name` | string | Yes | Name of the file to create. Maximum 250 characters. |
| `features` | array | No | Set of feature flags to enable for this file. |
| `is_shared` | boolean | No | Whether the file should be shared. Default is false. |
| `project_id` | string | Yes | UUID of the project where the file will be created. Must be a valid UUID format. |

#### 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 Project

**Slug:** `PENPOT_CREATE_PROJECT`

Tool to create a new project within a team in Penpot. Use when you need to organize design files into a new project space.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | No | Optional UUID for the project. If not provided, one will be generated automatically |
| `name` | string | Yes | Name of the project to create |
| `team_id` | string | Yes | UUID of the team where the project will be created |

#### 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 Team

**Slug:** `PENPOT_CREATE_TEAM`

Tool to create a new team in Penpot. Use when you need to set up a new team for organizing projects and collaborating with team members.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | No | UUID formatted string for the team ID (if not provided, one will be generated automatically) |
| `name` | string | Yes | Name of the team to create (maximum 250 characters) |
| `features` | array | No | Set of feature flags or permissions to enable for the team |

#### 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 Team Access Request

**Slug:** `PENPOT_CREATE_TEAM_ACCESS_REQUEST`

Tool to request an invitation to join a Penpot team. Use when a user needs to request access to a team for collaboration.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `file_id` | string | No | The UUID of the file associated with the access request. |
| `team_id` | string | Yes | The UUID of the team to request access to. |
| `is_viewer` | boolean | No | Flag indicating if the user is requesting viewer access (true) or editor access (false). |

#### 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 Webhook

**Slug:** `PENPOT_CREATE_WEBHOOK`

Create a webhook for a team to receive event notifications. Use when you need to register a new webhook endpoint that will be notified of events happening in a Penpot team.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `uri` | string | Yes | Webhook URI endpoint that will receive event notifications |
| `mtype` | string ("application/json" | "application/transit+json") | Yes | MIME type for webhook payload format |
| `team_id` | string | Yes | UUID of the team to create the webhook for |

#### 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 Access Token

**Slug:** `PENPOT_DELETE_ACCESS_TOKEN`

Tool to delete a personal access token from Penpot. Use when you need to revoke or remove an existing access token by its UUID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | UUID of the access token to delete |

#### 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 Comment

**Slug:** `PENPOT_DELETE_COMMENT`

Tool to delete a comment from a Penpot design file. Use when you need to permanently remove a specific comment from a design discussion.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | UUID of the comment to delete |
| `shareId` | string | No | UUID of the share link if accessing via shared link |

#### 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 File Snapshot

**Slug:** `PENPOT_DELETE_FILE_SNAPSHOT`

Tool to delete a file snapshot in Penpot. Use when you need to remove a previously created snapshot from a file.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | UUID of the file snapshot to delete |

#### 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 Project

**Slug:** `PENPOT_DELETE_PROJECT`

Tool to delete a project from Penpot. Use when you need to permanently remove a project and all its contents.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | UUID formatted string identifying the project to delete |

#### 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 Team

**Slug:** `PENPOT_DELETE_TEAM`

Tool to delete a team from Penpot. Use when you need to permanently remove a team. This operation is irreversible.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The team identifier (UUID) to be removed |

#### 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 |

### Permanently Delete Team Files

**Slug:** `PENPOT_DELETE_TEAM_FILES_PERMANENTLY`

Tool to permanently delete specified files from a Penpot team. Use when you need to immediately and irreversibly remove files from a team. The team ID is used to filter files and verify write permissions.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `ids` | array | Yes | List of file UUIDs to be permanently deleted from the specified team |
| `team_id` | string | Yes | The team identifier (UUID) to check writable permissions and filter files for deletion |

#### 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 Team Invitation

**Slug:** `PENPOT_DELETE_TEAM_INVITATION`

Tool to delete a pending team invitation in Penpot. Use when you need to cancel an invitation that hasn't been accepted yet.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `email` | string | Yes | Email address of the pending invitation to delete |
| `team_id` | string | Yes | The team identifier (UUID) for which to delete the invitation |

#### 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 Team Member

**Slug:** `PENPOT_DELETE_TEAM_MEMBER`

Tool to remove a member from a team in Penpot. Use when you need to revoke a user's access to a team.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `team_id` | string | Yes | UUID formatted string identifying the team |
| `member_id` | string | Yes | UUID formatted string identifying the member to remove from the team |

#### 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 Webhook

**Slug:** `PENPOT_DELETE_WEBHOOK`

Tool to delete a webhook by its UUID. Use when you need to remove a webhook from Penpot.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | UUID formatted string identifying the webhook to delete. |

#### 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 |

### Duplicate File

**Slug:** `PENPOT_DUPLICATE_FILE`

Tool to duplicate a single file within the same team in Penpot. Use when you need to create a copy of an existing design file.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | Name for the duplicated file. If not provided, a default name will be generated (e.g., 'Copy of Original File') |
| `fileId` | string | Yes | UUID of the file to duplicate |

#### 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 |

### Duplicate Project

**Slug:** `PENPOT_DUPLICATE_PROJECT`

Tool to duplicate an entire Penpot project with all its files. Use when you need to create a copy of an existing project.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | Custom name for the duplicated project. If not provided, a default name will be assigned. Maximum 250 characters. |
| `projectId` | string | Yes | UUID of the project to duplicate. |

#### 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 Access Tokens

**Slug:** `PENPOT_GET_ACCESS_TOKENS`

Tool to list all personal access tokens for the authenticated user. Use when you need to view, audit, or manage existing access tokens.

#### 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 All Projects

**Slug:** `PENPOT_GET_ALL_PROJECTS`

Tool to retrieve all projects across all teams in Penpot. Use when you need a complete list of projects regardless of team membership.

#### 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 Builtin Templates

**Slug:** `PENPOT_GET_BUILTIN_TEMPLATES`

Tool to get the list of builtin templates available in Penpot. Use when you need to see which templates are available for creating new projects.

#### 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 Comments

**Slug:** `PENPOT_GET_COMMENTS`

Tool to retrieve all comments in a comment thread. Use when you need to fetch all comments from a specific thread.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `thread_id` | string | Yes | UUID of the comment thread to retrieve comments from |

#### 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 Comment Thread

**Slug:** `PENPOT_GET_COMMENT_THREAD`

Tool to retrieve a specific comment thread from a Penpot file. Use when you need to fetch details about a comment thread including its comments, participants, and metadata.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | UUID of the comment thread to retrieve |
| `file_id` | string | Yes | UUID of the file containing the comment thread |
| `share_id` | string | No | Optional UUID for shared file access |

#### 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 Comment Threads

**Slug:** `PENPOT_GET_COMMENT_THREADS`

Tool to retrieve all comment threads for a Penpot file. Use when you need to fetch comments and discussions associated with a specific file.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `file_id` | string | Yes | The UUID of the file to retrieve comment threads for |

#### 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 File

**Slug:** `PENPOT_GET_FILE`

Tool to retrieve a Penpot file by its ID. Returns file details including metadata, structure, and permissions. Use when you need to access file information or check file properties.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | UUID of the file to retrieve |
| `features` | array | No | Set of feature flags to enable for this request |

#### 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 File Info

**Slug:** `PENPOT_GET_FILE_INFO`

Tool to retrieve basic information about a Penpot file by its ID. Use when you need to get file metadata such as name, project, creation date, modification date, version, and sharing status.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | UUID of the file to retrieve information for |
| `features` | array | No | Set of feature flags to include in the response. Optional list of strings specifying which features to enable or query. |

#### 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 File Libraries

**Slug:** `PENPOT_GET_FILE_LIBRARIES`

Tool to retrieve libraries linked to a Penpot file. Use when you need to get all library references associated with a specific file by its UUID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `fileId` | string | Yes | UUID of the file to get libraries for |

#### 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 File Object Thumbnails

**Slug:** `PENPOT_GET_FILE_OBJECT_THUMBNAILS`

Tool to retrieve thumbnails for objects in a Penpot file. Use when you need to get thumbnail URLs for file objects.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `tag` | string | No | Optional tag to filter thumbnails (max 50 characters) |
| `file_id` | string | Yes | The file identifier (UUID) to retrieve object thumbnails for |

#### 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 File Snapshots

**Slug:** `PENPOT_GET_FILE_SNAPSHOTS`

Retrieves all snapshots for a specific Penpot file. Use this action to list all saved versions (snapshots) of a file, which allows viewing version history and understanding how the file has evolved over time. Snapshots capture the state of a file at specific points in time.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `fileId` | string | Yes | UUID of the Penpot file to retrieve snapshots for |

#### 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 File Summary

**Slug:** `PENPOT_GET_FILE_SUMMARY`

Tool to retrieve a summary of file contents and statistics from Penpot. Use when you need high-level information about a file including page count, components, graphics, and other metadata without fetching the entire file content.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | UUID formatted string identifying the file |

#### 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 Font Variants

**Slug:** `PENPOT_GET_FONT_VARIANTS`

Tool to retrieve font variants for a team, file, project, or share in Penpot. Use when you need to get a list of available font variants. Provide at least one of team_id, file_id, project_id, or share_id to scope the query.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `file_id` | string | No | UUID of the file to get font variants for |
| `team_id` | string | No | UUID of the team to get font variants for |
| `share_id` | string | No | UUID of the share to get font variants for |
| `project_id` | string | No | UUID of the project to get font variants for |

#### 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 Library File References

**Slug:** `PENPOT_GET_LIBRARY_FILE_REFERENCES`

Tool to get files that reference a shared library. Use when you need to find which files are using a specific library file in Penpot.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `fileId` | string | Yes | UUID of the library file to get references for |

#### 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 Library Usage

**Slug:** `PENPOT_GET_LIBRARY_USAGE`

Tool to get usage statistics for a library. Returns the number of files that use the specified library. Use when you need to understand how widely a library is being used across projects.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `fileId` | string | Yes | UUID of the library file to check usage for |

#### 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 Owned Teams

**Slug:** `PENPOT_GET_OWNED_TEAMS`

Tool to list teams owned by the current user. Use when you need to retrieve teams that the authenticated user owns in Penpot.

#### 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 Page

**Slug:** `PENPOT_GET_PAGE`

Tool to retrieve page data from a Penpot file. Use when you need to get page content including objects and metadata for rendering or export purposes. If no page ID is specified, returns the first page. Can filter to a specific object and its children by providing an object ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `fileId` | string | Yes | UUID of the file to get the page from |
| `pageId` | string | No | UUID of the specific page to retrieve. If not specified, returns the first page of the file. |
| `objectId` | string | No | UUID of a specific object to retrieve. When specified, only that object and its children are returned. Requires pageId to be specified. |

#### 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 Profiles for File Comments

**Slug:** `PENPOT_GET_PROFILES_FOR_FILE_COMMENTS`

Tool to retrieve profiles of users who have commented on a Penpot file. Use when you need to get information about comment participants for collaboration or user management purposes.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `fileId` | string | Yes | UUID of the file to get comment participant profiles for |
| `shareId` | string | No | Optional UUID for shared file access context |

#### 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 Project

**Slug:** `PENPOT_GET_PROJECT`

Tool to retrieve detailed information about a specific Penpot project by its ID. Use when you need to get project details such as name, team ownership, and timestamps.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | UUID of the project 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 |

### Get Project Files

**Slug:** `PENPOT_GET_PROJECT_FILES`

Tool to retrieve all files in a Penpot project. Use when you need to list all files for a specific project by its UUID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `projectId` | string | Yes | UUID of the project to get files for |

#### 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 SSO Provider

**Slug:** `PENPOT_GET_SSO_PROVIDER`

Tool to retrieve SSO provider information for an email address. Use when you need to determine which SSO provider is configured for a specific email domain.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `email` | string | Yes | Email address to look up SSO provider configuration. Must be a valid email format. |

#### 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 Subscription Usage

**Slug:** `PENPOT_GET_SUBSCRIPTION_USAGE`

Tool to get subscription usage information for the current user. Returns details about seats and storage usage. Use when you need to check subscription limits or current usage statistics.

#### 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 Team

**Slug:** `PENPOT_GET_TEAM`

Tool to retrieve team details by ID. Use when you need to fetch information about a specific team in Penpot.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | UUID of the team 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 |

### Get Team Deleted Files

**Slug:** `PENPOT_GET_TEAM_DELETED_FILES`

Tool to retrieve deleted files from a team's trash in Penpot. Use when you need to view files that have been deleted from a specific team and are in the trash.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `teamId` | string | Yes | UUID of the team to retrieve deleted files from |

#### 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 Team Info

**Slug:** `PENPOT_GET_TEAM_INFO`

Tool to retrieve detailed information about a specific Penpot team by its ID. Use when you need to get team details such as name, creation date, and permissions.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | UUID of the team to retrieve information for |

#### 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 Team Invitations

**Slug:** `PENPOT_GET_TEAM_INVITATIONS`

Tool to list pending invitations for a team in Penpot. Use when you need to retrieve all pending team invitations that haven't been accepted yet.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `team_id` | string | Yes | UUID formatted string identifying the team to get invitations for |

#### 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 Team Members

**Slug:** `PENPOT_GET_TEAM_MEMBERS`

Tool to list all members of a team in Penpot. Use when you need to retrieve team membership information and member details.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `team_id` | string | Yes | UUID formatted string identifying the team to get members for |

#### 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 Teams

**Slug:** `PENPOT_GET_TEAMS`

Tool to list all teams the authenticated user is a member of. Use when you need to retrieve teams where the user has membership in Penpot.

#### 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 Team Shared Files

**Slug:** `PENPOT_GET_TEAM_SHARED_FILES`

Tool to retrieve shared library files for a Penpot team. Use when you need to list all shared library files for a specific team by its UUID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `teamId` | string | Yes | UUID of the team to get shared files for |

#### 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 Team Stats

**Slug:** `PENPOT_GET_TEAM_STATS`

Tool to retrieve statistics for a specific Penpot team by its ID. Use when you need to get team metrics such as project count, file count, and member count.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `team-id` | string | Yes | UUID of the team to retrieve statistics for |

#### 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 Team Users

**Slug:** `PENPOT_GET_TEAM_USERS`

Tool to retrieve users in a team by team ID or file ID. Use when you need to list team members associated with a specific team or file.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `fileId` | string | No | UUID formatted string identifying the file to get team users for. Either teamId or fileId must be provided. |
| `teamId` | string | No | UUID formatted string identifying the team to get users for. Either teamId or fileId must be provided. |

#### 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 Unread Comment Threads

**Slug:** `PENPOT_GET_UNREAD_COMMENT_THREADS`

Tool to retrieve comment threads with unread comments for a specific team. Use when you need to check for new comments or discussions requiring attention.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `team_id` | string | Yes | UUID of the team to retrieve unread comment threads for |

#### 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 View Only Bundle

**Slug:** `PENPOT_GET_VIEW_ONLY_BUNDLE`

Tool to retrieve data bundle for view-only file access in Penpot. Use when you need to access read-only file data through a share link or for preview purposes.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `file_id` | string | Yes | UUID of the file to retrieve the view-only bundle for |
| `features` | array | No | Set of feature flags to enable for this request. Optional list of strings. |
| `share_id` | string | No | UUID of the share link associated with the view-only access. Optional. |

#### 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 Webhooks

**Slug:** `PENPOT_GET_WEBHOOKS`

Tool to retrieve all webhooks configured for a team. Use when you need to list existing webhook endpoints registered for a Penpot team.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `team_id` | string | Yes | UUID formatted string identifying the team to get webhooks for |

#### 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 |

### Has File Libraries

**Slug:** `PENPOT_HAS_FILE_LIBRARIES`

Tool to check if a Penpot file has linked libraries. Use when you need to determine whether a specific file references any external libraries.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `fileId` | string | Yes | UUID of the file to check for linked libraries |

#### 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 |

### Ignore File Library Sync Status

**Slug:** `PENPOT_IGNORE_FILE_LIBRARY_SYNC_STATUS`

Tool to ignore library sync status updates for a file. Use when you need to mark library updates as ignored for a specific file, preventing sync notifications from appearing.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `date` | string | Yes | ISO 8601 formatted timestamp indicating when to ignore library sync updates from. Must be in format YYYY-MM-DDTHH:MM:SSZ. |
| `fileId` | string | Yes | UUID of the file to ignore library sync status for |

#### 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 |

### Link File to Library

**Slug:** `PENPOT_LINK_FILE_TO_LIBRARY`

Tool to link a file to a library in Penpot. Returns the recursive list of libraries used by that library. Use when you need to establish a library reference relationship between a file and a library.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `fileId` | string | Yes | UUID of the file to link to the library |
| `libraryId` | string | Yes | UUID of the library to link the file to |

#### 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 |

### Lock File Snapshot

**Slug:** `PENPOT_LOCK_FILE_SNAPSHOT`

Tool to lock a file snapshot in Penpot to prevent deletion. Use when you need to protect a snapshot from being removed.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | UUID of the file snapshot to lock |

#### 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 |

### Logout

**Slug:** `PENPOT_LOGOUT`

Tool to clear the authentication cookie and logout the current session. Use when the authenticated user wants to end their Penpot session and invalidate their authentication.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `profile_id` | string | No | UUID of the profile to logout. If not provided, logs out the current authenticated session. |

#### 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 |

### Mark All Threads As Read

**Slug:** `PENPOT_MARK_ALL_THREADS_AS_READ`

Tool to mark all comment threads as read in Penpot. Use when you need to clear unread status for comment threads.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `threads` | array | Yes | List of comment thread UUIDs to mark as read. Can be an empty list to mark all threads as read. |

#### 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 |

### Move Files

**Slug:** `PENPOT_MOVE_FILES`

Tool to move files from one project to another in Penpot. Use when you need to reorganize files by transferring them between projects.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `ids` | array | Yes | List of file UUIDs to move. Must contain at least one file ID. |
| `project_id` | string | Yes | UUID of the destination project where files will be moved. |

#### 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 |

### Move Project

**Slug:** `PENPOT_MOVE_PROJECT`

Tool to move a project to a different team in Penpot. Use when you need to transfer a project from one team to another.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `team_id` | string | Yes | UUID of the destination team where the project will be moved |
| `project_id` | string | Yes | UUID of the project to move |

#### 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 |

### Prepare Register Profile

**Slug:** `PENPOT_PREPARE_REGISTER_PROFILE`

Tool to prepare user registration by validating email and sending verification in Penpot. Use when you need to initiate the registration process for a new user. This endpoint validates the provided information and typically sends a verification email to complete the registration.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `email` | string | Yes | Email address for the new user account. Must be a valid email format. |
| `fullname` | string | Yes | Full name of the user to register. Must be a non-whitespace string. |
| `password` | string | Yes | Password for the new user account. Should meet security requirements. |
| `invitation_token` | string | No | Optional invitation token for team access. Include this if registering with a team invitation. |
| `create_welcome_file` | boolean | No | Optional flag to automatically create a welcome file for the new user. If not specified, uses system default. |

#### 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 |

### Push Audit Events

**Slug:** `PENPOT_PUSH_AUDIT_EVENTS`

Tool to push audit events to Penpot for tracking system behavior and user actions. Use when you need to log important events like user actions, file changes, or team modifications for auditing purposes.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `events` | array | Yes | Array of audit events to push (must contain at least one event) |

#### 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 |

### Register Profile

**Slug:** `PENPOT_REGISTER_PROFILE`

Tool to complete user registration with profile details using a verification token. Use when you have a registration token from the prepare-register-profile endpoint and need to finalize the user account creation.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `token` | string | Yes | Registration token received from the prepare-register-profile endpoint, typically sent via email verification. This JWT token contains the encrypted registration data. |

#### 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 |

### Rename File

**Slug:** `PENPOT_RENAME_FILE`

Tool to rename a design file in Penpot. Use when you need to change the name of an existing file.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | UUID of the file to rename |
| `name` | string | Yes | New name for the file (1-250 characters) |

#### 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 |

### Rename Project

**Slug:** `PENPOT_RENAME_PROJECT`

Tool to rename an existing project in Penpot. Use when you need to update a project's name.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | UUID of the project to rename |
| `name` | string | Yes | New name for the project |

#### 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 |

### Request Profile Recovery

**Slug:** `PENPOT_REQUEST_PROFILE_RECOVERY`

Tool to request a password/profile recovery email. Use when a user has forgotten their password and needs to initiate the account recovery process. An email with a recovery token will be sent to the specified address.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `email` | string | Yes | Email address of the user account to recover. A recovery email will be sent to this address with a token to reset the password. |

#### 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 |

### Restore Deleted Team Files

**Slug:** `PENPOT_RESTORE_DELETED_TEAM_FILES`

Tool to restore deleted files in a Penpot team. Use when you need to remove the deletion mark from files and projects that are in the team's trash.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `ids` | array | Yes | List of file UUIDs to restore from deletion. Each file will have its deletion mark removed along with its respective project. |
| `team_id` | string | Yes | UUID of the team containing the deleted files to restore |

#### 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 |

### Restore File Snapshot

**Slug:** `PENPOT_RESTORE_FILE_SNAPSHOT`

Tool to restore a Penpot file to a previous snapshot. Use when you need to revert a file to a previously saved version from its history.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | UUID of the snapshot to restore to |
| `fileId` | string | Yes | UUID of the Penpot file to restore |

#### 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 |

### Search Files

**Slug:** `PENPOT_SEARCH_FILES`

Tool to search for files by name or content in a Penpot team. Use when you need to find specific files within a team using a search term.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `teamId` | string | Yes | UUID of the team to search files in |
| `searchTerm` | string | No | Search term to filter files by name or content. If not provided, returns all files in the team. |

#### 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 |

### Send User Feedback

**Slug:** `PENPOT_SEND_USER_FEEDBACK`

Tool to send user feedback to Penpot. Use when you need to submit feedback, bug reports, feature requests, or error reports to the Penpot team.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `type` | string | No | Type or category of the feedback |
| `content` | string | Yes | Detailed content of the feedback message (maximum 2500 characters) |
| `subject` | string | Yes | Subject line for the feedback (maximum 500 characters) |
| `errorHref` | string | No | URL or link associated with an error, if the feedback is related to a specific page or error (maximum 2500 characters) |
| `errorReport` | string | No | Detailed error report or stack trace if the feedback is related to an error |

#### 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 |

### Set File Shared

**Slug:** `PENPOT_SET_FILE_SHARED`

Tool to set file sharing status in Penpot (enable/disable shared library). Use when you need to make a file available as a shared library or revoke its shared status.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | UUID of the file to update the sharing status for |
| `is_shared` | boolean | Yes | Whether the file should be shared as a library. Set to true to enable sharing, false to disable. |

#### 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 |

### Unlink File from Library

**Slug:** `PENPOT_UNLINK_FILE_FROM_LIBRARY`

Tool to unlink a file from a shared library in Penpot. Use when you need to remove the library reference relationship between a file and a library.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `fileId` | string | Yes | UUID of the file to unlink from the library |
| `libraryId` | string | Yes | UUID of the library to unlink the file from |

#### 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 |

### Unlock File Snapshot

**Slug:** `PENPOT_UNLOCK_FILE_SNAPSHOT`

Tool to unlock a locked file snapshot in Penpot. Use when you need to unlock a previously locked snapshot.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | UUID of the file snapshot to unlock |

#### 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 Comment

**Slug:** `PENPOT_UPDATE_COMMENT`

Tool to update the content of an existing comment in a Penpot design file. Use when you need to modify comment text or update mentioned users in a design discussion.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | UUID of the comment to update |
| `content` | string | Yes | New content text for the comment |
| `shareId` | string | No | Optional UUID of the share link if accessing via shared link |
| `mentions` | array | No | Optional list of user UUIDs to mention in the updated comment |

#### 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 Comment Thread

**Slug:** `PENPOT_UPDATE_COMMENT_THREAD`

Tool to update the resolution status of a comment thread in Penpot. Use when you need to mark a comment thread as resolved or unresolved to track discussion progress.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | UUID of the comment thread to update |
| `shareId` | string | No | Optional UUID for shared file context |
| `isResolved` | boolean | Yes | Whether the comment thread should be marked as resolved |

#### 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 Comment Thread Frame

**Slug:** `PENPOT_UPDATE_COMMENT_THREAD_FRAME`

Tool to update the frame associated with a comment thread in Penpot. Use when you need to move a comment thread to a different frame or reposition it within the design hierarchy.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | UUID of the comment thread to update |
| `frameId` | string | Yes | UUID of the frame to associate with the comment thread. Use '00000000-0000-0000-0000-000000000000' for the root frame |
| `shareId` | string | No | Optional UUID for shared file context |

#### 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 Comment Thread Position

**Slug:** `PENPOT_UPDATE_COMMENT_THREAD_POSITION`

Tool to update the position of a comment thread in Penpot. Use when you need to move or reposition an existing comment thread to a different location on the design canvas.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | UUID of the comment thread to update |
| `frameId` | string | Yes | UUID of the frame containing the comment thread. Use '00000000-0000-0000-0000-000000000000' for the root frame |
| `shareId` | string | No | Optional UUID for shared file context |
| `position` | string | Yes | New position coordinates for the comment thread in the format 'x,y' (e.g., '150,250', '-50.5,100.3') |

#### 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 Comment Thread Status

**Slug:** `PENPOT_UPDATE_COMMENT_THREAD_STATUS`

Tool to update the status of a comment thread in Penpot (e.g., toggle resolved/unresolved). Use when you need to mark a comment thread as resolved or reopen a resolved thread.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | UUID of the comment thread to update status for |
| `shareId` | string | No | UUID of the share link if accessing via shared link |

#### 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 File

**Slug:** `PENPOT_UPDATE_FILE`

Tool to update a Penpot file with changes. Use when you need to apply modifications to a file such as adding/modifying/deleting objects, pages, colors, components, or other design elements. Requires file ID, session ID, revision number, and version number for optimistic locking.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | UUID of the file to update. Must be a valid UUID format. |
| `revn` | integer | Yes | Revision number of the file. Used for optimistic locking to prevent conflicts. |
| `vern` | integer | Yes | Version number of the file. Used for tracking file version history. |
| `changes` | array | No | Array of change objects to apply to the file. Each change object must have a 'type' field and additional fields based on the change type (e.g., AddObjChange, ModObjChange, DelObjChange, AddPageChange, etc.). |
| `features` | array | No | Set of feature flags to enable for this update operation. |
| `sessionId` | string | Yes | UUID of the session. Must be a valid UUID format. |
| `skipValidate` | boolean | No | Whether to skip validation of changes. Use with caution as invalid changes may corrupt the file. |
| `changesWithMetadata` | array | No | Array of change groups with metadata including hint events and origin information. |

#### 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 File Library Sync Status

**Slug:** `PENPOT_UPDATE_FILE_LIBRARY_SYNC_STATUS`

Tool to update the synchronization status of a file->library link. Use when you need to refresh or update the sync status between a file and its linked library.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `fileId` | string | Yes | UUID of the file to update library sync status for |
| `libraryId` | string | Yes | UUID of the library to update sync status with |

#### 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 File Snapshot

**Slug:** `PENPOT_UPDATE_FILE_SNAPSHOT`

Tool to update a file snapshot metadata in Penpot. Use when you need to modify the label of an existing snapshot.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | UUID of the file snapshot to update |
| `label` | string | Yes | Updated label for the snapshot (must be a non-whitespace string) |

#### 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 Font

**Slug:** `PENPOT_UPDATE_FONT`

Tool to update a font's metadata in Penpot. Use when you need to modify the name or other properties of an existing font in a team.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | UUID of the font to update |
| `name` | string | Yes | Updated name for the font (1-250 characters) |
| `team_id` | string | Yes | UUID of the team that owns the font |

#### 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 Profile

**Slug:** `PENPOT_UPDATE_PROFILE`

Tool to update the current authenticated user's profile information. Use when you need to change the user's full name, language preference, or theme settings.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `lang` | string | No | Language preference code (maximum 8 characters, e.g., 'en', 'es', 'fr') |
| `theme` | string | No | Theme preference for the user interface (maximum 250 characters) |
| `fullname` | string | Yes | Full name of the user |

#### 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 Profile Notifications

**Slug:** `PENPOT_UPDATE_PROFILE_NOTIFICATIONS`

Tool to update notification settings for the authenticated user's profile. Use when you need to configure how the user receives notifications about comments and invitations.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `email_invites` | string ("all" | "none") | Yes | Notification setting for email invites. Controls whether the user receives email notifications about team or project invitations. |
| `email_comments` | string ("all" | "partial" | "none") | Yes | Notification setting for email comments. Controls whether the user receives email notifications about comments. |
| `dashboard_comments` | string ("all" | "partial" | "none") | Yes | Notification setting for dashboard comments. Controls whether the user receives notifications about comments on the dashboard. |

#### 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 Profile Props

**Slug:** `PENPOT_UPDATE_PROFILE_PROPS`

Tool to update custom properties for the authenticated user's profile. Use when you need to modify user preferences such as onboarding status, notification settings, newsletter subscriptions, or plugin configurations.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `props` | object | Yes | Custom properties to update for the user profile |

#### 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 Project Pin

**Slug:** `PENPOT_UPDATE_PROJECT_PIN`

Tool to update the pin status of a project in Penpot. Use when you need to pin or unpin a project for quick access.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | UUID of the project to update |
| `team_id` | string | Yes | UUID of the team that owns the project |
| `is_pinned` | boolean | Yes | Whether the project should be pinned (true) or unpinned (false) |

#### 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 Team

**Slug:** `PENPOT_UPDATE_TEAM`

Tool to update team settings in Penpot. Use when you need to modify team name or other team properties.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | UUID of the team to update |
| `name` | string | Yes | Updated name for the team (maximum 250 characters) |

#### 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 Team Invitation Role

**Slug:** `PENPOT_UPDATE_TEAM_INVITATION_ROLE`

Tool to update the role of a pending team invitation in Penpot. Use when you need to change the role of an invitation that hasn't been accepted yet.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `role` | string ("viewer" | "admin" | "editor" | "owner") | Yes | New role to assign to the pending invitation |
| `email` | string | Yes | Email address of the pending invitation to update |
| `team_id` | string | Yes | The team identifier (UUID) for which to update the invitation role |

#### 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 Webhook

**Slug:** `PENPOT_UPDATE_WEBHOOK`

Tool to update an existing webhook configuration. Use when you need to modify the URI, MIME type, or active status of a webhook.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | UUID of the webhook to update |
| `uri` | string | Yes | Webhook URI endpoint that will receive event notifications |
| `mtype` | string ("application/json" | "application/transit+json") | Yes | MIME type for webhook payload format |
| `is_active` | boolean | Yes | Whether the webhook should be active or inactive |

#### 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 |

### Verify Token

**Slug:** `PENPOT_VERIFY_TOKEN`

Tool to verify an authentication or registration token in Penpot. Use when you need to validate a token received from registration, email verification, or other authentication flows.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `token` | string | Yes | Authentication or registration token to verify. This can be a verification token from registration, email change, or other authentication flows. Maximum length of 5000 characters. |

#### 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 |
