For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
Developer Tools
CommunityContact UsConsole
HomeAPI ReferenceDocsChangelog
HomeAPI ReferenceDocsChangelog
  • Introduction
    • Overview
    • Getting Started
    • Quick Start
  • Guides
    • Accounts, Projects, and Workspaces
    • Media Links
    • Managing User Permissions
    • Webhooks
    • Postman Collection
    • Custom Actions
    • Zapier
    • Make
  • Resources
    • Migration
    • FAQ
    • Troubleshooting
  • SDK Reference
    • Python SDK Reference
    • TypeScript SDK Reference

© 2026 Adobe Inc. All rights reserved.

TermsPrivacyDo not sell or share my personal information
Developer-friendly docs for your API
Logo
Developer Tools
CommunityContact UsConsole
On this page
  • Installation
  • Usage
  • Request And Response Types
  • Exception Handling
  • Advanced
  • Additional Headers
  • Additional Query String Parameters
  • Retries
  • Timeouts
  • Aborting Requests
  • Access Raw Response Data
  • Runtime Compatibility
  • Customizing Fetch Client
  • Reference
  • Metadata
  • Metadata Fields
  • Project Permissions
  • Projects
  • Folders
  • Version Stacks
  • Account Permissions
  • Accounts
  • Comments
  • Webhooks
  • Workspace Permissions
  • Workspaces
  • Shares
  • Files
  • Users
  • npm
SDK Reference

TypeScript SDK Reference

Was this page helpful?
Previous

Installation

1npm i -s frameio

Usage

Instantiate and use the client with the following:

1import { FrameioClient } from "frameio";
2
3const client = new FrameioClient({ token: "YOUR_TOKEN" });
4await client.metadataFields.metadataFieldDefinitionsCreate("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
5 data: {
6 field_type: "select",
7 field_configuration: {
8 enable_add_new: false,
9 options: [
10 {
11 display_name: "Option 1",
12 },
13 {
14 display_name: "Option 2",
15 },
16 ],
17 },
18 name: "Fields definition name",
19 },
20});

Request And Response Types

The SDK exports all request and response types as TypeScript interfaces. Simply import them with the following namespace:

1import { Frameio } from "frameio";
2
3const request: Frameio.UpdateFieldDefinitionParams = {
4 ...
5};

Exception Handling

When the API returns a non-success status code (4xx or 5xx response), a subclass of the following error will be thrown.

1import { FrameioError } from "frameio";
2
3try {
4 await client.metadataFields.metadataFieldDefinitionsCreate(...);
5} catch (err) {
6 if (err instanceof FrameioError) {
7 console.log(err.statusCode);
8 console.log(err.message);
9 console.log(err.body);
10 console.log(err.rawResponse);
11 }
12}

Advanced

Additional Headers

If you would like to send additional headers as part of the request, use the headers request option.

1const response = await client.metadataFields.metadataFieldDefinitionsCreate(..., {
2 headers: {
3 'X-Custom-Header': 'custom value'
4 }
5});

Additional Query String Parameters

If you would like to send additional query string parameters as part of the request, use the queryParams request option.

1const response = await client.metadataFields.metadataFieldDefinitionsCreate(..., {
2 queryParams: {
3 'customQueryParamKey': 'custom query param value'
4 }
5});

Retries

The SDK is instrumented with automatic retries with exponential backoff. A request will be retried as long as the request is deemed retryable and the number of retry attempts has not grown larger than the configured retry limit (default: 2).

A request is deemed retryable when any of the following HTTP status codes is returned:

  • 408 (Timeout)
  • 429 (Too Many Requests)
  • 5XX (Internal Server Errors)

Use the maxRetries request option to configure this behavior.

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

Timeouts

The SDK defaults to a 60 second timeout. Use the timeoutInSeconds option to configure this behavior.

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

Aborting Requests

The SDK allows users to abort requests at any point by passing in an abort signal.

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

Access Raw Response Data

The SDK provides access to raw response data, including headers, through the .withRawResponse() method. The .withRawResponse() method returns a promise that results to an object with a data and a rawResponse property.

1const { data, rawResponse } = await client.metadataFields.metadataFieldDefinitionsCreate(...).withRawResponse();
2
3console.log(data);
4console.log(rawResponse.headers['X-My-Header']);

Runtime Compatibility

The SDK works in the following runtimes:

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

Customizing Fetch Client

The SDK provides a way for you to customize the underlying HTTP client / Fetch function. If you’re running in an unsupported environment, this provides a way for you to break glass and ensure the SDK works.

1import { FrameioClient } from "frameio";
2
3const client = new FrameioClient({
4 ...
5 fetcher: // provide your implementation here
6});

Reference

Metadata

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

Update metadata values across multiple files.
Rate Limits: 10 calls per 1.00 minute(s) per account_user

usage
1await client.metadata.bulkUpdate("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
2 data: {
3 file_ids: ["09b31c2a-04de-464a-a593-643a36ef0d98", "b967fc36-4e18-4b48-a3ab-c790100e2baa"],
4 values: [
5 {
6 field_definition_id: "ff41ce50-269b-4624-8306-aac10e28ab94",
7 value: [
8 {
9 id: "e60f47b4-cf8e-4273-96d5-3258a830a0aa",
10 type: "user",
11 },
12 {
13 id: "24eeaf7e-ce27-4555-bc77-cce39900626d",
14 type: "account_user_group",
15 },
16 ],
17 },
18 ],
19 },
20});

Parameters accountId: Frameio.Uuid —

projectId: Frameio.Uuid —

request: Frameio.BulkUpdateMetadataParams

requestOptions: Metadata.RequestOptions

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

Show the metadata of a file.
Rate Limits: 100 calls per 1.00 minute(s) per account_user

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

Parameters accountId: Frameio.Uuid —

fileId: Frameio.Uuid —

request: Frameio.MetadataShowRequest

requestOptions: Metadata.RequestOptions

Metadata Fields

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

Delete account level custom field definitions.
Rate Limits: 60 calls per 1.00 minute(s) per account_user

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

Parameters

accountId: Frameio.Uuid —

fieldDefinitionId: Frameio.Uuid —

requestOptions: MetadataFields.RequestOptions

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

Update account level custom field definitions.
Rate Limits: 10 calls per 1.00 minute(s) per account_user

usage
1await client.metadataFields.metadataFieldDefinitionsUpdate(
2 "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
3 "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
4 {
5 data: {
6 field_type: "select",
7 field_configuration: {
8 enable_add_new: false,
9 options: [
10 {
11 display_name: "Option 1",
12 },
13 {
14 display_name: "Option 2",
15 },
16 ],
17 },
18 name: "Updated-Field-Name",
19 },
20 },
21);

Parameters

accountId: Frameio.Uuid` —

fieldDefinitionId: Frameio.Uuid —

request: Frameio.UpdateFieldDefinitionParams

requestOptions: MetadataFields.RequestOptions

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

List account level field definitions.
Rate Limits: 100 calls per 1.00 minute(s) per account_user

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

Parameters

accountId: Frameio.Uuid —

request: Frameio.MetadataFieldDefinitionsIndexRequest

requestOptions: MetadataFields.RequestOptions

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

Create account level field definitions.
Rate Limits: 10 calls per 1.00 minute(s) per account_user

usage
1await client.metadataFields.metadataFieldDefinitionsCreate("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
2 data: {
3 field_type: "select",
4 field_configuration: {
5 enable_add_new: false,
6 options: [
7 {
8 display_name: "Option 1",
9 },
10 {
11 display_name: "Option 2",
12 },
13 ],
14 },
15 name: "Fields definition name",
16 },
17});

Parameters

accountId: Frameio.Uuid —

request: Frameio.CreateFieldDefinitionParams

requestOptions: MetadataFields.RequestOptions

Project Permissions

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

List user roles for a given project.
Rate Limits: 100 calls per 1.00 minute(s) per account_user

usage
1const response = await client.projectPermissions.index(
2 "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
3 "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
4 {
5 include_deactivated: true,
6 after: "<opaque_cursor>",
7 page_size: 10,
8 include_total_count: false,
9 },
10);
11for await (const item of response) {
12 console.log(item);
13}
14
15// Or you can manually iterate page-by-page
16let page = await client.projectPermissions.index(
17 "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
18 "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
19 {
20 include_deactivated: true,
21 after: "<opaque_cursor>",
22 page_size: 10,
23 include_total_count: false,
24 },
25);
26while (page.hasNextPage()) {
27 page = page.getNextPage();
28}

Parameters

accountId: Frameio.Uuid —

projectId: Frameio.Uuid —

request: Frameio.ProjectPermissionsIndexRequest

requestOptions: ProjectPermissions.RequestOptions

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

Remove a user from a given project.
Rate Limits: 60 calls per 1.00 minute(s) per account_user

usage
1await client.projectPermissions.delete(
2 "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
3 "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
4 "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
5);

Parameters

accountId: Frameio.Uuid` —

projectId: Frameio.Uuid —

userId: Frameio.Uuid —

requestOptions: ProjectPermissions.RequestOptions

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

Update user roles for the given project if the user is already added to the project. If the user is not added to the project, the user will be added with the given role.
Rate Limits: 10 calls per 1.00 minute(s) per account_user

usage
1await client.projectPermissions.projectUserRolesUpdate(
2 "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
3 "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
4 "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
5 {
6 data: {
7 role: "editor",
8 },
9 },
10);

Parameters

accountId: Frameio.Uuid —

projectId: Frameio.Uuid —

UserId: Frameio.Uuid —

request: Frameio.UpdateUserRolesParams

requestOptions: ProjectPermissions.RequestOptions

Projects

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

Show project details.
Rate Limits: 100 calls per 1.00 minute(s) per account_user

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

Parameters

accountId: Frameio.Uuid —

projectId: Frameio.Uuid —

request: Frameio.ProjectsShowRequest

requestOptions: Projects.RequestOptions

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

Delete a project.
Rate Limits: 60 calls per 1.00 minute(s) per account_user

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

Parameters

accountId: Frameio.Uuid` —

projectId: Frameio.Uuid —

requestOptions: Projects.RequestOptions

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

Update project details.
Rate Limits: 10 calls per 1.00 minute(s) per account_user

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

Parameters

accountId: Frameio.Uuid —

projectId: Frameio.Uuid —

request: Frameio.ProjectUpdateParams

requestOptions: Projects.RequestOptions

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

List projects in a given workspace.
Rate Limits: 100 calls per 1.00 minute(s) per account_user

usage
1const response = await client.projects.index(
2 "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
3 "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
4 {
5 include: "owner",
6 after: "<opaque_cursor>",
7 page_size: 10,
8 include_total_count: false,
9 },
10);
11for await (const item of response) {
12 console.log(item);
13}
14
15// Or you can manually iterate page-by-page
16let page = await client.projects.index("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
17 include: "owner",
18 after: "<opaque_cursor>",
19 page_size: 10,
20 include_total_count: false,
21});
22while (page.hasNextPage()) {
23 page = page.getNextPage();
24}

Parameters

accountId: Frameio.Uuid —

workspaceId: Frameio.Uuid —

request: Frameio.ProjectsIndexRequest

requestOptions: Projects.RequestOptions

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

Create project in a given workspace.
Rate Limits: 10 calls per 1.00 minute(s) per account_user

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

Parameters

accountId: Frameio.Uuid —

workspaceId: Frameio.Uuid —

request: Frameio.ProjectsParams

requestOptions: Projects.RequestOptions

Folders

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

Show folder details.
Rate Limits: 100 calls per 1.00 minute(s) per account_user

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

Parameters

accountId: Frameio.Uuid —

projectId: Frameio.Uuid —

request: Frameio.FoldersShowRequest

requestOptions: Folders.RequestOptions

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

Delete folder by id.
Rate Limits: 60 calls per 1.00 minute(s) per account_user

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

Parameters

accountId: Frameio.Uuid —

folderId: Frameio.Uuid —

requestOptions: Folders.RequestOptions

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

Update folder details.
Rate Limits: 10 calls per 1.00 minute(s) per account_user

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

Parameters

accountId: Frameio.Uuid —

folderId: Frameio.Uuid —

request: Frameio.FolderUpdateParams

requestOptions: Folders.RequestOptions

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

List the children in the given folder.
Use the include query parameter to selectively include additional properties in the response.

If you include media_links.original and the user does not have permission to download files in the corresponding project, then this endpoint will respond with a 403 Forbidden error. If the content is inaccessible because watermarking is required for this user and isn’t supported by the requested media_links, then the request will succeed but the unsupported media links will be set to null. Similarly, if a requested transcode link does not exist for a particular file (e.g. including media_links.video_h264_180 on a static image file) or transoding process hasn’t finished (i.e. the file’s status is “uploaded” rather than “transcoded”), then the a media link will also be set to null in the response payload. In short, the client must handle null media links gracefully.
Rate Limits: 100 calls per 1.00 minute(s) per account_user

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

Parameters

accountId: Frameio.Uuid —

folderId: Frameio.Uuid —

request: Frameio.FolderIndexRequest

requestOptions: Folders.RequestOptions

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

Copy folder.
Rate Limits: 10 calls per 1.00 minute(s) per account_user

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

Parameters

accountId: Frameio.Uuid —

folderId: Frameio.Uuid —

request: Frameio.FolderCopyParams

requestOptions: Folders.RequestOptions

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

List folders in a given folder.
Rate Limits: 5 calls per 1 second(s) per account_user

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

Parameters

accountId: Frameio.Uuid —

folderId: Frameio.Uuid —

request: Frameio.FoldersListRequest

requestOptions: Folders.RequestOptions

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

Create a new folder inside the given folder_id path param. Rate Limits: 3 calls per 1 second(s) per account_user

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

Parameters

accountId: Frameio.Uuid —

folderId: Frameio.Uuid —

request: Frameio.FolderCreateParams

requestOptions: Folders.RequestOptions

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

Move folder to a folder.
Rate Limits: 10 calls per 1.00 minute(s) per account_user

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

Parameters

accountId: Frameio.Uuid —

folderId: Frameio.Uuid —

request: Frameio.FolderMoveParams

requestOptions: Folders.RequestOptions

Version Stacks

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

List the children (files) in a given version stack.
Use the include query parameter to selectively include additional properties in the response.

If you include media_links.original and the user does not have permission to download files in the corresponding project, then this endpoint will respond with a 403 Forbidden error. If the content is inaccessible because watermarking is required for this user and isn’t supported by the requested media_links, then the request will succeed but the unsupported media links will be set to null. Similarly, if a requested transcode link does not exist for a particular file (e.g. including media_links.video_h264_180 on a static image file) or transoding process hasn’t finished (i.e. the file’s status is “uploaded” rather than “transcoded”), then the a media link will also be set to null in the response payload. In short, the client must handle null media links gracefully.
Rate Limits: 100 calls per 1.00 minute(s) per account_user

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

Parameters

accountId: Frameio.Uuid —

projectId: Frameio.Uuid —

request: Frameio.VersionStacksIndexRequest

requestOptions: VersionStacks.RequestOptions

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

Show version stack details.
Rate Limits: 100 calls per 1.00 minute(s) per account_user

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

Parameters

accountId: Frameio.Uuid —

versionStackId: Frameio.Uuid —

request: Frameio.VersionStacksShowRequest

requestOptions: VersionStacks.RequestOptions

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

Copy version stack.
Rate Limits: 10 calls per 1.00 minute(s) per account_user

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

Parameters

accountId: Frameio.Uuid —

versionStackId: Frameio.Uuid —

request: Frameio.VersionStackCopyParams

requestOptions: VersionStacks.RequestOptions

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

List version stacks in a given folder.
Rate Limits: 5 calls per 1 second(s) per account_user

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

Parameters

accountId: Frameio.Uuid —

folderId: Frameio.Uuid —

request: Frameio.VersionStacksListRequest

requestOptions: VersionStacks.RequestOptions

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

Create a new Version Stack under the parent folder.
Rate Limits: 10 calls per 1.00 minute(s) per account_user

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

Parameters

accountId: Frameio.Uuid —

folderId: Frameio.Uuid —

request: Frameio.VersionStackCreateParams

requestOptions: VersionStacks.RequestOptions

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

Move version stack to a folder.
Rate Limits: 10 calls per 1.00 minute(s) per account_user

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

Parameters

accountId: Frameio.Uuid —

folderId: Frameio.Uuid —

request: Frameio.VersionStackMoveParams

requestOptions: VersionStacks.RequestOptions

Account Permissions

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

List user roles for a given account.
Rate Limits: 100 calls per 1.00 minute(s) per account_user

usage
1const response = await client.accountPermissions.index("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
2 include_deactivated: true,
3 after: "<opaque_cursor>",
4 page_size: 10,
5 include_total_count: false,
6});
7for await (const item of response) {
8 console.log(item);
9}
10
11// Or you can manually iterate page-by-page
12let page = await client.accountPermissions.index("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
13 include_deactivated: true,
14 after: "<opaque_cursor>",
15 page_size: 10,
16 include_total_count: false,
17});
18while (page.hasNextPage()) {
19 page = page.getNextPage();
20}

Parameters

accountId: Frameio.Uuid —

request: Frameio.AccountPermissionsIndexRequest

requestOptions: AccountPermissions.RequestOptions

Accounts

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

List accounts for the current user.
Rate Limits: 100 calls per 1.00 minute(s) per account_user

usage
1const response = await client.accounts.index({
2 after: "<opaque_cursor>",
3 page_size: 10,
4 include_total_count: false,
5});
6for await (const item of response) {
7 console.log(item);
8}
9
10// Or you can manually iterate page-by-page
11let page = await client.accounts.index({
12 after: "<opaque_cursor>",
13 page_size: 10,
14 include_total_count: false,
15});
16while (page.hasNextPage()) {
17 page = page.getNextPage();
18}

Parameters

request: Frameio.AccountsIndexRequest

requestOptions: Accounts.RequestOptions

Comments

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

Show a single comment on a file.
Rate Limits: 100 calls per 1.00 minute(s) per account_user

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

Parameters accountId: Frameio.Uuid —

commentId: Frameio.Uuid —

request: Frameio.CommentsShowRequest

requestOptions: Comments.RequestOptions

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

Delete comment from an asset.
Rate Limits: 60 calls per 1.00 minute(s) per account_user

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

Parameters accountId: Frameio.Uuid —

commentId: Frameio.Uuid —

requestOptions: Comments.RequestOptions

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

Update comment on given asset.
Rate Limits: 10 calls per 1.00 minute(s) per account_user

usage
1await client.comments.update("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
2 timestamp_as_timecode: true,
3 data: {
4 annotation:
5 '[{"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}]',
6 completed: false,
7 page: 4,
8 text: "This is great!",
9 },
10});

Parameters accountId: Frameio.Uuid —

commentId: Frameio.Uuid —

request: Frameio.UpdateCommentParams

requestOptions: Comments.RequestOptions

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

List comments on a given asset.
Rate Limits: 100 calls per 1.00 minute(s) per account_user

usage
1const response = await client.comments.index(
2 "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
3 "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
4 {
5 include: "owner",
6 after: "<opaque_cursor>",
7 page_size: 10,
8 include_total_count: false,
9 },
10);
11for await (const item of response) {
12 console.log(item);
13}
14
15// Or you can manually iterate page-by-page
16let page = await client.comments.index("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
17 include: "owner",
18 after: "<opaque_cursor>",
19 page_size: 10,
20 include_total_count: false,
21});
22while (page.hasNextPage()) {
23 page = page.getNextPage();
24}

Parameters accountId: Frameio.Uuid —

fileId: Frameio.Uuid —

request: Frameio.CommentsIndexRequest

requestOptions: Comments.RequestOptions

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

Create a comment on a file.
Rate Limits: 100 calls per 1.00 minute(s) per account_user

usage
1await client.comments.create("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
2 timestamp_as_timecode: true,
3 data: {
4 annotation:
5 '[{"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}]',
6 completed: false,
7 page: 4,
8 text: "This is great!",
9 timestamp: "00:00:02:12",
10 },
11});

Parameters accountId: Frameio.Uuid —

fileId: Frameio.Uuid —

request: Frameio.CreateCommentParams

requestOptions: Comments.RequestOptions

Webhooks

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

List webhooks for the given workspace.
Rate Limits: 100 calls per 1.00 minute(s) per account_user

usage
1const response = await client.webhooks.index(
2 "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
3 "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
4 {
5 include: "creator",
6 after: "<opaque_cursor>",
7 page_size: 10,
8 include_total_count: false,
9 },
10);
11for await (const item of response) {
12 console.log(item);
13}
14
15// Or you can manually iterate page-by-page
16let page = await client.webhooks.index("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
17 include: "creator",
18 after: "<opaque_cursor>",
19 page_size: 10,
20 include_total_count: false,
21});
22while (page.hasNextPage()) {
23 page = page.getNextPage();
24}

Parameters accountId: Frameio.Uuid —

workspaceId: Frameio.Uuid —

request: Frameio.WebhooksIndexRequest

requestOptions: Webhooks.RequestOptions

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

Creates a single webhook with secret.
Valid 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
Rate Limits: 10 calls per 1.00 minute(s) per account

usage
1await client.webhooks.create("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
2 data: {
3 events: [
4 "file.created",
5 "file.deleted",
6 "file.ready",
7 "file.updated",
8 "file.upload.completed",
9 "file.versioned",
10 "file.copied",
11 "folder.created",
12 "folder.deleted",
13 "folder.updated",
14 "folder.copied",
15 "comment.completed",
16 "comment.created",
17 "comment.deleted",
18 "comment.uncompleted",
19 "comment.updated",
20 "customfield.created",
21 "customfield.updated",
22 "customfield.deleted",
23 "metadata.value.updated",
24 "project.created",
25 "project.deleted",
26 "project.updated",
27 "collection.created",
28 "collection.updated",
29 "collection.deleted",
30 "share.created",
31 "share.updated",
32 "share.deleted",
33 "share.viewed",
34 ],
35 name: "New Webhook",
36 url: "https://url.example.com",
37 },
38});

Parameters accountId: Frameio.Uuid —

workspaceId: Frameio.Uuid —

request: Frameio.WebhookCreateParams

requestOptions: Webhooks.RequestOptions

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

Show webhook details.
Rate Limits: 100 calls per 1.00 minute(s) per account_user

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

Parameters accountId: Frameio.Uuid —

webhookId: Frameio.Uuid —

request: Frameio.WebhooksShowRequest

requestOptions: Webhooks.RequestOptions

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

Delete a webhook.
Rate Limits: 60 calls per 1.00 minute(s) per account_user

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

Parameters accountId: Frameio.Uuid —

webhookId: Frameio.Uuid —

requestOptions: Webhooks.RequestOptions

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

Update webhook details.
Rate Limits: 10 calls per 1.00 minute(s) per account_user

usage
1await client.webhooks.update("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
2 data: {
3 active: true,
4 events: [
5 "file.created",
6 "file.deleted",
7 "file.ready",
8 "file.updated",
9 "file.upload.completed",
10 "file.versioned",
11 "file.copied",
12 "folder.created",
13 "folder.deleted",
14 "folder.updated",
15 "folder.copied",
16 "comment.completed",
17 "comment.created",
18 "comment.deleted",
19 "comment.uncompleted",
20 "comment.updated",
21 "customfield.created",
22 "customfield.updated",
23 "customfield.deleted",
24 "metadata.value.updated",
25 "project.created",
26 "project.deleted",
27 "project.updated",
28 "collection.created",
29 "collection.updated",
30 "collection.deleted",
31 "share.created",
32 "share.updated",
33 "share.deleted",
34 "share.viewed",
35 ],
36 name: "Updated Webhook",
37 url: "https://url.example.com",
38 },
39});

Parameters accountId: Frameio.Uuid —

webhookId: Frameio.Uuid — request: Frameio.WebhookUpdateParams`

requestOptions: Webhooks.RequestOptions

Workspace Permissions

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

List user roles for a given workspace.
Rate Limits: 100 calls per 1.00 minute(s) per account_user

usage
1const response = await client.workspacePermissions.index(
2 "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
3 "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
4 {
5 include_deactivated: true,
6 after: "<opaque_cursor>",
7 page_size: 10,
8 include_total_count: false,
9 },
10);
11for await (const item of response) {
12 console.log(item);
13}
14
15// Or you can manually iterate page-by-page
16let page = await client.workspacePermissions.index(
17 "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
18 "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
19 {
20 include_deactivated: true,
21 after: "<opaque_cursor>",
22 page_size: 10,
23 include_total_count: false,
24 },
25);
26while (page.hasNextPage()) {
27 page = page.getNextPage();
28}

Parameters accountId: Frameio.Uuid —

workspaceId: Frameio.Uuid —

request: Frameio.WorkspacePermissionsIndexRequest

requestOptions: WorkspacePermissions.RequestOptions

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

Remove a user from a given workspace.
Rate Limits: 60 calls per 1.00 minute(s) per account_user

usage
1await client.workspacePermissions.workspaceUserRolesDelete(
2 "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
3 "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
4 "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
5);

Parameters accountId: Frameio.Uuid —

workspaceId: Frameio.Uuid —

userId: Frameio.Uuid —

requestOptions: WorkspacePermissions.RequestOptions

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

Update user roles for the given workspace if the user is already added to the workspace. If the user is not added to the workspace, the user will be added with the given role.
Rate Limits: 10 calls per 1.00 minute(s) per account_user

usage
1await client.workspacePermissions.workspaceUserRolesUpdate(
2 "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
3 "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
4 "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
5 {
6 data: {
7 role: "editor",
8 },
9 },
10);

Parameters accountId: Frameio.Uuid —

workspaceId: Frameio.Uuid —

userId: Frameio.Uuid —

request: Frameio.UpdateUserRolesParams

requestOptions: WorkspacePermissions.RequestOptions

Workspaces

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

Show workspace details.
Rate Limits: 100 calls per 1.00 minute(s) per account_user

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

Parameters accountId: Frameio.Uuid —

workspaceId: Frameio.Uuid —

request: Frameio.WorkspacesShowRequest

requestOptions: Workspaces.RequestOptions

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

Delete workspace from account.
Rate Limits: 60 calls per 1.00 minute(s) per account_user

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

Parameters accountId: Frameio.Uuid —

workspaceId: Frameio.Uuid —

requestOptions: Workspaces.RequestOptions

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

Update a workspace.
Rate Limits: 10 calls per 1.00 minute(s) per account_user

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

Parameters accountId: Frameio.Uuid —

workspaceId: Frameio.Uuid —

request: Frameio.WorkspaceParams

requestOptions: Workspaces.RequestOptions

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

List workspaces for a given account.
Rate Limits: 100 calls per 1.00 minute(s) per account_user

usage
1const response = await client.workspaces.index("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
2 include: "creator",
3 after: "<opaque_cursor>",
4 page_size: 10,
5 include_total_count: false,
6});
7for await (const item of response) {
8 console.log(item);
9}
10
11// Or you can manually iterate page-by-page
12let page = await client.workspaces.index("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
13 include: "creator",
14 after: "<opaque_cursor>",
15 page_size: 10,
16 include_total_count: false,
17});
18while (page.hasNextPage()) {
19 page = page.getNextPage();
20}

Parameters accountId: Frameio.Uuid —

request: Frameio.WorkspacesIndexRequest

requestOptions: Workspaces.RequestOptions

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

Create workspace from an account.
Rate Limits: 10 calls per 1.00 minute(s) per account_user

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

Parameters accountId: Frameio.Uuid —

request: Frameio.WorkspaceParams

requestOptions: Workspaces.RequestOptions

Shares

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

Show a single Share.
Rate Limits: 100 calls per 1.00 minute(s) per account_user

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

Parameters accountId: Frameio.Uuid —

shareId: Frameio.Uuid —

requestOptions: Shares.RequestOptions

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

Delete a share.
Rate Limits: 60 calls per 1.00 minute(s) per account_user

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

Parameters accountId: Frameio.Uuid —

shareId: Frameio.Uuid —

requestOptions: Shares.RequestOptions

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

Update share.
Rate Limits: 10 calls per 1.00 minute(s) per account_user

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

Parameters accountId: Frameio.Uuid —

shareId: Frameio.Uuid —

request: Frameio.UpdateShareParams

requestOptions: Shares.RequestOptions

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

List share reviewers.
Rate Limits: 10 calls per 1.00 minute(s) per account_user

usage
1const response = await client.shares.listReviewers(
2 "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
3 "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
4 {
5 after: "<opaque_cursor>",
6 page_size: 10,
7 include_total_count: false,
8 },
9);
10for await (const item of response) {
11 console.log(item);
12}
13
14// Or you can manually iterate page-by-page
15let page = await client.shares.listReviewers(
16 "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
17 "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
18 {
19 after: "<opaque_cursor>",
20 page_size: 10,
21 include_total_count: false,
22 },
23);
24while (page.hasNextPage()) {
25 page = page.getNextPage();
26}

Parameters accountId: Frameio.Uuid —

shareId: Frameio.Uuid —

request: Frameio.SharesListReviewersRequestreParams

requestOptions: Shares.RequestOptions

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

Add reviewers to secure share by three identifier types: adobe_user_id, email, and user_id. A request can only include one identifier type parameter. email is the only identifier able to add reviewers to a Share who don’t have a Frame account member on the account where the Share belongs.
Rate Limits: 10 calls per 1.00 minute(s) per account_user

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

Parameters accountId: Frameio.Uuid —

shareId: Frameio.Uuid —

request: Frameio.AddReviewersToShareParams

requestOptions: Shares.RequestOptions

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

Removes reviewers from secure Share by three identifier types: adobe_user_id, email, and user_id. A request can only include one identifier type parameter.
Rate Limits: 10 calls per 1.00 minute(s) per account_user

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

Parameters accountId: Frameio.Uuid —

shareId: Frameio.Uuid —

request: Frameio.RemoveReviewerParams

requestOptions: Shares.RequestOptions

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

Remove an asset currently in the share from that share.
Rate Limits: 10 calls per 1.00 minute(s) per account_user

usage
1await client.shares.removeAsset(
2 "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
3 "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
4 "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
5);

Parameters accountId: Frameio.Uuid —

shareId: Frameio.Uuid —

assetId: Frameio.Uuid —

requestOptions: Shares.RequestOptions

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

Add new asset share.
Rate Limits: 10 calls per 1.00 minute(s) per account_user

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

Parameters accountId: Frameio.Uuid —

shareId: Frameio.Uuid —

request: Frameio.AddAssetParams

requestOptions: Shares.RequestOptions

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

List shares on a project.
Rate Limits: 100 calls per 1.00 minute(s) per account_user

usage
1const response = await client.shares.index(
2 "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
3 "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
4 {
5 after: "<opaque_cursor>",
6 page_size: 10,
7 include_total_count: false,
8 },
9);
10for await (const item of response) {
11 console.log(item);
12}
13
14// Or you can manually iterate page-by-page
15let page = await client.shares.index("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
16 after: "<opaque_cursor>",
17 page_size: 10,
18 include_total_count: false,
19});
20while (page.hasNextPage()) {
21 page = page.getNextPage();
22}

Parameters accountId: Frameio.Uuid —

shareId: Frameio.Uuid —

request: Frameio.SharesIndexRequest

requestOptions: Shares.RequestOptions

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

Create share.
Rate Limits: 10 calls per 1.00 minute(s) per account_user

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

Parameters accountId: Frameio.Uuid —

projectId: Frameio.Uuid —

request: Frameio.CreateShareParams

requestOptions: Shares.RequestOptions

Files

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

List files in a given folder.
Rate Limits: 5 calls per 1 second(s) per account_user

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

Parameters accountId: Frameio.Uuid —

folderId: Frameio.Uuid —

request: Frameio.FilesListRequest

requestOptions: Files.RequestOptions

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

Create new file under parent folder. Create file (local upload) and Create file (remote upload) have replaced this endpoint.
Rate Limits: 5 calls per 1 second(s) per account_user

usage
1await client.files.create("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
2 data: {
3 file_size: 1137444,
4 media_type: "image/png",
5 name: "asset.png",
6 },
7});

Parameters accountId: Frameio.Uuid —

folderId: Frameio.Uuid —

request: Frameio.FileCreateParams

requestOptions: Files.RequestOptions

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

Show file details.
Use the include query parameter to selectively include additional properties in the response.

If you include media_links.original and the user does not have permission to download the file then this endpoint will respond with a 403 Forbidden error. If the content is inaccessible because watermarking is required for this user and isn’t supported by the requested media_links, then the request will succeed but the unsupported media links will be set to null. Similarly, if a requested transcode link does not exist for a particular file (e.g. including media_links.video_h264_180 on a static image file) or transoding process hasn’t completed (i.e. the file’s status is “uploaded” rather than “transcoded”), then the link will also be set to null in the response payload. In short, the client must handle null media links gracefully.
Rate Limits: 5 calls per 1 second(s) per account_user

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

Parameters accountId: Frameio.Uuid —

folderId: Frameio.Uuid —

request: Frameio.FilesShowRequest

requestOptions: Files.RequestOptions

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

Delete file by ID.
Rate Limits: 100 calls per 1.00 minute(s) per account_user

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

Parameters accountId: Frameio.Uuid —

fileId: Frameio.Uuid —

requestOptions: Files.RequestOptions

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

Update file details.
Rate Limits: 100 calls per 1.00 minute(s) per account_user

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

Parameters accountId: Frameio.Uuid —

fileId: Frameio.Uuid —

request: Frameio.FileUpdateParams

requestOptions: Files.RequestOptions

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

Copy file.
Rate Limits: 100 calls per 1.00 minute(s) per account_user

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

Parameters accountId: Frameio.Uuid —

fileId: Frameio.Uuid —

request: Frameio.FileCopyParams

requestOptions: Files.RequestOptions

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

Create new file under parent folder through remote upload.
Rate Limits: 5 calls per 1 second(s) per account_user

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

Parameters accountId: Frameio.Uuid —

folderId: Frameio.Uuid —

request: Frameio.FileCreateRemoteUploadParams

requestOptions: Files.RequestOptions

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

Move file to a folder or version_stack.
Rate Limits: 100 calls per 1.00 minute(s) per account_user

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

Parameters accountId: Frameio.Uuid —

fileId: Frameio.Uuid —

request: Frameio.FileMoveParams

requestOptions: Files.RequestOptions

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

Create new file under parent folder through local upload.
Rate Limits: 5 calls per 1 second(s) per account_user

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

Parameters accountId: Frameio.Uuid —

folderId: Frameio.Uuid —

request: Frameio.FileCreateLocalUploadParams

requestOptions: Files.RequestOptions

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

Show file upload status details.
Rate Limits: 5 calls per 1 second(s) per account_user

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

Parameters accountId: Frameio.Uuid —

fileId: Frameio.Uuid —

requestOptions: Files.RequestOptions

Users

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

Inspect details of the user associated with the bearer token.
Rate Limits: 100 calls per 1.00 minute(s) per account_user

usage
1await client.users.show();

Parameters requestOptions: Users.RequestOptions


npm

View on npm