> This page is for 平台, version V4 (default).
> For other versions, use one of these documentation indexes:
> - V4 (default): https://next.developer.frame.io/platform/v4/llms.txt
> - V4 实验版: https://next.developer.frame.io/platform/v4-experimental/llms.txt
> - 旧版: https://next.developer.frame.io/platform/v2/llms.txt

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://next.developer.frame.io/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://next.developer.frame.io/_mcp/server.

# TypeScript SDK 参考

---

### 安装

```curl
npm i -s frameio
```

---

### 用法

使用以下内容实例化和使用客户端：

```ts
import { FrameioClient } from "frameio";

const client = new FrameioClient({ token: "YOUR_TOKEN" });
await client.metadataFields.metadataFieldDefinitionsCreate("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    data: {
        field_type: "select",
        field_configuration: {
            enable_add_new: false,
            options: [
                {
                    display_name: "Option 1",
                },
                {
                    display_name: "Option 2",
                },
            ],
        },
        name: "Fields definition name",
    },
});
```

---

### 请求和响应类型

SDK 将所有请求和响应类型导出为 TypeScript 接口。 只需使用以下命名空间导入它们：

```ts
import { Frameio } from "frameio";

const request: Frameio.UpdateFieldDefinitionParams = {
    ...
};
```

---

### 异常情况处理

当 API 返回非成功状态代码（4xx 或 5xx 响应）时，将抛出以下错误的子类。

```ts
import { FrameioError } from "frameio";

try {
    await client.metadataFields.metadataFieldDefinitionsCreate(...);
} catch (err) {
    if (err instanceof FrameioError) {
        console.log(err.statusCode);
        console.log(err.message);
        console.log(err.body);
        console.log(err.rawResponse);
    }
}
```

---

### 高级

#### 其他标头

如果要向请求中发送其他标头，请使用标头请求选项。

```ts
const response = await client.metadataFields.metadataFieldDefinitionsCreate(..., {
    headers: {
        'X-Custom-Header': 'custom value'
    }
});
```

#### 其他查询字符串参数

如果要向请求中发送其他查询字符串参数，请使用 queryParams 请求选项。

```ts
const response = await client.metadataFields.metadataFieldDefinitionsCreate(..., {
    queryParams: {
        'customQueryParamKey': 'custom query param value'
    }
});
```

---

#### 重试

SDK 内置了具有指数退避机制的自动重试功能。 只要请求被视为可重试且重试次数未超过配置的重试限制（默认值：2），就会重试请求。

在返回以下任意 HTTP 状态代码时，该请求均被视为可重试：

* 408（超时）
* 429（请求过多）
* 5XX（内部服务器错误）

\
使用 `maxRetries` 请求选项来配置此行为。

```ts
const response = await client.metadataFields.metadataFieldDefinitionsCreate(..., {
    maxRetries: 0 // override maxRetries at the request level
});
```

---

#### 超时

SDK 的默认超时时间为 60 秒。 使用 timeoutInSeconds 请求选项来配置此行为。

```ts
const response = await client.metadataFields.metadataFieldDefinitionsCreate(..., {
    timeoutInSeconds: 30 // override timeout to 30s
});
```

#### 中止请求

SDK 允许用户通过传递中止信号随时中止请求。

```ts
const controller = new AbortController();
const response = await client.metadataFields.metadataFieldDefinitionsCreate(..., {
    abortSignal: controller.signal
});
controller.abort(); // aborts the request
```

---

#### 访问原始响应数据

SDK 通过 `.withRawResponse()` 方法提供对原始响应数据（包括标头）的访问权限。 `.withRawResponse()` 方法返回一个 promise，该 promise 会得到一个包含 `data` 和 `rawResponse` 属性的对象。

```ts
const { data, rawResponse } = await client.metadataFields.metadataFieldDefinitionsCreate(...).withRawResponse();

console.log(data);
console.log(rawResponse.headers['X-My-Header']);
```

#### 运行时兼容性

SDK 可在以下运行时中运行：

* Node.js 18+
* Vercel
* Cloudflare Workers
* Deno v1.25+
* Bun 1.0+
* React Native

---

#### 自定义 Fetch 客户端

SDK 为您提供了一种自定义底层 HTTP 客户端/Fetch 函数的方法。 如果您在不受支持的环境中运行，这可以提供一种打破限制并确保 SDK 正常运行的方法。

```ts
import { FrameioClient } from "frameio";

const client = new FrameioClient({
    ...
    fetcher: // provide your implementation here
});
```

---

### 参考

#### 帐户权限

#### client.accountPermissions.index(accountId, \{ ...params }) -> core.Page\<Frameio.AccountUserRole>

列出给定帐户的用户角色。

速率限制：每个 account\_user 每 1.00 分钟 100 次调用

**`usage`**

```ts usage

const response = await client.accountPermissions.index("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    include_deactivated: true,
    after: "<opaque_cursor>",
    page_size: 10,
    include_total_count: false,
});
for await (const item of response) {
    console.log(item);
}

// Or you can manually iterate page-by-page
let page = await client.accountPermissions.index("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    include_deactivated: true,
    after: "<opaque_cursor>",
    page_size: 10,
    include_total_count: false,
});
while (page.hasNextPage()) {
    page = page.getNextPage();
}

```

**参数**

`accountId`: `Frameio.Uuid` —

`request`: `Frameio.AccountPermissionsIndexRequest`

`requestOptions`: `AccountPermissions.RequestOptions`

#### 帐户

#### client.accounts.index(\{ ...params }) -> core.Page\<Frameio.Account>

列出当前用户的帐户。

速率限制：每个 account\_user 每 1.00 分钟 100 次调用

**`usage`**

```ts usage
const response = await client.accounts.index({
    after: "<opaque_cursor>",
    page_size: 10,
    include_total_count: false,
});
for await (const item of response) {
    console.log(item);
}

// Or you can manually iterate page-by-page
let page = await client.accounts.index({
    after: "<opaque_cursor>",
    page_size: 10,
    include_total_count: false,
});
while (page.hasNextPage()) {
    page = page.getNextPage();
}

```

**参数**

`request`: `Frameio.AccountsIndexRequest`

`requestOptions`: `Accounts.RequestOptions`

#### client.accounts.auditlogIndex(accountId, \{ ...params }) -> Frameio.AuditLogsWithIncludesResponse

通过查询参数提供筛选功能，列出审核日志。

速率限制：每个 account\_user 每 1.00 分钟 100 次调用

**`usage`**

```ts usage
await client.accounts.auditlogIndex("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    include: "user",
    after: "<opaque_cursor>",
    page_size: 10,
    include_total_count: false,
});
```

**参数**

`accountId`: `Frameio.FrameOrAdobeId` —

`request`: `Frameio.AuditlogIndexRequest`

`requestOptions`: `Accounts.RequestOptions`

#### Auth

#### new ServerToServerAuth(\{ clientId, clientSecret, ... })

使用 OAuth 2.0 `client_credentials` 授权凭证进行身份验证。此流程不涉及用户，也不会返回刷新令牌。 当访问令牌过期时，SDK 会使用客户端凭据自动请求新令牌。

**`usage`**

```ts usage
import { FrameioClient, ServerToServerAuth } from "frameio";

const auth = new ServerToServerAuth({
    clientId: "YOUR_CLIENT_ID",
    clientSecret: "YOUR_CLIENT_SECRET",
});
const client = new FrameioClient({ token: () => auth.getToken() });
```

**参数**

`clientId`: `string` — Adobe IMS OAuth 客户端 ID.

`clientSecret`: `string` — Adobe IMS OAuth 客户端密钥。

`scopes`: `string` — 以空格分隔的权限范围 (OAuth 2.0 RFC 6749)。默认使用服务器到服务器的权限范围。

`imsBaseUrl`: `string` — 用于暂存/备用环境的 IMS 基本 URL。默认为生产环境。

`fetch`: `typeof fetch` — 自定义获取实施（用于代理、TLS 等）。

`onTokenRefreshed`: `OnTokenRefreshed` — 可选回调，在每次获取令牌后触发。

`timeout`: `number` — HTTP 请求超时时间（以毫秒为单位）。默认为 30000。

`maxRetries`: `number` — 瞬态故障的最大重试次数。默认为 2。

`refreshBuffer`: `number` — 过期时间前触发主动刷新的秒数。默认为 60。

`logger`: `Logger` — 用于诊断输出的记录器实例。**方法** `getToken(): Promise<string>` — 返回有效的访问令牌，必要时进行刷新。将其传递给客户端：`new FrameioClient({ token: () => auth.getToken() })`。`authenticate(): Promise<TokenResponse>` — 显式获取新的访问令牌。`revoke(): Promise<void>` — 撤销服务器端的令牌并清除本地状态。`exportTokens(): ExportedTokens` — 导出当前令牌状态，实现持久性。`importTokens(data: ExportedTokens): void` — 从之前导出的对象中还原令牌状态。

#### 新的 WebAppAuth(\{ clientId, clientSecret, redirectUri, ... })

使用 OAuth 2.0 `authorization_code` 授权凭证进行身份验证。将其用于可安全存储客户端密钥的服务器端应用程序。

**`usage`**

```ts usage
import { randomBytes } from "crypto";
import { FrameioClient, WebAppAuth } from "frameio";

const auth = new WebAppAuth({
    clientId: "YOUR_CLIENT_ID",
    clientSecret: "YOUR_CLIENT_SECRET",
    redirectUri: "https://myapp.com/callback",
});
const url = auth.getAuthorizationUrl({ state: randomBytes(24).toString("hex") });
// redirect the user to url ...
await auth.exchangeCode("CODE_FROM_CALLBACK");
const client = new FrameioClient({ token: () => auth.getToken() });
```

**参数**

`clientId`: `string` — Adobe IMS OAuth 客户端 ID.

`clientSecret`: `string` — Adobe IMS OAuth 客户端密钥。

`redirectUri`: `string` — 已注册的重定向 URI。

`scopes`: `string` — 以空格分隔的权限范围 (OAuth 2.0 RFC 6749)。

`imsBaseUrl`: `string` — 用于暂存/备用环境的 IMS 基本 URL。默认为生产环境。

`fetch`: `typeof fetch` — 自定义获取实施（用于代理、TLS 等）。

`onTokenRefreshed`: `OnTokenRefreshed` — 可选回调，在每次刷新令牌后触发。

`timeout`: `number` — HTTP 请求超时时间（以毫秒为单位）。默认为 30000。

`maxRetries`: `number` — 瞬态故障的最大重试次数。默认为 2。

`refreshBuffer`: `number` — 过期时间前触发主动刷新的秒数。默认为 60。

`logger`: `Logger` — 用于诊断输出的记录器实例。**方法** `getToken(): Promise<string>` — 返回有效的访问令牌，必要时进行刷新。`getAuthorizationUrl({ state }): string` — 构建 Adobe IMS 授权 URL。传递一个不透明的 CSRF/状态值，该值将被回显。 `exchangeCode(code: string): Promise<TokenResponse>` — 使用授权代码交换访问令牌和刷新令牌。`refresh(): Promise<TokenResponse>` — 手动触发令牌刷新。`revoke(): Promise<void>` — 撤销服务器端的令牌并清除本地状态。`exportTokens(): ExportedTokens` — 导出当前令牌状态，实现持久性。`importTokens(data: ExportedTokens): void` — 从之前导出的对象中还原令牌状态。

#### 新的 SPAAuth(\{ clientId, redirectUri, ... })

使用 `authorization_code` + PKCE（无客户端密钥）进行身份验证。将其用于无法安全存储客户端密钥的基于浏览器的单页应用程序。

**`usage`**

```ts usage
import { randomBytes } from "crypto";
import { FrameioClient, SPAAuth } from "frameio";

const auth = new SPAAuth({
    clientId: "YOUR_CLIENT_ID",
    redirectUri: "https://myapp.com/cb",
});
const result = await auth.getAuthorizationUrl({ state: randomBytes(24).toString("hex") });
// redirect the user to result.url, store result.codeVerifier ...
await auth.exchangeCode({ code: "CODE_FROM_CALLBACK", codeVerifier: result.codeVerifier });
const client = new FrameioClient({ token: () => auth.getToken() });
```

**参数**

`clientId`: `string` — Adobe IMS OAuth 客户端 ID.

`redirectUri`: `string` — 已注册的重定向 URI。

`scopes`: `string` — 以空格分隔的权限范围 (OAuth 2.0 RFC 6749)。

`imsBaseUrl`: `string` — 用于暂存/备用环境的 IMS 基本 URL。默认为生产环境。

`fetch`: `typeof fetch` — 自定义获取实施（用于代理、TLS 等）。

`onTokenRefreshed`: `OnTokenRefreshed` — 可选回调，在每次刷新令牌后触发。

`timeout`: `number` — HTTP 请求超时时间（以毫秒为单位）。默认为 30000。

`maxRetries`: `number` — 瞬态故障的最大重试次数。默认为 2。

`refreshBuffer`: `number` — 过期时间前触发主动刷新的秒数。默认为 60。

`logger`: `Logger` — 用于诊断输出的记录器实例。**方法** `getToken(): Promise<string>` — 返回有效的访问令牌，必要时进行刷新。`getAuthorizationUrl({ state }): Promise<AuthorizationUrlResult>` — 使用 PKCE 质询构建 Adobe IMS 授权 URL。返回带有 `url` 和 `codeVerifier` 属性的 `AuthorizationUrlResult`。`exchangeCode({ code, codeVerifier }): Promise<TokenResponse>` — 将授权代码 + PKCE 验证器交换为令牌。`refresh(): Promise<TokenResponse>` — 手动触发令牌刷新。`revoke(): Promise<void>` — 撤销服务器端的令牌并清除本地状态。`exportTokens(): ExportedTokens` — 导出当前令牌状态，实现持久性。`importTokens(data: ExportedTokens): void` — 从之前导出的对象中还原令牌状态。

#### new NativeAppAuth(\{ clientId, redirectUri, ... })

使用 `authorization_code` + PKCE 对桌面和移动应用程序进行身份验证。与 `SPAAuth` 共享相同的 API；使用自定义架构重定向 URI（例如 `myapp://callback`）。

**`usage`**

```ts usage
import { randomBytes } from "crypto";
import { FrameioClient, NativeAppAuth } from "frameio";

const auth = new NativeAppAuth({
    clientId: "YOUR_CLIENT_ID",
    redirectUri: "myapp://callback",
});
const result = await auth.getAuthorizationUrl({ state: randomBytes(24).toString("hex") });
// open result.url in the system browser, store result.codeVerifier ...
await auth.exchangeCode({ code: "CODE_FROM_CALLBACK", codeVerifier: result.codeVerifier });
const client = new FrameioClient({ token: () => auth.getToken() });
```

**参数**

`clientId`: `string` — Adobe IMS OAuth 客户端 ID.

`redirectUri`: `string` — 已注册的重定向 URI（支持自定义架构）。

`scopes`: `string` — 以空格分隔的权限范围 (OAuth 2.0 RFC 6749)。

`imsBaseUrl`: `string` — 用于暂存/备用环境的 IMS 基本 URL。默认为生产环境。

`fetch`: `typeof fetch` — 自定义获取实施（用于代理、TLS 等）。

`onTokenRefreshed`: `OnTokenRefreshed` — 可选回调，在每次刷新令牌后触发。

`timeout`: `number` — HTTP 请求超时时间（以毫秒为单位）。默认为 30000。

`maxRetries`: `number` — 瞬态故障的最大重试次数。默认为 2。

`refreshBuffer`: `number` — 过期时间前触发主动刷新的秒数。默认为 60。

`logger`: `Logger` — 用于诊断输出的记录器实例。**方法** 与 `SPAAuth` 相同：`getToken()`、`getAuthorizationUrl({ state })`、`exchangeCode({ code, codeVerifier })`、`refresh()`、`revoke()`、`exportTokens()`、`importTokens(data)`。

#### AuthorizationUrlResult

`SPAAuth.getAuthorizationUrl()` 和 `NativeAppAuth.getAuthorizationUrl()` 返回的对象。包含授权 URL 和 PKCE 代码验证器。 **属性** `url`: `string` — 要将用户重定向到的完整授权 URL。`codeVerifier`: `string` — 用于存储并传递给 `exchangeCode()` 的 PKCE 代码验证器。

#### 身份验证异常情况

所有身份验证错误都扩展 `FrameioAuthError`，并且可以从 `frameio` 导入。

| 例外                    | 描述                                                 |
| --------------------- | -------------------------------------------------- |
| `FrameioAuthError`    | 所有身份验证 SDK 错误的基础错误。                                |
| `AuthenticationError` | 令牌交换或刷新失败。 包含 `errorCode` 和 `errorDescription` 属性。 |
| `TokenExpiredError`   | 刷新令牌已过期；需要进行重新验证。                                  |
| `NetworkError`        | 网络请求失败（超时、连接错误等）。                                  |
| `RateLimitError`      | Adobe IMS 返回 429，重试次数已用尽。包含 `retryAfter` 属性。       |
| `PKCEError`           | PKCE 验证失败。                                         |
| `ConfigurationError`  | 缺少必需配置或配置无效。                                       |

#### 收藏集

#### client.collections.index(accountId, projectId, \{ ...params }) -> Frameio.CollectionsResponse

列出项目的收藏集。

速率限制：每个 account\_user 每 1.00 分钟 100 次调用

**`usage`**

```ts usage
await client.collections.index("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    include: "creator,project",
    after: "<opaque_cursor>",
    page_size: 10,
    include_total_count: false,
});
```

**参数**

`accountId`: `Frameio.Uuid` —

`projectId`: `Frameio.Uuid` —

`request`: `Frameio.CollectionsIndexRequest`

`requestOptions`: `Collections.RequestOptions`

#### client.collections.show(accountId, collectionId, \{ ...params }) -> Frameio.CollectionResponse

显示收藏集详细信息

速率限制：每个 account\_user 每 1.00 分钟 100 次调用

**`usage`**

```ts usage
await client.collections.show("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    include: "creator,project",
});
```

**参数**

`accountId`: `Frameio.Uuid` —

`collectionId`: `Frameio.Uuid` —

`request`: `Frameio.CollectionsShowRequest`

`requestOptions`: `Collections.RequestOptions`

#### 评论

#### client.comments.show(accountId, commentId, \{ ...params }) -> Frameio.CommentWithIncludesResponse

显示文件上的单条评论。

速率限制：每个 account\_user 每 1.00 分钟 100 次调用

**`usage`**

```ts usage
await client.comments.show("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    include: "owner",
});

```

**参数**

`accountId`: `Frameio.Uuid` —

`commentId`: `Frameio.Uuid` —

`request`: `Frameio.CommentsShowRequest`

`requestOptions`: `Comments.RequestOptions`

#### client.comments.delete(accountId, commentId) -> void

从资产中删除评论。

速率限制：每个 account\_user 每 1.00 分钟 60 次调用

**`usage`**

```ts usage
await client.comments.delete("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b");

```

**参数**

`accountId`: `Frameio.Uuid` —

`commentId`: `Frameio.Uuid` —

`requestOptions`: `Comments.RequestOptions`

#### client.comments.update(accountId, commentId, \{ ...params }) -> Frameio.CommentResponse

更新给定资产上的评论。

速率限制：每个 account\_user 每 1.00 分钟 10 次调用

**`usage`**

```ts usage
await client.comments.update("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    timestamp_as_timecode: true,
    data: {
        annotation:
            '[{"tool":"rect","color":"#F22237","size":8,"x":0.277726001863933,"y":0.12909555568499534,"w":0.3153168321877913,"h":0.5308131407269339,"ix":0.277726001863933,"iy":0.12909555568499534,"radius":8}]',
        completed: false,
        page: 4,
        text: "This is great!",
    },
});
```

**参数**

`accountId`: `Frameio.Uuid` —

`commentId`: `Frameio.Uuid` —

`request`: `Frameio.UpdateCommentParams`

`requestOptions`: `Comments.RequestOptions`

#### client.comments.index(accountId, fileId, \{ ...params }) -> core.Page\<Frameio.CommentWithIncludes>

列出给定资产上的评论。

速率限制：每个 account\_user 每 1.00 分钟 100 次调用

**`usage`**

```ts usage
const response = await client.comments.index(
    "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    {
        include: "owner",
        after: "<opaque_cursor>",
        page_size: 10,
        include_total_count: false,
    },
);
for await (const item of response) {
    console.log(item);
}

// Or you can manually iterate page-by-page
let page = await client.comments.index("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    include: "owner",
    after: "<opaque_cursor>",
    page_size: 10,
    include_total_count: false,
});
while (page.hasNextPage()) {
    page = page.getNextPage();
}
```

**参数**

`accountId`: `Frameio.Uuid` —

`fileId`: `Frameio.Uuid` —

`request`: `Frameio.CommentsIndexRequest`

`requestOptions`: `Comments.RequestOptions`

#### client.comments.create(accountId, fileId, \{ ...params }) -> Frameio.CommentResponse

对文件发表评论。

速率限制：每个 account\_user 每 1.00 分钟 100 次调用

**`usage`**

```ts usage
await client.comments.create("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    timestamp_as_timecode: true,
    data: {
        annotation:
            '[{"tool":"rect","color":"#F22237","size":8,"x":0.277726001863933,"y":0.12909555568499534,"w":0.3153168321877913,"h":0.5308131407269339,"ix":0.277726001863933,"iy":0.12909555568499534,"radius":8}]',
        completed: false,
        page: 4,
        text: "This is great!",
        timestamp: "00:00:02:12",
    },
});
```

**参数**

`accountId`: `Frameio.Uuid` —

`fileId`: `Frameio.Uuid` —

`request`: `Frameio.CreateCommentParams`

`requestOptions`: `Comments.RequestOptions`

#### client.comments.createAttachment(accountId, commentId, \{ ...params }) -> Frameio.CommentAttachmentResponse

为现有评论创建附件

速率限制：每个 account\_user 每 1.00 分钟 60 次调用

**`usage`**

```ts usage
await client.comments.createAttachment("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    data: {
        file_size: 1024000,
        media_type: "image/png",
        name: "screenshot.png",
    },
});
```

**参数**

`accountId`: `Frameio.FrameOrAdobeId` —

`commentId`: `Frameio.Uuid` —

`request`: `Frameio.CreateAttachmentParams`

`requestOptions`: `Comments.RequestOptions`

#### client.comments.deleteAttachment(accountId, commentId, attachmentId) -> void

删除评论中的附件.

速率限制：每个 account\_user 每 1.00 分钟 60 次调用

**`usage`**

```ts usage
await client.comments.deleteAttachment("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b");
```

**参数**

`accountId`: `Frameio.FrameOrAdobeId` —

`commentId`: `Frameio.Uuid` —

`attachmentId`: `Frameio.Uuid` —

`requestOptions`: `Comments.RequestOptions`

#### 自定义操作

#### client.customActions.actionsIndex(accountId, workspaceId, \{ ...params }) -> Frameio.ActionsWithIncludesResponse

列出给定工作区中的操作。

速率限制：每个 account\_user 每 1.00 分钟 100 次调用

**`usage`**

```ts usage
await client.customActions.actionsIndex("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    include: "creator",
    after: "<opaque_cursor>",
    page_size: 10,
    include_total_count: false,
});
```

**参数**

`accountId`: `Frameio.FrameOrAdobeId` —

`workspaceId`: `Frameio.Uuid` —

`request`: `Frameio.ActionsIndexRequest`

`requestOptions`: `CustomActions.RequestOptions`

#### client.customActions.actionsShow(accountId, actionId, \{ ...params }) -> Frameio.ActionWithIncludesResponse

显示自定义操作详细信息。

速率限制：每个 account\_user 每 1.00 分钟 100 次调用

**`usage`**

```ts usage
await client.customActions.actionsShow("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    include: "creator",
});
```

**参数**

`accountId`: `Frameio.FrameOrAdobeId` —

`actionId`: `Frameio.Uuid` —

`request`: `Frameio.ActionsShowRequest`

`requestOptions`: `CustomActions.RequestOptions`

#### client.customActions.actionsCreate(accountId, workspaceId, \{ ...params }) -> Frameio.ActionCreateResponse

在工作区中创建自定义操作。

速率限制：每个 account\_user 每 1.00 分钟 10 次调用

**`usage`**

```ts usage
await client.customActions.actionsCreate("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    data: {
        description: "customizing our workflow",
        event: "my.event",
        name: "First Custom Action",
        timeout: 7,
        url: "https://example.com/custom-action",
    },
});
```

**参数**

`accountId`: `Frameio.FrameOrAdobeId` —

`workspaceId`: `Frameio.Uuid` —

`request`: `Frameio.ActionCreateParams`

`requestOptions`: `CustomActions.RequestOptions`

#### client.customActions.actionsUpdate(accountId, actionId, \{ ...params }) -> Frameio.ActionResponse

更新自定义操作详细信息。

速率限制：每个 account\_user 每 1.00 分钟 10 次调用

**`usage`**

```ts usage
await client.customActions.actionsUpdate("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    data: {
        active: true,
        description: "customizing our workflow",
        event: "my.event",
        multi_asset: true,
        name: "First Custom Action",
        timeout: 7,
        url: "https://example.com/custom-action",
    },
});
```

**参数**

`accountId`: `Frameio.FrameOrAdobeId` —

`actionId`: `Frameio.Uuid` —

`request`: `Frameio.ActionUpdateParams`

`requestOptions`: `CustomActions.RequestOptions`

#### client.customActions.actionsDelete(accountId, actionId) -> void

删除自定义操作。

速率限制：每个 account\_user 每 1.00 分钟 60 次调用

**`usage`**

```ts usage
await client.customActions.actionsDelete("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b");
```

**参数**

`accountId`: `Frameio.FrameOrAdobeId` —

`actionId`: `Frameio.Uuid` —

`requestOptions`: `CustomActions.RequestOptions`

#### 文件

#### client.files.list(accountId, folderId, \{ ...params }) -> Frameio.AssetsWithIncludesResponse

列出给定文件夹中的文件。

速率限制：每个 account\_user 每 1 秒钟 5 次调用

**`usage`**

```ts usage
await client.files.list("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    include: "media_links",
    after: "<opaque_cursor>",
    page_size: 10,
    include_total_count: false,
});
```

**参数**

`accountId`: `Frameio.Uuid` —

`folderId`: `Frameio.Uuid` —

`request`: `Frameio.FilesListRequest`

`requestOptions`: `Files.RequestOptions`

#### client.files.create(accountId, folderId, \{ ...params }) -> Frameio.FileWithUploadUrlsResponse

在主文件夹下创建新文件。`创建文件（本地上传）`和`创建文件（远程上传）`已替换此端点。

速率限制：每个 account\_user 每 1 秒钟 5 次调用

**`usage`**

```ts usage
await client.files.create("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    data: {
        file_size: 1137444,
        media_type: "image/png",
        name: "asset.png",
    },
});
```

**参数**

`accountId`: `Frameio.Uuid` —

`folderId`: `Frameio.Uuid` —

`request`: `Frameio.FileCreateParams`

`requestOptions`: `Files.RequestOptions`

#### client.files.show(accountId, fileId, \{ ...params }) -> Frameio.FileWithIncludesResponse

显示文件详细信息。

使用 include 查询参数选择性地在响应中包含其他属性。

> **Note**
>
> 如果您包含 `media_links.original` 且用户无权下载文件，则此端点将响应 `403 Forbidden` 错误。如果由于该用户需要水印而请求的 media\_links 不支持水印，导致内容无法访问，则请求将成功，但不支持的媒体链接将被设置为 null。 同样，如果请求的转码链接对于特定文件不存在（例如，在静态图像文件中包含 `media_links.video_h264_180`）或者转码过程尚未完成（即文件的状态为“已上传”而不是“已转码”），则响应负载中的链接也将被设置为 null。 简而言之，客户端必须妥善处理 null 媒体链接。

速率限制：每个 account\_user 每 1 秒钟 5 次调用

**`usage`**

```ts usage
await client.files.show("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    include: "media_links",
});
```

**参数**

`accountId`: `Frameio.Uuid` —

`folderId`: `Frameio.Uuid` —

`request`: `Frameio.FilesShowRequest`

`requestOptions`: `Files.RequestOptions`

#### client.files.delete(accountId, fileId) -> void

按 ID 删除文件。

速率限制：每个 account\_user 每 1.00 分钟 100 次调用

**`usage`**

```ts usage
await client.files.delete("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b");
```

**参数**

`accountId`: `Frameio.Uuid` —

`fileId`: `Frameio.Uuid` —

`requestOptions`: `Files.RequestOptions`

#### client.files.update(accountId, fileId, \{ ...params }) -> Frameio.FileResponse

更新文件详细信息。

速率限制：每个 account\_user 每 1.00 分钟 100 次调用

**`usage`**

```ts usage
await client.files.update("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    data: {
        name: "asset.png",
    },
});
```

**参数**

`accountId`: `Frameio.Uuid` —

`fileId`: `Frameio.Uuid` —

`request`: `Frameio.FileUpdateParams`

`requestOptions`: `Files.RequestOptions`

#### client.files.copy(accountId, fileId, \{ ...params }) -> Frameio.FileCopyResponse

复制文件。

速率限制：每个 account\_user 每 1.00 分钟 100 次调用

**`usage`**

```ts usage
await client.files.copy("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    copy_metadata: true,
    copy_comments: "none",
    data: {
        parent_id: "2e426fe0-f965-4594-8b2b-b4dff1dc00ec",
    },
});
```

**参数**

`accountId`: `Frameio.Uuid` —

`fileId`: `Frameio.Uuid` —

`request`: `Frameio.FileCopyParams`

`requestOptions`: `Files.RequestOptions`

#### client.files.createRemoteUpload(accountId, folderId, \{ ...params }) -> Frameio.FileRemoteUploadResponse

通过远程上传在父文件夹下创建新文件。

速率限制：每个 account\_user 每 1 秒钟 5 次调用

**`usage`**

```ts usage
await client.files.createRemoteUpload("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    data: {
        name: "asset.png",
        source_url: "https://upload.wikimedia.org/wikipedia/commons/e/e1/White_Pixel_1x1.png",
    },
});
```

**参数**

`accountId`: `Frameio.Uuid` —

`folderId`: `Frameio.Uuid` —

`request`: `Frameio.FileCreateRemoteUploadParams`

`requestOptions`: `Files.RequestOptions`

#### client.files.move(accountId, fileId, \{ ...params }) -> Frameio.FileResponse

将文件移至文件夹或 version\_stack。

速率限制：每个 account\_user 每 1.00 分钟 100 次调用

**`usage`**

```ts usage
await client.files.move("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    data: {
        parent_id: "2e426fe0-f965-4594-8b2b-b4dff1dc00ec",
    },
});
```

**参数**

`accountId`: `Frameio.Uuid` —

`fileId`: `Frameio.Uuid` —

`request`: `Frameio.FileMoveParams`

`requestOptions`: `Files.RequestOptions`

#### client.files.createLocalUpload(accountId, folderId, \{ ...params }) -> Frameio.FileWithUploadUrlsResponse

通过本地上传在父文件夹下创建新文件。

速率限制：每个 account\_user 每 1 秒钟 5 次调用

**`usage`**

```ts usage
await client.files.createLocalUpload("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    data: {
        file_size: 1137444,
        name: "asset.png",
    },
});
```

**参数**

`accountId`: `Frameio.Uuid` —

`folderId`: `Frameio.Uuid` —

`request`: `Frameio.FileCreateLocalUploadParams`

`requestOptions`: `Files.RequestOptions`

#### client.files.showFileUploadStatus(accountId, fileId) -> Frameio.FileUploadStatusResponse

显示文件上传状态详细信息。

速率限制：每个 account\_user 每 1 秒钟 5 次调用

**`usage`**

```ts usage
await client.files.showFileUploadStatus("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b");
```

**参数**

`accountId`: `Frameio.Uuid` —

`fileId`: `Frameio.Uuid` —

`requestOptions`: `Files.RequestOptions`

#### client.files.importFile(accountId, folderId, \{ ...params }) -> Frameio.FileResponse

从帐户上配置的存储位置导入文件

速率限制：每个 account\_user 每 1 秒钟 5 次调用

**`usage`**

```ts usage
await client.files.importFile("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    data: {
        key: "uploads/08091b0f-a541-42f5-a059-5e8c4afecc12/original.png",
        name: "asset.png",
        storage_location: "123e4567-e89b-12d3-a456-426614174000",
    },
});
```

**参数**

`accountId`: `Frameio.FrameOrAdobeId` —

`folderId`: `Frameio.FrameOrAdobeId` —

`request`: `Frameio.FileImportParams`

`requestOptions`: `Files.RequestOptions`

#### 文件夹权限

#### client.folderPermissions.folderUserRolesIndex(accountId, folderId, \{ ...params }) -> Frameio.UserRolesResponse

列出给定文件夹的用户角色

速率限制：每个 account\_user 每 1.00 分钟 100 次调用

**`usage`**

```ts usage
await client.folderPermissions.folderUserRolesIndex("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    include_deactivated: true,
    after: "<opaque_cursor>",
    page_size: 10,
    include_total_count: false,
});
```

**参数**

`accountId`: `Frameio.Uuid` —

`folderId`: `Frameio.Uuid` —

`request`: `Frameio.FolderUserRolesIndexRequest`

`requestOptions`: `FolderPermissions.RequestOptions`

#### client.folderPermissions.folderUserRolesUpdate(accountId, folderId, userId, \{ ...params }) -> Frameio.UpdateUserRolesResponse

如果用户已添加到文件夹，则更新给定文件夹的用户角色。如果用户未添加到文件夹，则会添加该用户并分配给定角色。

速率限制：每个 account\_user 每 1.00 分钟 10 次调用

**`usage`**

```ts usage
await client.folderPermissions.folderUserRolesUpdate("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    data: {
        role: "editor",
    },
});
```

**参数**

`accountId`: `Frameio.Uuid` —

`folderId`: `Frameio.Uuid` —

`userId`: `Frameio.Uuid` —

`request`: `Frameio.UpdateUserRolesParams`

`requestOptions`: `FolderPermissions.RequestOptions`

#### client.folderPermissions.delete(accountId, folderId, userId) -> void

从指定文件夹中移除用户。

速率限制：每个 account\_user 每 1.00 分钟 60 次调用

**`usage`**

```ts usage
await client.folderPermissions.delete("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b");
```

**参数**

`accountId`: `Frameio.Uuid` —

`folderId`: `Frameio.Uuid` —

`userId`: `Frameio.Uuid` —

`requestOptions`: `FolderPermissions.RequestOptions`

#### 文件夹

#### client.folders.show(accountId, folderId, \{ ...params }) -> Frameio.FolderWithIncludesResponse

显示文件夹详细信息。

速率限制：每个 account\_user 每 1.00 分钟 100 次调用

**`usage`**

```ts usage

await client.folders.show("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    include: "creator",
});

```

**参数**

`accountId`: `Frameio.Uuid` —

`projectId`: `Frameio.Uuid` —

`request`: `Frameio.FoldersShowRequest`

`requestOptions`: `Folders.RequestOptions`

#### client.folders.delete(accountId, folderId) -> void

按 ID 删除文件夹。

速率限制：每个 account\_user 每 1.00 分钟 60 次调用

**`usage`**

```ts usage

await client.folders.delete("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b");
```

**参数**

`accountId`: `Frameio.Uuid` —

`folderId`: `Frameio.Uuid` —

`requestOptions`: `Folders.RequestOptions`

#### client.folders.update(accountId, folderId, \{ ...params }) -> Frameio.FolderResponse

更新文件夹详细信息。

速率限制：每个 account\_user 每 1.00 分钟 10 次调用

**`usage`**

```ts usage

await client.folders.update("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    data: {
        name: "Folder name",
    },
});

```

**参数**

`accountId`: `Frameio.Uuid` —

`folderId`: `Frameio.Uuid` —

`request`: `Frameio.FolderUpdateParams`

`requestOptions`: `Folders.RequestOptions`

#### client.folders.index(accountId, folderId, \{ ...params }) -> Frameio.AssetsWithIncludesResponse

列出给定文件夹中的次项。

使用 include 查询参数选择性地在响应中包含其他属性。

> **Note**
>
> 如果您包含 `media_links.original` 且用户无权下载相应项目中的文件，则此端点将响应 `403 Forbidden` 错误。如果由于该用户需要水印而请求的 media\_links 不支持水印，导致内容无法访问，则请求将成功，但不支持的媒体链接将被设置为 null。 同样，如果请求的转码链接对于特定文件不存在（例如，在静态图像文件中包含 `media_links.video_h264_180`）或者转码过程尚未完成（即文件的状态为“已上传”而不是“已转码”），则响应负载中的媒体链接也将被设置为 null。 简而言之，客户端必须妥善处理 null 媒体链接。

速率限制：每个 account\_user 每 1.00 分钟 100 次调用

**`usage`**

```ts usage

await client.folders.index("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    include: "media_links",
    type: "file,folder,version_stack",
    after: "<opaque_cursor>",
    page_size: 10,
    include_total_count: false,
});

```

**参数**

`accountId`: `Frameio.Uuid` —

`folderId`: `Frameio.Uuid` —

`request`: `Frameio.FolderIndexRequest`

`requestOptions`: `Folders.RequestOptions`

#### client.folders.copy(accountId, folderId, \{ ...params }) -> Frameio.FolderCopyResponse

复制文件夹。

速率限制：每个 account\_user 每 1.00 分钟 10 次调用

**`usage`**

```ts usage

await client.folders.copy("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    copy_metadata: true,
    data: {
        parent_id: "2e426fe0-f965-4594-8b2b-b4dff1dc00ec",
    },
});

```

**参数**

`accountId`: `Frameio.Uuid` —

`folderId`: `Frameio.Uuid` —

`request`: `Frameio.FolderCopyParams`

`requestOptions`: `Folders.RequestOptions`

#### client.folders.list(accountId, folderId, \{ ...params }) -> Frameio.FoldersWithIncludesResponse

列出给定文件夹中的文件夹。

速率限制：每个 account\_user 每 1 秒钟 5 次调用

**`usage`**

```ts usage

await client.folders.list("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    include: "creator",
    after: "<opaque_cursor>",
    page_size: 10,
    include_total_count: false,
});

```

**参数**

`accountId`: `Frameio.Uuid` —

`folderId`: `Frameio.Uuid` —

`request`: `Frameio.FoldersListRequest`

`requestOptions`: `Folders.RequestOptions`

#### client.folders.create(accountId, folderId, \{ ...params }) -> Frameio.FolderResponse

在指定的 `folder_id` 路径参数内创建新文件夹

速率限制：每个 account\_user 每 1 秒钟 3 次调用

**`usage`**

```ts usage

await client.folders.create("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    data: {
        name: "Folder name",
    },
});

```

**参数**

`accountId`: `Frameio.Uuid` —

`folderId`: `Frameio.Uuid` —

`request`: `Frameio.FolderCreateParams`

`requestOptions`: `Folders.RequestOptions`

#### client.folders.move(accountId, folderId, \{ ...params }) -> Frameio.FolderResponse

将文件夹移动到另一个文件夹。

速率限制：每个 account\_user 每 1.00 分钟 10 次调用

**`usage`**

```ts usage

await client.folders.move("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    data: {
        parent_id: "2e426fe0-f965-4594-8b2b-b4dff1dc00ec",
    },
});

```

**参数**

`accountId`: `Frameio.Uuid` —

`folderId`: `Frameio.Uuid` —

`request`: `Frameio.FolderMoveParams`

`requestOptions`: `Folders.RequestOptions`

#### 组

#### client.groups.index(accountId, \{ ...params }) -> Frameio.GroupsWithIncludesResponse

列出帐户中的组

速率限制：每个 account\_user 每 1.00 分钟 100 次调用

**`usage`**

```ts usage
await client.groups.index("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    include: "creator",
    sort: "creator_asc",
    after: "<opaque_cursor>",
    page_size: 10,
    include_total_count: false,
});
```

**参数**

`accountId`: `Frameio.FrameOrAdobeId` —

`request`: `Frameio.GroupsIndexRequest`

`requestOptions`: `Groups.RequestOptions`

#### client.groups.show(accountId, groupId, \{ ...params }) -> Frameio.GroupWithIncludesResponse

显示组详细信息

速率限制：每个 account\_user 每 1.00 分钟 100 次调用

**`usage`**

```ts usage
await client.groups.show("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    include: "creator",
});
```

**参数**

`accountId`: `Frameio.FrameOrAdobeId` —

`groupId`: `Frameio.Uuid` —

`request`: `Frameio.GroupsShowRequest`

`requestOptions`: `Groups.RequestOptions`

#### client.groups.create(accountId, \{ ...params }) -> Frameio.GroupResponse

为当前帐户创建组

速率限制：每个 account\_user 每 1.00 分钟 10 次调用

**`usage`**

```ts usage
await client.groups.create("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    data: {
        emoji: "smile",
        name: "group-1",
    },
});
```

**参数**

`accountId`: `Frameio.FrameOrAdobeId` —

`request`: `Frameio.CreateGroupParams`

`requestOptions`: `Groups.RequestOptions`

#### client.groups.update(accountId, groupId, \{ ...params }) -> Frameio.GroupResponse

更新组详细信息

速率限制：每个 account\_user 每 1.00 分钟 10 次调用

**`usage`**

```ts usage
await client.groups.update("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    data: {
        emoji: "smile",
        name: "group-1",
    },
});
```

**参数**

`accountId`: `Frameio.FrameOrAdobeId` —

`groupId`: `Frameio.Uuid` —

`request`: `Frameio.UpdateGroupParams`

`requestOptions`: `Groups.RequestOptions`

#### 元数据

#### client.metadata.bulkUpdate(accountId, projectId, \{ ...params }) -> void

更新多个文件中的元数据值。

速率限制：每个 account\_user 每 1.00 分钟 10 次调用

**`usage`**

```ts usage
await client.metadata.bulkUpdate("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    data: {
        file_ids: ["09b31c2a-04de-464a-a593-643a36ef0d98", "b967fc36-4e18-4b48-a3ab-c790100e2baa"],
        values: [
            {
                field_definition_id: "ff41ce50-269b-4624-8306-aac10e28ab94",
                value: [
                    {
                        id: "e60f47b4-cf8e-4273-96d5-3258a830a0aa",
                        type: "user",
                    },
                    {
                        id: "24eeaf7e-ce27-4555-bc77-cce39900626d",
                        type: "account_user_group",
                    },
                ],
            },
        ],
    },
});
```

**参数**

`accountId`: `Frameio.Uuid` —

`projectId`: `Frameio.Uuid` —

`request`: `Frameio.BulkUpdateMetadataParams`

`requestOptions`: `Metadata.RequestOptions`

#### client.metadata.show(accountId, fileId, \{ ...params }) -> Frameio.MetadataResponse

显示文件的元数据。

速率限制：每个 account\_user 每 1.00 分钟 100 次调用

**`usage`**

```ts usage
await client.metadata.show("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    show_null: true,
});
```

**参数**

`accountId`: `Frameio.Uuid` —

`fileId`: `Frameio.Uuid` —

`request`: `Frameio.MetadataShowRequest`

`requestOptions`: `Metadata.RequestOptions`

#### 元数据字段

#### client.metadataFields.metadataFieldDefinitionsDelete(accountId, fieldDefinitionId) -> void

删除帐户级自定义字段定义。

速率限制：每个 account\_user 每 1.00 分钟 60 次调用

**`usage`**

```ts usage

await client.metadataFields.metadataFieldDefinitionsDelete(
    "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
);

```

**参数**

`accountId`: `Frameio.Uuid` —

`fieldDefinitionId`: `Frameio.Uuid` —

`requestOptions`: `MetadataFields.RequestOptions`

#### client.metadataFields.metadataFieldDefinitionsUpdate(accountId, fieldDefinitionId, \{ ...params }) -> Frameio.FieldDefinitionResponse

更新帐户级自定义字段定义。

速率限制：每个 account\_user 每 1.00 分钟 10 次调用

**`usage`**

```ts usage

await client.metadataFields.metadataFieldDefinitionsUpdate(
    "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    {
        data: {
            field_type: "select",
            field_configuration: {
                enable_add_new: false,
                options: [
                    {
                        display_name: "Option 1",
                    },
                    {
                        display_name: "Option 2",
                    },
                ],
            },
            name: "Updated-Field-Name",
        },
    },
);
```

**参数**

`accountId`: `Frameio.Uuid` —

`fieldDefinitionId`: `Frameio.Uuid` —

`request`: `Frameio.UpdateFieldDefinitionParams`

`requestOptions`: `MetadataFields.RequestOptions`

#### client.metadataFields.metadataFieldDefinitionsIndex(accountId, \{ ...params }) -> Frameio.FieldDefinitionsWithIncludesResponse

列出帐户级字段定义。

速率限制：每个 account\_user 每 1.00 分钟 100 次调用

**`usage`**

```ts usage

await client.metadataFields.metadataFieldDefinitionsIndex("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    include: "creator",
    after: "<opaque_cursor>",
    page_size: 10,
    include_total_count: false,
});

```

**参数**

`accountId`: `Frameio.Uuid` —

`request`: `Frameio.MetadataFieldDefinitionsIndexRequest`

`requestOptions`: `MetadataFields.RequestOptions`

#### client.metadataFields.metadataFieldDefinitionsCreate(accountId, \{ ...params }) -> Frameio.FieldDefinitionResponse

创建帐户级字段定义。

速率限制：每个 account\_user 每 1.00 分钟 10 次调用

**`usage`**

```ts usage

await client.metadataFields.metadataFieldDefinitionsCreate("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    data: {
        field_type: "select",
        field_configuration: {
            enable_add_new: false,
            options: [
                {
                    display_name: "Option 1",
                },
                {
                    display_name: "Option 2",
                },
            ],
        },
        name: "Fields definition name",
    },
});

```

**参数**

`accountId`: `Frameio.Uuid` —

`request`: `Frameio.CreateFieldDefinitionParams`

`requestOptions`: `MetadataFields.RequestOptions`

#### 项目权限

#### client.projectPermissions.index(accountId, projectId, \{ ...params }) -> core.Page\<Frameio.UserRole

列出给定项目的用户角色。

速率限制：每个 account\_user 每 1.00 分钟 100 次调用

**`usage`**

```ts usage

const response = await client.projectPermissions.index(
    "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    {
        include_deactivated: true,
        after: "<opaque_cursor>",
        page_size: 10,
        include_total_count: false,
    },
);
for await (const item of response) {
    console.log(item);
}

// Or you can manually iterate page-by-page
let page = await client.projectPermissions.index(
    "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    {
        include_deactivated: true,
        after: "<opaque_cursor>",
        page_size: 10,
        include_total_count: false,
    },
);
while (page.hasNextPage()) {
    page = page.getNextPage();
}

```

**参数**

`accountId`: `Frameio.Uuid` —

`projectId`: `Frameio.Uuid` —

`request`: `Frameio.ProjectPermissionsIndexRequest`

`requestOptions`: `ProjectPermissions.RequestOptions`

#### client.projectPermissions.delete(accountId, projectId, userId) -> void

从给定项目中移除用户。

速率限制：每个 account\_user 每 1.00 分钟 60 次调用

**`usage`**

```ts usage

await client.projectPermissions.delete(
    "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
);
```

**参数**

`accountId`: `Frameio.Uuid` —

`projectId`: `Frameio.Uuid` —

`userId`: `Frameio.Uuid` —

`requestOptions`: `ProjectPermissions.RequestOptions`

#### client.projectPermissions.projectUserRolesUpdate(accountId, projectId, userId, \{ ...params }) -> Frameio.UpdateUserRolesResponse

如果用户已添加到给定项目，则更新该项目的用户角色。 如果用户未添加到项目，则会添加该用户并分配给定角色。

速率限制：每个 account\_user 每 1.00 分钟 10 次调用

**`usage`**

```ts usage

await client.projectPermissions.projectUserRolesUpdate(
    "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    {
        data: {
            role: "editor",
        },
    },
);

```

**参数**

`accountId`: `Frameio.Uuid` —

`projectId`: `Frameio.Uuid` —

`UserId`: `Frameio.Uuid` —

`request`: `Frameio.UpdateUserRolesParams`

`requestOptions`: `ProjectPermissions.RequestOptions`

#### 项目

#### client.projects.show(accountId, projectId, \{ ...params }) -> Frameio.ProjectWithIncludesResponse

显示项目详细信息。

速率限制：每个 account\_user 每 1.00 分钟 100 次调用

**`usage`**

```ts usage

await client.projects.show("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    include: "owner",
});

```

**参数**

`accountId`: `Frameio.Uuid` —

`projectId`: `Frameio.Uuid` —

`request`: `Frameio.ProjectsShowRequest`

`requestOptions`: `Projects.RequestOptions`

#### client.projects.delete(accountId, projectId) -> void

删除项目。

速率限制：每个 account\_user 每 1.00 分钟 60 次调用

**`usage`**

```ts usage

await client.projects.delete("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b");
```

**参数**

`accountId`: `Frameio.Uuid` —

`projectId`: `Frameio.Uuid` —

`requestOptions`: `Projects.RequestOptions`

#### client.projects.update(accountId, projectId, \{ ...params }) -> Frameio.ProjectResponse

更新项目详细信息。

速率限制：每个 account\_user 每 1.00 分钟 10 次调用

**`usage`**

```ts usage

await client.projects.update("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    data: {
        name: "Project Name",
        restricted: true,
        status: "active",
    },
});

```

**参数**

`accountId`: `Frameio.Uuid` —

`projectId`: `Frameio.Uuid` —

`request`: `Frameio.ProjectUpdateParams`

`requestOptions`: `Projects.RequestOptions`

#### client.projects.index(accountId, workspaceId, \{ ...params }) -> core.Page\<Frameio.ProjectWithIncludes>

列出给定工作区中的项目。

速率限制：每个 account\_user 每 1.00 分钟 100 次调用

**`usage`**

```ts usage

const response = await client.projects.index(
    "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    {
        include: "owner",
        after: "<opaque_cursor>",
        page_size: 10,
        include_total_count: false,
    },
);
for await (const item of response) {
    console.log(item);
}

// Or you can manually iterate page-by-page
let page = await client.projects.index("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    include: "owner",
    after: "<opaque_cursor>",
    page_size: 10,
    include_total_count: false,
});
while (page.hasNextPage()) {
    page = page.getNextPage();
}

```

**参数**

`accountId`: `Frameio.Uuid` —

`workspaceId`: `Frameio.Uuid` —

`request`: `Frameio.ProjectsIndexRequest`

`requestOptions`: `Projects.RequestOptions`

#### client.projects.create(accountId, workspaceId, \{ ...params }) -> Frameio.ProjectResponse

在给定工作区中创建项目。

速率限制：每个 account\_user 每 1.00 分钟 10 次调用

**`usage`**

```ts usage

await client.projects.create("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    data: {
        name: "Project Name",
        restricted: true,
    },
});

```

**参数**

`accountId`: `Frameio.Uuid` —

`workspaceId`: `Frameio.Uuid` —

`request`: `Frameio.ProjectsParams`

`requestOptions`: `Projects.RequestOptions`

#### client.projects.accountProjectsIndex(accountId, \{ ...params }) -> Frameio.ProjectsWithIncludesResponse

列出已验证用户在指定帐户内具有访问权限的所有项目.

速率限制：每个 account\_user 每 1.00 分钟 100 次调用

**`usage`**

```ts usage
await client.projects.accountProjectsIndex("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    include: "owner",
    sort: "name_asc",
    after: "<opaque_cursor>",
    page_size: 10,
    include_total_count: false,
});
```

**参数**

`accountId`: `Frameio.FrameOrAdobeId` —

`request`: `Frameio.AccountProjectsIndexRequest`

`requestOptions`: `Projects.RequestOptions`

#### client.projects.invitedProjectsIndex(accountId, \{ ...params }) -> Frameio.ProjectsWithIncludesResponse

列出当前用户在指定帐户内受邀参与但没有工作区级别访问权限的项目。这些是用户拥有项目专属的协作者访问权限，但不具备更广泛的团队/工作区权限的项目。

速率限制：每个 account\_user 每 1.00 分钟 100 次调用

**`usage`**

```ts usage
await client.projects.invitedProjectsIndex("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    include: "owner",
    sort: "name_asc",
    after: "<opaque_cursor>",
    page_size: 10,
    include_total_count: false,
});
```

**参数**

`accountId`: `Frameio.FrameOrAdobeId` —

`request`: `Frameio.InvitedProjectsIndexRequest`

`requestOptions`: `Projects.RequestOptions`

#### 搜索

#### client.search.search(accountId, \{ ...params }) -> Frameio.SearchResponse

搜索帐户内的资产、文件夹和项目

速率限制：每个 account\_user 每 1.00 分钟 100 次调用

**`usage`**

```ts usage
await client.search.search("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    engine: "nlp",
    query: "red car driving on highway",
    filters: {
        files_and_version_stacks: true,
        folders: false,
        projects: false,
    },
    after: "<opaque_cursor>",
    page_size: 10,
    include_total_count: false,
});
```

**参数**

`accountId`: `Frameio.Uuid` —

`request`: `Frameio.SearchParams`

`requestOptions`: `Search.RequestOptions`

#### 共享

#### client.shares.show(accountId, shareId) -> Frameio.ShareResponse

显示单个共享项。

速率限制：每个 account\_user 每 1.00 分钟 100 次调用

**`usage`**

```ts usage
await client.shares.show("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b");

```

**参数**

`accountId`: `Frameio.Uuid` —

`shareId`: `Frameio.Uuid` —

`requestOptions`: `Shares.RequestOptions`

#### client.shares.delete(accountId, shareId) -> void

删除共享项。

速率限制：每个 account\_user 每 1.00 分钟 60 次调用

**`usage`**

```ts usage
await client.shares.delete("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b");
```

**参数**

`accountId`: `Frameio.Uuid` —

`shareId`: `Frameio.Uuid` —

`requestOptions`: `Shares.RequestOptions`

#### client.shares.update(accountId, shareId, \{ ...params }) -> Frameio.ShareResponse

更新共享项。

速率限制：每个 account\_user 每 1.00 分钟 10 次调用

**`usage`**

```ts usage
await client.shares.update("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    data: {
        access: "public",
        description: "A descriptive summary of the share",
        downloading_enabled: true,
        expiration: "2026-01-22T17:04:53Z",
        name: "Share Name",
        passphrase: "as!dfj39sd(*",
    },
});
```

**参数**

`accountId`: `Frameio.Uuid` —

`shareId`: `Frameio.Uuid` —

`request`: `Frameio.UpdateShareParams`

`requestOptions`: `Shares.RequestOptions`

#### client.shares.listReviewers(accountId, shareId, \{ ...params }) -> core.Page\<Frameio.User>

列出共享审阅者。

速率限制：每个 account\_user 每 1.00 分钟 10 次调用

**`usage`**

```ts usage
const response = await client.shares.listReviewers(
    "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    {
        after: "<opaque_cursor>",
        page_size: 10,
        include_total_count: false,
    },
);
for await (const item of response) {
    console.log(item);
}

// Or you can manually iterate page-by-page
let page = await client.shares.listReviewers(
    "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    {
        after: "<opaque_cursor>",
        page_size: 10,
        include_total_count: false,
    },
);
while (page.hasNextPage()) {
    page = page.getNextPage();
}
```

**参数**

`accountId`: `Frameio.Uuid` —

`shareId`: `Frameio.Uuid` —

`request`: `Frameio.SharesListReviewersRequestreParams`

`requestOptions`: `Shares.RequestOptions`

#### client.shares.addReviewers(accountId, shareId, \{ ...params }) -> void

通过三种标识符类型为安全共享添加审阅者：`adobe_user_id`、`email` 和 `user_id`。

一个请求只能包含一种标识符类型的参数。

对于在共享项所属帐户下没有 Frame 帐户成员身份的用户，`email` 是将其添加为审阅者的唯一标识符。

速率限制：每个 account\_user 每 1.00 分钟 10 次调用

**`usage`**

```ts usage
await client.shares.addReviewers("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    data: {
        message: "Please join my share!",
        reviewers: {
            emails: ["email1@domain.com", "email2@domain.com"],
        },
    },
});
```

**参数**

`accountId`: `Frameio.Uuid` —

`shareId`: `Frameio.Uuid` —

`request`: `Frameio.AddReviewersToShareParams`

`requestOptions`: `Shares.RequestOptions`

#### client.shares.removeReviewers(accountId, shareId, \{ ...params }) -> void

通过三种标识符类型从安全共享中移除审阅者：`adobe_user_id`、`email` 和 `user_id`。

一个请求只能包含一种标识符类型的参数。

速率限制：每个 account\_user 每 1.00 分钟 10 次调用

**`usage`**

```ts usage
await client.shares.removeReviewers("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    data: {
        reviewers: {
            adobe_user_ids: ["2A3C1A3D66C621B20A494021@176719f5667c82b4499999.e"],
        },
    },
});
```

**参数**

`accountId`: `Frameio.Uuid` —

`shareId`: `Frameio.Uuid` —

`request`: `Frameio.RemoveReviewerParams`

`requestOptions`: `Shares.RequestOptions`

#### client.shares.removeAsset(accountId, shareId, assetId) -> Frameio.RemoveAssetResponse

从该共享项中移除当前在共享项中的资产。

速率限制：每个 account\_user 每 1.00 分钟 10 次调用

**`usage`**

```ts usage
await client.shares.removeAsset(
    "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
);
```

**参数**

`accountId`: `Frameio.Uuid` —

`shareId`: `Frameio.Uuid` —

`assetId`: `Frameio.Uuid` —

`requestOptions`: `Shares.RequestOptions`

#### client.shares.addAsset(accountId, shareId, \{ ...params }) -> Frameio.AddAssetResponse

添加新的资产共享。

速率限制：每个 account\_user 每 1.00 分钟 10 次调用

**`usage`**

```ts usage
await client.shares.addAsset("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    data: {
        asset_id: "0cc1cb59-1d7c-4176-8532-afe099897318",
    },
});
```

**参数**

`accountId`: `Frameio.Uuid` —

`shareId`: `Frameio.Uuid` —

`request`: `Frameio.AddAssetParams`

`requestOptions`: `Shares.RequestOptions`

#### client.shares.index(accountId, projectId, \{ ...params }) -> core.Page\<Frameio.Share>

列出项目上的共享项。

速率限制：每个 account\_user 每 1.00 分钟 100 次调用

**`usage`**

```ts usage
const response = await client.shares.index(
    "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    {
        after: "<opaque_cursor>",
        page_size: 10,
        include_total_count: false,
    },
);
for await (const item of response) {
    console.log(item);
}

// Or you can manually iterate page-by-page
let page = await client.shares.index("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    after: "<opaque_cursor>",
    page_size: 10,
    include_total_count: false,
});
while (page.hasNextPage()) {
    page = page.getNextPage();
}
```

**参数**

`accountId`: `Frameio.Uuid` —

`shareId`: `Frameio.Uuid` —

`request`: `Frameio.SharesIndexRequest`

`requestOptions`: `Shares.RequestOptions`

#### client.shares.create(accountId, projectId, \{ ...params }) -> Frameio.ShareResponse

创建共享项。

速率限制：每个 account\_user 每 1.00 分钟 10 次调用

**`usage`**

```ts usage
await client.shares.create("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    data: {
        type: "asset",
        access: "public",
        asset_ids: ["12eb1446-5736-4f93-85fc-3b636f156211", "f23a3b3e-7b1f-4655-b91a-acf0566e5bb9"],
        downloading_enabled: true,
        expiration: "2026-01-22T17:04:53Z",
        name: "Share Name",
        passphrase: "as!dfj39sd(*",
    },
});
```

**参数**

`accountId`: `Frameio.Uuid` —

`projectId`: `Frameio.Uuid` —

`request`: `Frameio.CreateShareParams`

`requestOptions`: `Shares.RequestOptions`

#### 用户

#### client.users.show() -> Frameio.ProfileResponse

检查与持有者令牌关联的用户详细信息。

速率限制：每个 account\_user 每 1.00 分钟 100 次调用

**`usage`**

```ts usage
await client.users.show();
```

**参数**

`requestOptions`: `Users.RequestOptions`

#### 版本堆栈

#### client.versionStacks.index(accountId, versionStackId, \{ ...params }) -> Frameio.AssetsWithIncludesResponse

列出给定版本堆栈中的次项（文件）。

使用 include 查询参数选择性地在响应中包含其他属性。

> **Note**
>
> `如果您包含 `media\_links.original`且用户无权下载相应项目中的文件，则此端点将响应`403 Forbidden`错误。 如果由于该用户需要水印而请求的 media_links 不支持水印，导致内容无法访问，则请求将成功，但不支持的媒体链接将被设置为 null。 同样，如果请求的转码链接对于特定文件不存在（例如，在静态图像文件中包含`media\_links.video\_h264\_180`）或者转码过程尚未完成（即文件的状态为“已上传”而不是“已转码”），则响应负载中的媒体链接也将被设置为 null。 简而言之，客户端必须妥善处理 null 媒体链接。`

速率限制：每个 account\_user 每 1.00 分钟 100 次调用

**`usage`**

```ts usage

await client.versionStacks.index("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    include: "media_links",
    after: "<opaque_cursor>",
    page_size: 10,
    include_total_count: false,
});

```

**参数**

`accountId`: `Frameio.Uuid` —

`projectId`: `Frameio.Uuid` —

`request`: `Frameio.VersionStacksIndexRequest`

`requestOptions`: `VersionStacks.RequestOptions`

#### client.versionStacks.show(accountId, versionStackId, \{ ...params }) -> Frameio.VersionStackWithIncludesResponse

显示版本堆栈详细信息。

速率限制：每个 account\_user 每 1.00 分钟 100 次调用

**`usage`**

```ts usage

await client.versionStacks.show("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    include: "media_links",
});
```

**参数**

`accountId`: `Frameio.Uuid` —

`versionStackId`: `Frameio.Uuid` —

`request`: `Frameio.VersionStacksShowRequest`

`requestOptions`: `VersionStacks.RequestOptions`

#### client.versionStacks.copy(accountId, versionStackId, \{ ...params }) -> Frameio.VersionStackCopyResponse

复制版本堆栈。

速率限制：每个 account\_user 每 1.00 分钟 10 次调用

**`usage`**

```ts usage

await client.versionStacks.copy("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    copy_metadata: true,
    data: {
        parent_id: "2e426fe0-f965-4594-8b2b-b4dff1dc00ec",
    },
});
```

**参数**

`accountId`: `Frameio.Uuid` —

`versionStackId`: `Frameio.Uuid` —

`request`: `Frameio.VersionStackCopyParams`

`requestOptions`: `VersionStacks.RequestOptions`

#### client.versionStacks.list(accountId, folderId, \{ ...params }) -> Frameio.VersionStacksWithIncludesResponse

列出给定文件夹中的版本堆栈。

速率限制：每个 account\_user 每 1 秒钟 5 次调用

**`usage`**

```ts usage

await client.versionStacks.list("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    include: "media_links",
    after: "<opaque_cursor>",
    page_size: 10,
    include_total_count: false,
});
```

**参数**

`accountId`: `Frameio.Uuid` —

`folderId`: `Frameio.Uuid` —

`request`: `Frameio.VersionStacksListRequest`

`requestOptions`: `VersionStacks.RequestOptions`

#### client.versionStacks.create(accountId, folderId, \{ ...params }) -> Frameio.VersionStackWithIncludesResponse

在父文件夹下创建新的版本堆栈。

速率限制：每个 account\_user 每 1.00 分钟 10 次调用

**`usage`**

```ts usage

await client.versionStacks.create("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    data: {
        file_ids: ["dd2a3cdd-fc90-41bd-a7b8-8a0447aec6d4", "79fed48a-8372-496e-8dcb-5e959b9b9fcf"],
    },
});
```

**参数**

`accountId`: `Frameio.Uuid` —

`folderId`: `Frameio.Uuid` —

`request`: `Frameio.VersionStackCreateParams`

`requestOptions`: `VersionStacks.RequestOptions`

#### client.versionStacks.move(accountId, versionStackId, \{ ...params }) -> Frameio.VersionStackResponse

将版本堆栈移动到另一个文件夹。

速率限制：每个 account\_user 每 1.00 分钟 10 次调用

**`usage`**

```ts usage

await client.versionStacks.move("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    data: {
        parent_id: "2e426fe0-f965-4594-8b2b-b4dff1dc00ec",
    },
});
```

**参数**

`accountId`: `Frameio.Uuid` —

`folderId`: `Frameio.Uuid` —

`request`: `Frameio.VersionStackMoveParams`

`requestOptions`: `VersionStacks.RequestOptions`

#### Webhook

#### client.webhooks.index(accountId, workspaceId, \{ ...params }) -> core.Page\<Frameio.WebhookWithIncludes>

列出给定工作区的 Webhook。

速率限制：每个 account\_user 每 1.00 分钟 100 次调用

**`usage`**

```ts usage
const response = await client.webhooks.index(
    "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    {
        include: "creator",
        after: "<opaque_cursor>",
        page_size: 10,
        include_total_count: false,
    },
);
for await (const item of response) {
    console.log(item);
}

// Or you can manually iterate page-by-page
let page = await client.webhooks.index("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    include: "creator",
    after: "<opaque_cursor>",
    page_size: 10,
    include_total_count: false,
});
while (page.hasNextPage()) {
    page = page.getNextPage();
}

```

**参数**

`accountId`: `Frameio.Uuid` —

`workspaceId`: `Frameio.Uuid` —

`request`: `Frameio.WebhooksIndexRequest`

`requestOptions`: `Webhooks.RequestOptions`

#### client.webhooks.create(accountId, workspaceId, \{ ...params }) -> Frameio.WebhookCreateResponse

创建包含密钥的单个 Webhook。

有效事件：

`file.created`, `file.deleted`, `file.ready`, `file.updated`, `file.upload.completed`, `file.versioned`, `file.copied`, `folder.created`, `folder.deleted`, `folder.updated`, `folder.copied`, `comment.completed`, `comment.created`, `comment.deleted`, `comment.uncompleted`, `comment.updated`, `customfield.created`, `customfield.updated`, `customfield.deleted`, `metadata.value.updated`, `project.created`, `project.deleted`, `project.updated`, `collection.created`, `collection.updated`, `collection.deleted`, `share.created`, `share.updated`, `share.deleted`, `share.viewed`

速率限制：每个帐户 每 1.00 分钟 10 次调用

**`usage`**

```ts usage
await client.webhooks.create("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    data: {
        events: [
            "file.created",
            "file.deleted",
            "file.ready",
            "file.updated",
            "file.upload.completed",
            "file.versioned",
            "file.copied",
            "folder.created",
            "folder.deleted",
            "folder.updated",
            "folder.copied",
            "comment.completed",
            "comment.created",
            "comment.deleted",
            "comment.uncompleted",
            "comment.updated",
            "customfield.created",
            "customfield.updated",
            "customfield.deleted",
            "metadata.value.updated",
            "project.created",
            "project.deleted",
            "project.updated",
            "collection.created",
            "collection.updated",
            "collection.deleted",
            "share.created",
            "share.updated",
            "share.deleted",
            "share.viewed",
        ],
        name: "New Webhook",
        url: "https://url.example.com",
    },
});

```

**参数**

`accountId`: `Frameio.Uuid` —

`workspaceId`: `Frameio.Uuid` —

`request`: `Frameio.WebhookCreateParams`

`requestOptions`: `Webhooks.RequestOptions`

#### client.webhooks.show(accountId, webhookId, \{ ...params }) -> Frameio.WebhookWithIncludesResponse

显示 Webhook 详细信息。

速率限制：每个 account\_user 每 1.00 分钟 100 次调用

**`usage`**

```ts usage
await client.webhooks.show("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    include: "creator",
});

```

**参数**

`accountId`: `Frameio.Uuid` —

`webhookId`: `Frameio.Uuid` —

`request`: `Frameio.WebhooksShowRequest`

`requestOptions`: `Webhooks.RequestOptions`

#### client.webhooks.delete(accountId, webhookId) -> void

删除 Webhook。

速率限制：每个 account\_user 每 1.00 分钟 60 次调用

**`usage`**

```ts usage
await client.webhooks.delete("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b");

```

**参数**

`accountId`: `Frameio.Uuid` —

`webhookId`: `Frameio.Uuid` —

`requestOptions`: `Webhooks.RequestOptions`

#### client.webhooks.update(accountId, webhookId, \{ ...params }) -> Frameio.WebhookResponse

更新 Webhook 详细信息。

速率限制：每个 account\_user 每 1.00 分钟 10 次调用

**`usage`**

```ts usage
await client.webhooks.update("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    data: {
        active: true,
        events: [
            "file.created",
            "file.deleted",
            "file.ready",
            "file.updated",
            "file.upload.completed",
            "file.versioned",
            "file.copied",
            "folder.created",
            "folder.deleted",
            "folder.updated",
            "folder.copied",
            "comment.completed",
            "comment.created",
            "comment.deleted",
            "comment.uncompleted",
            "comment.updated",
            "customfield.created",
            "customfield.updated",
            "customfield.deleted",
            "metadata.value.updated",
            "project.created",
            "project.deleted",
            "project.updated",
            "collection.created",
            "collection.updated",
            "collection.deleted",
            "share.created",
            "share.updated",
            "share.deleted",
            "share.viewed",
        ],
        name: "Updated Webhook",
        url: "https://url.example.com",
    },
});

```

**参数**

`accountId`: `Frameio.Uuid` —

webhookId`: `Frameio.Uuid`—`

`request`: `Frameio.WebhookUpdateParams`

`requestOptions`: `Webhooks.RequestOptions`

#### 工作区权限

#### client.workspacePermissions.index(accountId, workspaceId, \{ ...params }) -> core.Page\<Frameio.UserRole>

列出给定工作区的用户角色。

速率限制：每个 account\_user 每 1.00 分钟 100 次调用

**`usage`**

```ts usage
const response = await client.workspacePermissions.index(
    "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    {
        include_deactivated: true,
        after: "<opaque_cursor>",
        page_size: 10,
        include_total_count: false,
    },
);
for await (const item of response) {
    console.log(item);
}

// Or you can manually iterate page-by-page
let page = await client.workspacePermissions.index(
    "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    {
        include_deactivated: true,
        after: "<opaque_cursor>",
        page_size: 10,
        include_total_count: false,
    },
);
while (page.hasNextPage()) {
    page = page.getNextPage();
}

```

**参数**

`accountId`: `Frameio.Uuid` —

`workspaceId`: `Frameio.Uuid` —

`request`: `Frameio.WorkspacePermissionsIndexRequest`

`requestOptions`: `WorkspacePermissions.RequestOptions`

#### client.workspacePermissions.workspaceUserRolesDelete(accountId, workspaceId, userId) -> void

从给定工作区中移除用户。

速率限制：每个 account\_user 每 1.00 分钟 60 次调用

**`usage`**

```ts usage
await client.workspacePermissions.workspaceUserRolesDelete(
    "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
);

```

**参数**

`accountId`: `Frameio.Uuid` —

`workspaceId`: `Frameio.Uuid` —

`userId`: `Frameio.Uuid` —

`requestOptions`: `WorkspacePermissions.RequestOptions`

#### client.workspacePermissions.workspaceUserRolesUpdate(accountId, workspaceId, userId, \{ ...params }) -> Frameio.UpdateUserRolesResponse

如果用户已添加到工作区，则更新给定工作区的用户角色。 如果用户未添加到工作区，则会添加该用户并分配给定角色。

速率限制：每个 account\_user 每 1.00 分钟 10 次调用

**`usage`**

```ts usage
await client.workspacePermissions.workspaceUserRolesUpdate(
    "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    {
        data: {
            role: "editor",
        },
    },
);

```

**参数**

`accountId`: `Frameio.Uuid` —

`workspaceId`: `Frameio.Uuid` —

`userId`: `Frameio.Uuid` —

`request`: `Frameio.UpdateUserRolesParams`

`requestOptions`: `WorkspacePermissions.RequestOptions`

#### 工作区

#### client.workspaces.show(accountId, workspaceId, \{ ...params }) -> Frameio.WorkspaceWithIncludesResponse

显示工作区详细信息。

速率限制：每个 account\_user 每 1.00 分钟 100 次调用

**`usage`**

```ts usage
await client.workspaces.show("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    include: "creator",
});

```

**参数**

`accountId`: `Frameio.Uuid` —

`workspaceId`: `Frameio.Uuid` —

`request`: `Frameio.WorkspacesShowRequest`

`requestOptions`: `Workspaces.RequestOptions`

#### client.workspaces.delete(accountId, workspaceId) -> void

从帐户中删除工作区。

速率限制：每个 account\_user 每 1.00 分钟 60 次调用

**`usage`**

```ts usage
await client.workspaces.delete("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b");

```

**参数**

`accountId`: `Frameio.Uuid` —

`workspaceId`: `Frameio.Uuid` —

`requestOptions`: `Workspaces.RequestOptions`

#### client.workspaces.update(accountId, workspaceId, \{ ...params }) -> Frameio.WorkspaceResponse

更新工作区。

速率限制：每个 account\_user 每 1.00 分钟 10 次调用

**`usage`**

```ts usage
await client.workspaces.update("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    data: {
        name: "My Workspace",
    },
});

```

**参数**

`accountId`: `Frameio.Uuid` —

`workspaceId`: `Frameio.Uuid` —

`request`: `Frameio.WorkspaceParams`

`requestOptions`: `Workspaces.RequestOptions`

#### client.workspaces.index(accountId, \{ ...params }) -> core.Page\<Frameio.WorkspaceWithIncludes>

列出给定帐户的工作区。

速率限制：每个 account\_user 每 1.00 分钟 100 次调用

**`usage`**

```ts usage
const response = await client.workspaces.index("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    include: "creator",
    after: "<opaque_cursor>",
    page_size: 10,
    include_total_count: false,
});
for await (const item of response) {
    console.log(item);
}

// Or you can manually iterate page-by-page
let page = await client.workspaces.index("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    include: "creator",
    after: "<opaque_cursor>",
    page_size: 10,
    include_total_count: false,
});
while (page.hasNextPage()) {
    page = page.getNextPage();
}

```

**参数**

`accountId`: `Frameio.Uuid` —

`request`: `Frameio.WorkspacesIndexRequest`

`requestOptions`: `Workspaces.RequestOptions`

#### client.workspaces.create(accountId, \{ ...params }) -> Frameio.WorkspaceResponse

从帐户创建工作区。

速率限制：每个 account\_user 每 1.00 分钟 10 次调用

**`usage`**

```ts usage
await client.workspaces.create("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
    data: {
        name: "My Workspace",
    },
});

```

**参数**

`accountId`: `Frameio.Uuid` —

`request`: `Frameio.WorkspaceParams`

`requestOptions`: `Workspaces.RequestOptions`

---

### npm

> **Launch**
>
> 在 [npm](https://www.npmjs.com/package/frameio) 上查看

---