TypeScript SDK Reference


Installation

npm i -s frameio

Usage

Instantiate and use the client with the following:

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",
},
});

Request And Response Types

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

import { Frameio } from "frameio";
const request: Frameio.UpdateFieldDefinitionParams = {
...
};

Exception Handling

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

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);
}
}

Advanced

Additional Headers

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

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

Additional Query String Parameters

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

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

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.

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

Timeouts

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

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

Aborting Requests

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

const controller = new AbortController();
const response = await client.metadataFields.metadataFieldDefinitionsCreate(..., {
abortSignal: controller.signal
});
controller.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.

const { data, rawResponse } = await client.metadataFields.metadataFieldDefinitionsCreate(...).withRawResponse();
console.log(data);
console.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.

import { FrameioClient } from "frameio";
const client = new FrameioClient({
...
fetcher: // provide your implementation here
});

Reference

Account Permissions

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

usage
const response = await client.accountPermissions.index("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
include_deactivated: true,
sort: "role_asc",
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,
sort: "role_asc",
after: "<opaque_cursor>",
page_size: 10,
include_total_count: false,
});
while (page.hasNextPage()) {
page = page.getNextPage();
}

Parameters

accountId: Frameio.Uuid —

request: Frameio.AccountPermissionsIndexRequest

requestOptions: AccountPermissions.RequestOptions

Accounts

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

usage
const response = await client.accounts.index({
sort: "display_name_asc",
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({
sort: "display_name_asc",
after: "<opaque_cursor>",
page_size: 10,
include_total_count: false,
});
while (page.hasNextPage()) {
page = page.getNextPage();
}

Parameters

request: Frameio.AccountsIndexRequest

requestOptions: Accounts.RequestOptions

List audit logs with filtering capabilities via query params.
Rate Limits: 100 calls per 1.00 minute(s) per account_user

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

Parameters

accountId: Frameio.FrameOrAdobeId —

request: Frameio.AuditlogIndexRequest

requestOptions: Accounts.RequestOptions

Auth

Authenticate using the OAuth 2.0 client_credentials grant. This flow does not involve a user and does not return a refresh token. When the access token expires the SDK automatically requests a new one using the client credentials.

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() });

Parameters

clientId: string — Adobe IMS OAuth client ID.

clientSecret: string — Adobe IMS OAuth client secret.

scopes: string — Space-separated scopes (OAuth 2.0 RFC 6749). Defaults to the server-to-server scopes.

imsBaseUrl: string — IMS base URL for staging/alternative environments. Defaults to production.

fetch: typeof fetch — Custom fetch implementation (for proxy, TLS, etc.).

onTokenRefreshed: OnTokenRefreshed — Optional callback fired after every token fetch.

timeout: number — HTTP request timeout in milliseconds. Defaults to 30000.

maxRetries: number — Maximum retries for transient failures. Defaults to 2.

refreshBuffer: number — Seconds before expiry to trigger proactive refresh. Defaults to 60.

logger: Logger — Logger instance for diagnostic output.

Methods

getToken(): Promise<string> — Return a valid access token, refreshing if necessary. Pass it to the client: new FrameioClient({ token: () => auth.getToken() }).

authenticate(): Promise<TokenResponse> — Explicitly fetch a new access token.

revoke(): Promise<void> — Revoke tokens server-side and clear local state.

exportTokens(): ExportedTokens — Export current token state for persistence.

importTokens(data: ExportedTokens): void — Restore token state from a previously exported object.

Authenticate using the OAuth 2.0 authorization_code grant. Use this for server-side applications that can securely store a client secret.

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() });

Parameters

clientId: string — Adobe IMS OAuth client ID.

clientSecret: string — Adobe IMS OAuth client secret.

redirectUri: string — Registered redirect URI.

scopes: string — Space-separated scopes (OAuth 2.0 RFC 6749).

imsBaseUrl: string — IMS base URL for staging/alternative environments. Defaults to production.

fetch: typeof fetch — Custom fetch implementation (for proxy, TLS, etc.).

onTokenRefreshed: OnTokenRefreshed — Optional callback fired after every token refresh.

timeout: number — HTTP request timeout in milliseconds. Defaults to 30000.

maxRetries: number — Maximum retries for transient failures. Defaults to 2.

refreshBuffer: number — Seconds before expiry to trigger proactive refresh. Defaults to 60.

logger: Logger — Logger instance for diagnostic output.

Methods

getToken(): Promise<string> — Return a valid access token, refreshing if necessary.

getAuthorizationUrl({ state }): string — Build the Adobe IMS authorization URL. Pass an opaque CSRF/state value that will be echoed back.

exchangeCode(code: string): Promise<TokenResponse> — Exchange an authorization code for access and refresh tokens.

refresh(): Promise<TokenResponse> — Manually trigger a token refresh.

revoke(): Promise<void> — Revoke tokens server-side and clear local state.

exportTokens(): ExportedTokens — Export current token state for persistence.

importTokens(data: ExportedTokens): void — Restore token state from a previously exported object.

Authenticate using authorization_code + PKCE (no client secret). Use this for browser-based single-page apps that cannot securely store a client secret.

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() });

Parameters

clientId: string — Adobe IMS OAuth client ID.

redirectUri: string — Registered redirect URI.

scopes: string — Space-separated scopes (OAuth 2.0 RFC 6749).

imsBaseUrl: string — IMS base URL for staging/alternative environments. Defaults to production.

fetch: typeof fetch — Custom fetch implementation (for proxy, TLS, etc.).

onTokenRefreshed: OnTokenRefreshed — Optional callback fired after every token refresh.

timeout: number — HTTP request timeout in milliseconds. Defaults to 30000.

maxRetries: number — Maximum retries for transient failures. Defaults to 2.

refreshBuffer: number — Seconds before expiry to trigger proactive refresh. Defaults to 60.

logger: Logger — Logger instance for diagnostic output.

Methods

getToken(): Promise<string> — Return a valid access token, refreshing if necessary.

getAuthorizationUrl({ state }): Promise<AuthorizationUrlResult> — Build the Adobe IMS authorization URL with a PKCE challenge. Returns an AuthorizationUrlResult with url and codeVerifier.

exchangeCode({ code, codeVerifier }): Promise<TokenResponse> — Exchange an authorization code + PKCE verifier for tokens.

refresh(): Promise<TokenResponse> — Manually trigger a token refresh.

revoke(): Promise<void> — Revoke tokens server-side and clear local state.

exportTokens(): ExportedTokens — Export current token state for persistence.

importTokens(data: ExportedTokens): void — Restore token state from a previously exported object.

Authenticate using authorization_code + PKCE for desktop and mobile applications. Shares the same API as SPAAuth; use a custom-scheme redirect URI (e.g. myapp://callback).

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() });

Parameters

clientId: string — Adobe IMS OAuth client ID.

redirectUri: string — Registered redirect URI (custom scheme supported).

scopes: string — Space-separated scopes (OAuth 2.0 RFC 6749).

imsBaseUrl: string — IMS base URL for staging/alternative environments. Defaults to production.

fetch: typeof fetch — Custom fetch implementation (for proxy, TLS, etc.).

onTokenRefreshed: OnTokenRefreshed — Optional callback fired after every token refresh.

timeout: number — HTTP request timeout in milliseconds. Defaults to 30000.

maxRetries: number — Maximum retries for transient failures. Defaults to 2.

refreshBuffer: number — Seconds before expiry to trigger proactive refresh. Defaults to 60.

logger: Logger — Logger instance for diagnostic output.

Methods

Same as SPAAuth: getToken(), getAuthorizationUrl({ state }), exchangeCode({ code, codeVerifier }), refresh(), revoke(), exportTokens(), importTokens(data).

Object returned by SPAAuth.getAuthorizationUrl() and NativeAppAuth.getAuthorizationUrl(). Holds the authorization URL and the PKCE code verifier.

Properties

url: string — The full authorization URL to redirect the user to.

codeVerifier: string — The PKCE code verifier to store and pass to exchangeCode().

Auth Exceptions

All auth errors extend FrameioAuthError and are importable from frameio.

ExceptionDescription
FrameioAuthErrorBase error for all auth-SDK errors.
AuthenticationErrorToken exchange or refresh failed. Has errorCode and errorDescription properties.
TokenExpiredErrorRefresh token is expired; re-authentication is required.
NetworkErrorA network request failed (timeout, connection error, etc.).
RateLimitErrorAdobe IMS returned 429 and retries are exhausted. Has a retryAfter property.
PKCEErrorPKCE verification failed.
ConfigurationErrorRequired configuration is missing or invalid.

Collections

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

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,
});

Parameters

accountId: Frameio.Uuid —

projectId: Frameio.Uuid —

request: Frameio.CollectionsIndexRequest

requestOptions: Collections.RequestOptions

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

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

Parameters

accountId: Frameio.Uuid —

collectionId: Frameio.Uuid —

request: Frameio.CollectionsShowRequest

requestOptions: Collections.RequestOptions

Comments

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

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

Parameters accountId: Frameio.Uuid —

commentId: Frameio.Uuid —

request: Frameio.CommentsShowRequest

requestOptions: Comments.RequestOptions

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

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

Parameters accountId: Frameio.Uuid —

commentId: Frameio.Uuid —

requestOptions: Comments.RequestOptions

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

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!",
},
});

Parameters accountId: Frameio.Uuid —

commentId: Frameio.Uuid —

request: Frameio.UpdateCommentParams

requestOptions: Comments.RequestOptions

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

usage
const response = await client.comments.index(
"b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
"b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
{
timestamp_as_timecode: true,
include: "owner",
sort: "owner_asc",
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", {
timestamp_as_timecode: true,
include: "owner",
sort: "owner_asc",
after: "<opaque_cursor>",
page_size: 10,
include_total_count: false,
});
while (page.hasNextPage()) {
page = page.getNextPage();
}

Parameters accountId: Frameio.Uuid —

fileId: Frameio.Uuid —

request: Frameio.CommentsIndexRequest

requestOptions: Comments.RequestOptions

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

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",
},
});

Parameters accountId: Frameio.Uuid —

fileId: Frameio.Uuid —

request: Frameio.CreateCommentParams

requestOptions: Comments.RequestOptions

Create an attachment for an existing comment.
Rate Limits: 60 calls per 1.00 minute(s) per account_user

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",
},
});

Parameters accountId: Frameio.FrameOrAdobeId —

commentId: Frameio.Uuid —

request: Frameio.CreateAttachmentParams

requestOptions: Comments.RequestOptions

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

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

Parameters accountId: Frameio.FrameOrAdobeId —

commentId: Frameio.Uuid —

attachmentId: Frameio.Uuid —

requestOptions: Comments.RequestOptions

Custom Actions

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

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,
});

Parameters

accountId: Frameio.FrameOrAdobeId —

workspaceId: Frameio.Uuid —

request: Frameio.ActionsIndexRequest

requestOptions: CustomActions.RequestOptions

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

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

Parameters

accountId: Frameio.FrameOrAdobeId —

actionId: Frameio.Uuid —

request: Frameio.ActionsShowRequest

requestOptions: CustomActions.RequestOptions

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

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",
},
});

Parameters

accountId: Frameio.FrameOrAdobeId —

workspaceId: Frameio.Uuid —

request: Frameio.ActionCreateParams

requestOptions: CustomActions.RequestOptions

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

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",
},
});

Parameters

accountId: Frameio.FrameOrAdobeId —

actionId: Frameio.Uuid —

request: Frameio.ActionUpdateParams

requestOptions: CustomActions.RequestOptions

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

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

Parameters

accountId: Frameio.FrameOrAdobeId —

actionId: Frameio.Uuid —

requestOptions: CustomActions.RequestOptions

Files

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

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

Parameters accountId: Frameio.Uuid —

folderId: Frameio.Uuid —

request: Frameio.FilesListRequest

requestOptions: Files.RequestOptions

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
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",
},
});

Parameters accountId: Frameio.Uuid —

folderId: Frameio.Uuid —

request: Frameio.FileCreateParams

requestOptions: Files.RequestOptions

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: 10 calls per 1 second(s) per account_user

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

Parameters accountId: Frameio.Uuid —

folderId: Frameio.Uuid —

request: Frameio.FilesShowRequest

requestOptions: Files.RequestOptions

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

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

Parameters accountId: Frameio.Uuid —

fileId: Frameio.Uuid —

requestOptions: Files.RequestOptions

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

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

Parameters accountId: Frameio.Uuid —

fileId: Frameio.Uuid —

request: Frameio.FileUpdateParams

requestOptions: Files.RequestOptions

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

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",
},
});

Parameters accountId: Frameio.Uuid —

fileId: Frameio.Uuid —

request: Frameio.FileCopyParams

requestOptions: Files.RequestOptions

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

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",
},
});

Parameters accountId: Frameio.Uuid —

folderId: Frameio.Uuid —

request: Frameio.FileCreateRemoteUploadParams

requestOptions: Files.RequestOptions

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

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

Parameters accountId: Frameio.Uuid —

fileId: Frameio.Uuid —

request: Frameio.FileMoveParams

requestOptions: Files.RequestOptions

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

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

Parameters accountId: Frameio.Uuid —

folderId: Frameio.Uuid —

request: Frameio.FileCreateLocalUploadParams

requestOptions: Files.RequestOptions

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

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

Parameters accountId: Frameio.Uuid —

fileId: Frameio.Uuid —

requestOptions: Files.RequestOptions

Import a file from a storage location configured on the account.
Rate Limits: 5 calls per 1 second(s) per account_user

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",
},
});

Parameters accountId: Frameio.FrameOrAdobeId —

folderId: Frameio.FrameOrAdobeId —

request: Frameio.FileImportParams

requestOptions: Files.RequestOptions

Folder Permissions

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

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,
});

Parameters

accountId: Frameio.Uuid —

folderId: Frameio.Uuid —

request: Frameio.FolderUserRolesIndexRequest

requestOptions: FolderPermissions.RequestOptions

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

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

Parameters

accountId: Frameio.Uuid —

folderId: Frameio.Uuid —

userId: Frameio.Uuid —

request: Frameio.UpdateUserRolesParams

requestOptions: FolderPermissions.RequestOptions

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

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

Parameters

accountId: Frameio.Uuid —

folderId: Frameio.Uuid —

userId: Frameio.Uuid —

requestOptions: FolderPermissions.RequestOptions

Folders

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

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

Parameters

accountId: Frameio.Uuid —

projectId: Frameio.Uuid —

request: Frameio.FoldersShowRequest

requestOptions: Folders.RequestOptions

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

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

Parameters

accountId: Frameio.Uuid —

folderId: Frameio.Uuid —

requestOptions: Folders.RequestOptions

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

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

Parameters

accountId: Frameio.Uuid —

folderId: Frameio.Uuid —

request: Frameio.FolderUpdateParams

requestOptions: Folders.RequestOptions

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
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,
});

Parameters

accountId: Frameio.Uuid —

folderId: Frameio.Uuid —

request: Frameio.FolderIndexRequest

requestOptions: Folders.RequestOptions

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

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",
},
});

Parameters

accountId: Frameio.Uuid —

folderId: Frameio.Uuid —

request: Frameio.FolderCopyParams

requestOptions: Folders.RequestOptions

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

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,
});

Parameters

accountId: Frameio.Uuid —

folderId: Frameio.Uuid —

request: Frameio.FoldersListRequest

requestOptions: Folders.RequestOptions

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

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

Parameters

accountId: Frameio.Uuid —

folderId: Frameio.Uuid —

request: Frameio.FolderCreateParams

requestOptions: Folders.RequestOptions

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

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

Parameters

accountId: Frameio.Uuid —

folderId: Frameio.Uuid —

request: Frameio.FolderMoveParams

requestOptions: Folders.RequestOptions

Groups

List groups in account.
Rate Limits: 100 calls per 1.00 minute(s) per account_user

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,
});

Parameters

accountId: Frameio.FrameOrAdobeId —

request: Frameio.GroupsIndexRequest

requestOptions: Groups.RequestOptions

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

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

Parameters

accountId: Frameio.FrameOrAdobeId —

groupId: Frameio.Uuid —

request: Frameio.GroupsShowRequest

requestOptions: Groups.RequestOptions

Create group for the current account.
Rate Limits: 10 calls per 1.00 minute(s) per account_user

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

Parameters

accountId: Frameio.FrameOrAdobeId —

request: Frameio.CreateGroupParams

requestOptions: Groups.RequestOptions

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

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

Parameters

accountId: Frameio.FrameOrAdobeId —

groupId: Frameio.Uuid —

request: Frameio.UpdateGroupParams

requestOptions: Groups.RequestOptions

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
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",
},
],
},
],
},
});

Parameters accountId: Frameio.Uuid —

projectId: Frameio.Uuid —

request: Frameio.BulkUpdateMetadataParams

requestOptions: Metadata.RequestOptions

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

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

Parameters accountId: Frameio.Uuid —

fileId: Frameio.Uuid —

request: Frameio.MetadataShowRequest

requestOptions: Metadata.RequestOptions

Metadata Fields

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

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

Parameters

accountId: Frameio.Uuid —

fieldDefinitionId: Frameio.Uuid —

requestOptions: MetadataFields.RequestOptions

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

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",
},
},
);

Parameters

accountId: Frameio.Uuid` —

fieldDefinitionId: Frameio.Uuid —

request: Frameio.UpdateFieldDefinitionParams

requestOptions: MetadataFields.RequestOptions

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

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

Parameters

accountId: Frameio.Uuid —

request: Frameio.MetadataFieldDefinitionsIndexRequest

requestOptions: MetadataFields.RequestOptions

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

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",
},
});

Parameters

accountId: Frameio.Uuid —

request: Frameio.CreateFieldDefinitionParams

requestOptions: MetadataFields.RequestOptions

Project Permissions

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

usage
const response = await client.projectPermissions.index(
"b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
"b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
{
include_deactivated: true,
sort: "role_asc",
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,
sort: "role_asc",
after: "<opaque_cursor>",
page_size: 10,
include_total_count: false,
},
);
while (page.hasNextPage()) {
page = page.getNextPage();
}

Parameters

accountId: Frameio.Uuid —

projectId: Frameio.Uuid —

request: Frameio.ProjectPermissionsIndexRequest

requestOptions: ProjectPermissions.RequestOptions

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

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

Parameters

accountId: Frameio.Uuid` —

projectId: Frameio.Uuid —

userId: Frameio.Uuid —

requestOptions: ProjectPermissions.RequestOptions

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
await client.projectPermissions.projectUserRolesUpdate(
"b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
"b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
"b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
{
data: {
role: "editor",
},
},
);

Parameters

accountId: Frameio.Uuid —

projectId: Frameio.Uuid —

UserId: Frameio.Uuid —

request: Frameio.UpdateUserRolesParams

requestOptions: ProjectPermissions.RequestOptions

Projects

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

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

Parameters

accountId: Frameio.Uuid —

projectId: Frameio.Uuid —

request: Frameio.ProjectsShowRequest

requestOptions: Projects.RequestOptions

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

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

Parameters

accountId: Frameio.Uuid` —

projectId: Frameio.Uuid —

requestOptions: Projects.RequestOptions

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

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

Parameters

accountId: Frameio.Uuid —

projectId: Frameio.Uuid —

request: Frameio.ProjectUpdateParams

requestOptions: Projects.RequestOptions

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

usage
const response = await client.projects.index(
"b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
"b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
{
include: "owner",
sort: "name_asc",
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",
sort: "name_asc",
after: "<opaque_cursor>",
page_size: 10,
include_total_count: false,
});
while (page.hasNextPage()) {
page = page.getNextPage();
}

Parameters

accountId: Frameio.Uuid —

workspaceId: Frameio.Uuid —

request: Frameio.ProjectsIndexRequest

requestOptions: Projects.RequestOptions

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

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

Parameters

accountId: Frameio.Uuid —

workspaceId: Frameio.Uuid —

request: Frameio.ProjectsParams

requestOptions: Projects.RequestOptions

List all projects the authenticated user has access to within the specified account.
Rate Limits: 100 calls per 1.00 minute(s) per account_user

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,
});

Parameters

accountId: Frameio.FrameOrAdobeId —

request: Frameio.AccountProjectsIndexRequest

requestOptions: Projects.RequestOptions

List projects that the current user has been invited to within the specified account, but does not have workspace-level access to. These are projects where the user has project-specific collaborator access without broader team/workspace permissions.
Rate Limits: 100 calls per 1.00 minute(s) per account_user

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,
});

Parameters

accountId: Frameio.FrameOrAdobeId —

request: Frameio.InvitedProjectsIndexRequest

requestOptions: Projects.RequestOptions

Search across assets, folders, and projects within an account.
Rate Limits: 100 calls per 1.00 minute(s) per account_user

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,
});

Parameters

accountId: Frameio.Uuid —

request: Frameio.SearchParams

requestOptions: Search.RequestOptions

Shares

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

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

Parameters accountId: Frameio.Uuid —

shareId: Frameio.Uuid —

requestOptions: Shares.RequestOptions

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

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

Parameters accountId: Frameio.Uuid —

shareId: Frameio.Uuid —

requestOptions: Shares.RequestOptions

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

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(*",
},
});

Parameters accountId: Frameio.Uuid —

shareId: Frameio.Uuid —

request: Frameio.UpdateShareParams

requestOptions: Shares.RequestOptions

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

usage
const response = await client.shares.listReviewers(
"b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
"b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
{
sort: "name_asc",
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",
{
sort: "name_asc",
after: "<opaque_cursor>",
page_size: 10,
include_total_count: false,
},
);
while (page.hasNextPage()) {
page = page.getNextPage();
}

Parameters accountId: Frameio.Uuid —

shareId: Frameio.Uuid —

request: Frameio.SharesListReviewersRequestreParams

requestOptions: Shares.RequestOptions

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
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"],
},
},
});

Parameters accountId: Frameio.Uuid —

shareId: Frameio.Uuid —

request: Frameio.AddReviewersToShareParams

requestOptions: Shares.RequestOptions

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
await client.shares.removeReviewers("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
data: {
reviewers: {
adobe_user_ids: ["2A3C1A3D66C621B20A494021@176719f5667c82b4499999.e"],
},
},
});

Parameters accountId: Frameio.Uuid —

shareId: Frameio.Uuid —

request: Frameio.RemoveReviewerParams

requestOptions: Shares.RequestOptions

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

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

Parameters accountId: Frameio.Uuid —

shareId: Frameio.Uuid —

assetId: Frameio.Uuid —

requestOptions: Shares.RequestOptions

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

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

Parameters accountId: Frameio.Uuid —

shareId: Frameio.Uuid —

request: Frameio.AddAssetParams

requestOptions: Shares.RequestOptions

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

usage
const response = await client.shares.index(
"b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
"b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
{
sort: "name_asc",
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", {
sort: "name_asc",
after: "<opaque_cursor>",
page_size: 10,
include_total_count: false,
});
while (page.hasNextPage()) {
page = page.getNextPage();
}

Parameters accountId: Frameio.Uuid —

shareId: Frameio.Uuid —

request: Frameio.SharesIndexRequest

requestOptions: Shares.RequestOptions

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

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(*",
},
});

Parameters accountId: Frameio.Uuid —

projectId: Frameio.Uuid —

request: Frameio.CreateShareParams

requestOptions: Shares.RequestOptions

Users

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

usage
await client.users.show();

Parameters requestOptions: Users.RequestOptions

Version Stacks

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
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,
});

Parameters

accountId: Frameio.Uuid —

projectId: Frameio.Uuid —

request: Frameio.VersionStacksIndexRequest

requestOptions: VersionStacks.RequestOptions

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

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

Parameters

accountId: Frameio.Uuid —

versionStackId: Frameio.Uuid —

request: Frameio.VersionStacksShowRequest

requestOptions: VersionStacks.RequestOptions

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

Currently, copying version stacks between Adobe storage backed projects is not supported. Copying individual files within a version stack and then restacking them is currently the supported method for copying version stacks for these projects.

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",
},
});

Parameters

accountId: Frameio.Uuid —

versionStackId: Frameio.Uuid —

request: Frameio.VersionStackCopyParams

requestOptions: VersionStacks.RequestOptions

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

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,
});

Parameters

accountId: Frameio.Uuid —

folderId: Frameio.Uuid —

request: Frameio.VersionStacksListRequest

requestOptions: VersionStacks.RequestOptions

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

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"],
},
});

Parameters

accountId: Frameio.Uuid —

folderId: Frameio.Uuid —

request: Frameio.VersionStackCreateParams

requestOptions: VersionStacks.RequestOptions

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

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

Parameters

accountId: Frameio.Uuid —

folderId: Frameio.Uuid —

request: Frameio.VersionStackMoveParams

requestOptions: VersionStacks.RequestOptions

Webhooks

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

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();
}

Parameters accountId: Frameio.Uuid —

workspaceId: Frameio.Uuid —

request: Frameio.WebhooksIndexRequest

requestOptions: Webhooks.RequestOptions

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_user

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",
},
});

Parameters accountId: Frameio.Uuid —

workspaceId: Frameio.Uuid —

request: Frameio.WebhookCreateParams

requestOptions: Webhooks.RequestOptions

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

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

Parameters accountId: Frameio.Uuid —

webhookId: Frameio.Uuid —

request: Frameio.WebhooksShowRequest

requestOptions: Webhooks.RequestOptions

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

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

Parameters accountId: Frameio.Uuid —

webhookId: Frameio.Uuid —

requestOptions: Webhooks.RequestOptions

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

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",
},
});

Parameters accountId: Frameio.Uuid —

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

requestOptions: Webhooks.RequestOptions

Workspace Permissions

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

usage
const response = await client.workspacePermissions.index(
"b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
"b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
{
include_deactivated: true,
sort: "role_asc",
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,
sort: "role_asc",
after: "<opaque_cursor>",
page_size: 10,
include_total_count: false,
},
);
while (page.hasNextPage()) {
page = page.getNextPage();
}

Parameters accountId: Frameio.Uuid —

workspaceId: Frameio.Uuid —

request: Frameio.WorkspacePermissionsIndexRequest

requestOptions: WorkspacePermissions.RequestOptions

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

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

Parameters accountId: Frameio.Uuid —

workspaceId: Frameio.Uuid —

userId: Frameio.Uuid —

requestOptions: WorkspacePermissions.RequestOptions

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
await client.workspacePermissions.workspaceUserRolesUpdate(
"b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
"b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
"b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
{
data: {
role: "editor",
},
},
);

Parameters accountId: Frameio.Uuid —

workspaceId: Frameio.Uuid —

userId: Frameio.Uuid —

request: Frameio.UpdateUserRolesParams

requestOptions: WorkspacePermissions.RequestOptions

Workspaces

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

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

Parameters accountId: Frameio.Uuid —

workspaceId: Frameio.Uuid —

request: Frameio.WorkspacesShowRequest

requestOptions: Workspaces.RequestOptions

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

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

Parameters accountId: Frameio.Uuid —

workspaceId: Frameio.Uuid —

requestOptions: Workspaces.RequestOptions

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

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

Parameters accountId: Frameio.Uuid —

workspaceId: Frameio.Uuid —

request: Frameio.WorkspaceParams

requestOptions: Workspaces.RequestOptions

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

usage
const response = await client.workspaces.index("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
include: "creator",
sort: "name_asc",
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",
sort: "name_asc",
after: "<opaque_cursor>",
page_size: 10,
include_total_count: false,
});
while (page.hasNextPage()) {
page = page.getNextPage();
}

Parameters accountId: Frameio.Uuid —

request: Frameio.WorkspacesIndexRequest

requestOptions: Workspaces.RequestOptions

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

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

Parameters accountId: Frameio.Uuid —

request: Frameio.WorkspaceParams

requestOptions: Workspaces.RequestOptions


npm

View on npm