> This page is for Piattaforma, version V4 (default).
> For other versions, use one of these documentation indexes:
> - V4 (default): https://next.developer.frame.io/platform/v4/llms.txt
> - V4 sperimentale: https://next.developer.frame.io/platform/v4-experimental/llms.txt
> - Versione precedente: https://next.developer.frame.io/platform/v2/llms.txt

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

# Riferimento SDK TypeScript

---

### Installazione

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

---

### Utilizzo

Crea un'istanza e utilizza il client con quanto segue:

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

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

---

### Tipi di richiesta e risposta

L'SDK esporta tutti i tipi di richiesta e risposta come interfacce TypeScript. È sufficiente importarli con il seguente spazio dei nomi:

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

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

---

### Gestione delle eccezioni

Quando l'API restituisce un codice di stato diverso da quello di successo (risposta 4xx o 5xx), viene generata una sottoclasse del seguente errore.

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

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

---

### Avanzate

#### Intestazioni aggiuntive

Per inviare intestazioni aggiuntive come parte della richiesta, utilizza l'opzione di richiesta headers.

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

#### Parametri aggiuntivi della stringa di richiesta

Per inviare parametri aggiuntivi della stringa come parte della richiesta, utilizza l'opzione di richiesta queryParams.

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

---

#### Nuovi tentativi

L'SDK può eseguire nuovi tentativi automatici con backoff esponenziale. Una richiesta viene ripetuta finché è considerata ripetibile e il numero di tentativi non supera il limite configurato (predefinito: 2).

Una richiesta è considerata ripetibile quando viene restituito uno dei seguenti codici di stato HTTP:

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

\
&#x20;Utilizza l'opzione di richiesta `maxRetries` per configurare questo comportamento.

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

---

#### Timeout

L'SDK utilizza per impostazione predefinita un timeout di 60 secondi. Usa l'opzione timeoutInSeconds per configurare questo comportamento.

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

#### Annullamento delle richieste

L'SDK consente agli utenti di annullare le richieste in qualsiasi momento passando un segnale di annullamento (abort).

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

---

#### Accesso ai dati di risposta non elaborati

L'SDK consente di accedere ai dati di risposta non elaborati, comprese le intestazioni, tramite il metodo `.withRawResponse()`. Il metodo `.withRawResponse()` restituisce una promessa che genera un oggetto con un valore `data` e una proprietà `rawResponse`.

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

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

#### Compatibilità dei runtime

L'SDK funziona nei seguenti runtime:

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

---

#### Personalizzazione del client di recupero

L'SDK consente di personalizzare il client HTTP sottostante e la funzione di recupero (Fetch). Se stai lavorando in un ambiente non supportato, questo ti permette di intervenire e garantire il funzionamento dell'SDK.

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

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

---

### Riferimento

#### Autorizzazioni account

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

Elenca i ruoli utente per un account specifico.

Limiti di frequenza: 100 chiamate ogni 1,00 minuto per account\_user

**`usage`**

```ts usage

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

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

```

**Parametri**

`accountId`: `Frameio.Uuid` —

`request`: `Frameio.AccountPermissionsIndexRequest`

`requestOptions`: `AccountPermissions.RequestOptions`

#### Account

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

Elenca gli account per l'utente corrente.

Limiti di frequenza: 100 chiamate ogni 1,00 minuto per account\_user

**`usage`**

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

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

```

**Parametri**

`request`: `Frameio.AccountsIndexRequest`

`requestOptions`: `Accounts.RequestOptions`

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

Elenca i registri di controllo con alcune funzionalità di filtro tramite parametri di query.

Limiti di frequenza: 100 chiamate ogni 1,00 minuto per account\_user

**`usage`**

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

**Parametri**

`accountId`: `Frameio.FrameOrAdobeId` —

`request`: `Frameio.AuditlogIndexRequest`

`requestOptions`: `Accounts.RequestOptions`

#### Autenticazione

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

Autenticati utilizzando la concessione `client_credentials` OAuth 2.0. Questo flusso non coinvolge un utente e non restituisce un token di aggiornamento. Quando il token di accesso scade, l'SDK ne richiede automaticamente uno nuovo utilizzando le credenziali client.

**`usage`**

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

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

**Parametri**

`clientId`: `string` — ID cliente OAuth di Adobe IMS.

`clientSecret`: `string` — Secret del client OAuth di Adobe IMS.

`scopes`: `string` — Ambiti separati da spazi (OAuth 2.0 RFC 6749). Per impostazione predefinita, vengono impostati gli ambiti da server a server.

`imsBaseUrl`: `string` — URL di base IMS per ambienti temporanei/alternativi. Il valore predefinito è production.

`fetch`: `typeof fetch` — Implementazione fetch personalizzata (per proxy, TLS, ecc.).

`onTokenRefreshed`: `OnTokenRefreshed` — Callback opzionale attivato dopo ogni recupero di token.

`timeout`: `number` — Timeout della richiesta HTTP in secondi. Il valore predefinito è 30000.

`maxRetries`: `number` — Numero massimo di nuovi tentativi per errori transitori. Il valore predefinito è 2.

`refreshBuffer`: `number` — Secondi prima della scadenza per attivare l'aggiornamento proattivo. Il valore predefinito è 60.

`logger`: `Logger` — Istanza logger per l'output diagnostico. **Metodi** `getToken(): Promessa<string></string>` — Restituisce un token di accesso valido, aggiornandolo se necessario.. Passalo al client: `new FrameioClient({ token: () => auth.getToken() })`. `authenticate(): Promessa<tokenresponse></tokenresponse>` — Recupera esplicitamente un nuovo token di accesso. `revoke(): Promessa<void></void>` — Revoca i token lato server e cancella lo stato locale. `exportTokens(): ExportedTokens` — Esporta lo stato del token corrente per la persistenza. `importTokens(data: ExportedTokens): void` — Ripristina lo stato del token da un oggetto esportato in precedenza.

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

Autenticati utilizzando la concessione `authorization_code` OAuth 2.0.Usa questo metodo per applicazioni sul lato server che possono archiviare in modo sicuro un secret del client.

**`usage`**

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

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

**Parametri**

`clientId`: `string` — ID cliente OAuth di Adobe IMS.

`clientSecret`: `string` — Secret del client OAuth di Adobe IMS.

`redirectUri`: `string` — URI di reindirizzamento registrato.

`scopes`: `string` — Ambiti separati da spazi (OAuth 2.0 RFC 6749).

`imsBaseUrl`: `string` — URL di base IMS per ambienti temporanei/alternativi.Il valore predefinito è production.

`fetch`: `typeof fetch` — Implementazione fetch personalizzata (per proxy, TLS, ecc.).

`onTokenRefreshed`: `OnTokenRefreshed` — Callback opzionale attivato dopo ogni aggiornamento di token.

`timeout`: `number` — Timeout della richiesta HTTP in secondi.Il valore predefinito è 30000.

`maxRetries`: `number` — Numero massimo di nuovi tentativi per errori transitori.Il valore predefinito è 2.

`refreshBuffer`: `number` — Secondi prima della scadenza per attivare l'aggiornamento proattivo.Il valore predefinito è 60.

`logger`: `Logger` — Istanza logger per l'output diagnostico.**Metodi** `getToken(): Promessa<string></string>` — Restituisce un token di accesso valido, aggiornandolo se necessario..`getAuthorizationUrl({ state }): string` — Crea l'URL di autorizzazione di Adobe IMS. Passa un valore CSRF/state opaco che sarà restituito. `exchangeCode(code: string): Promessa<tokenresponse></tokenresponse>` - Scambia un codice di autorizzazione per accedere e aggiornare i token. `refresh(): Promessa<tokenresponse></tokenresponse>` — Attivare manualmente l'aggiornamento di un token. `revoke(): Promessa<void></void>` — Revoca i token lato server e cancella lo stato locale.`exportTokens(): ExportedTokens` — Esporta lo stato del token corrente per la persistenza.`importTokens(data: ExportedTokens): void` — Ripristina lo stato del token da un oggetto esportato in precedenza.

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

Autenticati utilizzando `authorization_code` + PKCE (senza secret del client).Utilizza questa opzione per app a singola pagina basate su browser che non possono archiviare in sicurezza un secret del client.

**`usage`**

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

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

**Parametri**

`clientId`: `string` — ID cliente OAuth di Adobe IMS.

`redirectUri`: `string` — URI di reindirizzamento registrato.

`scopes`: `string` — Ambiti separati da spazi (OAuth 2.0 RFC 6749).

`imsBaseUrl`: `string` — URL di base IMS per ambienti temporanei/alternativi.Il valore predefinito è production.

`fetch`: `typeof fetch` — Implementazione fetch personalizzata (per proxy, TLS, ecc.).

`onTokenRefreshed`: `OnTokenRefreshed` — Callback opzionale attivato dopo ogni aggiornamento di token.

`timeout`: `number` — Timeout della richiesta HTTP in secondi.Il valore predefinito è 30000.

`maxRetries`: `number` — Numero massimo di nuovi tentativi per errori transitori.Il valore predefinito è 2.

`refreshBuffer`: `number` — Secondi prima della scadenza per attivare l'aggiornamento proattivo.Il valore predefinito è 60.

`logger`: `Logger` — Istanza logger per l'output diagnostico.**Metodi** `getToken(): Promessa<string></string>` — Restituisce un token di accesso valido, aggiornandolo se necessario..`getAuthorizationUrl({ state }): Promessa<authorizationurlresult></authorizationurlresult>` — Crea l'URL di autorizzazione di Adobe IMS con una challenge PKCE. Restituisce un `AuthorizationUrlResult` con `url` e `codeVerifier`. `exchangeCode({ code, codeVerifier }): Promessa<tokenresponse></tokenresponse>` — Scambia un codice di autorizzazione + verifica PKCE con i token. `refresh(): Promessa<tokenresponse></tokenresponse>` — Attivare manualmente l'aggiornamento di un token.`revoke(): Promessa<void></void>` — Revoca i token lato server e cancella lo stato locale.`exportTokens(): ExportedTokens` — Esporta lo stato del token corrente per la persistenza.`importTokens(data: ExportedTokens): void` — Ripristina lo stato del token da un oggetto esportato in precedenza.

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

Autenticati usando `authorization_code` + PKCE per applicazioni desktop e mobili. Condivide la stessa API di `SPAAuth`; usa un URI di reindirizzamento con schema personalizzato (ad es. `myapp://callback`).

**`usage`**

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

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

**Parametri**

`clientId`: `string` — ID cliente OAuth di Adobe IMS.

`redirectUri`: `string` — URI di reindirizzamento registrato (schema personalizzato supportato).

`scopes`: `string` — Ambiti separati da spazi (OAuth 2.0 RFC 6749).

`imsBaseUrl`: `string` — URL di base IMS per ambienti temporanei/alternativi.Il valore predefinito è production.

`fetch`: `typeof fetch` — Implementazione fetch personalizzata (per proxy, TLS, ecc.).

`onTokenRefreshed`: `OnTokenRefreshed` — Callback opzionale attivato dopo ogni aggiornamento di token.

`timeout`: `number` — Timeout della richiesta HTTP in secondi.Il valore predefinito è 30000.

`maxRetries`: `number` — Numero massimo di nuovi tentativi per errori transitori.Il valore predefinito è 2.

`refreshBuffer`: `number` — Secondi prima della scadenza per attivare l'aggiornamento proattivo.Il valore predefinito è 60.

`logger`: `Logger` — Istanza logger per l'output diagnostico.**Metodi** come `SPAAuth`: `getToken()`, `getAuthorizationUrl({ state })`, `exchangeCode({ code, codeVerifier })`, `refresh()`, `revoke()`, `exportTokens()`, `importTokens(data)`.

#### AuthorizationUrlResult

Oggetto restituito da `SPAAuth.getAuthorizationUrl()` e `NativeAppAuth.getAuthorizationUrl()`. Contiene l'URL di autorizzazione e il verificatore del codice PKCE. **Proprietà** `url`: `string` — L'URL di autorizzazione completo verso cui reindirizzare l'utente. `codeVerifier`: `string` — Il verificatore del codice PKCE da memorizzare e passare a `exchangeCode()`.

#### Eccezioni di autenticazione

Tutti gli errori di autenticazione estendono `FrameioAuthError` e sono importabili da `frameio`.

| Eccezione             | Descrizione                                                                                             |
| --------------------- | ------------------------------------------------------------------------------------------------------- |
| `FrameioAuthError`    | Errore di base per tutti gli errori dell'SDK di autenticazione.                                         |
| `AuthenticationError` | Scambio o aggiornamento del token non riuscito. Ha le proprietà `errorCode` ed `errorDescription`.      |
| `TokenExpiredError`   | Il token di aggiornamento è scaduto; è richiesta una nuova autenticazione.                              |
| `NetworkError`        | Una richiesta di rete non riuscita (timeout, errore di connessione ecc.).                               |
| `RateLimitError`      | Adobe IMS ha restituito un errore 429 e i nuovi tentativi sono esauriti. Ha una proprietà `retryAfter`. |
| `PKCEError`           | Verifica PKCE non riuscita.                                                                             |
| `ConfigurationError`  | La configurazione richiesta è mancante o non valida.                                                    |

#### Raccolte

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

Elenca le raccolte per un progetto.

Limiti di frequenza: 100 chiamate ogni 1,00 minuto per account\_user

**`usage`**

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

**Parametri**

`accountId`: `Frameio.Uuid` —

`projectId`: `Frameio.Uuid` —

`request`: `Frameio.CollectionsIndexRequest`

`requestOptions`: `Collections.RequestOptions`

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

Mostra i dettagli della raccolta.

Limiti di frequenza: 100 chiamate ogni 1,00 minuto per account\_user

**`usage`**

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

**Parametri**

`accountId`: `Frameio.Uuid` —

`collectionId`: `Frameio.Uuid` —

`request`: `Frameio.CollectionsShowRequest`

`requestOptions`: `Collections.RequestOptions`

#### Commenti

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

Visualizza un singolo commento su un file.

Limiti di frequenza: 100 chiamate ogni 1,00 minuto per account\_user

**`usage`**

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

```

**Parametri**

`accountId`: `Frameio.Uuid` —

`commentId`: `Frameio.Uuid` —

`request`: `Frameio.CommentsShowRequest`

`requestOptions`: `Comments.RequestOptions`

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

Elimina il commento da una risorsa.

Limiti di frequenza: 60 chiamate ogni 1,00 minuto per account\_user

**`usage`**

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

```

**Parametri**

`accountId`: `Frameio.Uuid` —

`commentId`: `Frameio.Uuid` —

`requestOptions`: `Comments.RequestOptions`

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

Aggiorna il commento sulla risorsa specificata.

Limiti di frequenza: 10 chiamate ogni 1,00 minuto per account\_user

**`usage`**

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

**Parametri**

`accountId`: `Frameio.Uuid` —

`commentId`: `Frameio.Uuid` —

`request`: `Frameio.UpdateCommentParams`

`requestOptions`: `Comments.RequestOptions`

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

Elenca i commenti sulla risorsa specificata.

Limiti di frequenza: 100 chiamate ogni 1,00 minuto per account\_user

**`usage`**

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

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

**Parametri**

`accountId`: `Frameio.Uuid` —

`fileId`: `Frameio.Uuid` —

`request`: `Frameio.CommentsIndexRequest`

`requestOptions`: `Comments.RequestOptions`

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

Crea un commento su un file.

Limiti di frequenza: 100 chiamate ogni 1,00 minuto per account\_user

**`usage`**

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

**Parametri**

`accountId`: `Frameio.Uuid` —

`fileId`: `Frameio.Uuid` —

`request`: `Frameio.CreateCommentParams`

`requestOptions`: `Comments.RequestOptions`

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

Crea un allegato per un commento esistente.

Limiti di frequenza: 60 chiamate ogni 1,00 minuto per account\_user

**`usage`**

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

**Parametri**

`accountId`: `Frameio.FrameOrAdobeId` —

`commentId`: `Frameio.Uuid` —

`request`: `Frameio.CreateAttachmentParams`

`requestOptions`: `Comments.RequestOptions`

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

Elimina un allegato da un commento.

Limiti di frequenza: 60 chiamate ogni 1,00 minuto per account\_user

**`usage`**

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

**Parametri**

`accountId`: `Frameio.FrameOrAdobeId` —

`commentId`: `Frameio.Uuid` —

`attachmentId`: `Frameio.Uuid` —

`requestOptions`: `Comments.RequestOptions`

#### Azioni personalizzate

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

Elenca le azioni in un'area di lavoro specifica.

Limiti di frequenza: 100 chiamate ogni 1,00 minuto per account\_user

**`usage`**

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

**Parametri**

`accountId`: `Frameio.FrameOrAdobeId` —

`workspaceId`: `Frameio.Uuid` —

`request`: `Frameio.ActionsIndexRequest`

`requestOptions`: `CustomActions.RequestOptions`

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

Mostra i dettagli dell’azione personalizzata.

Limiti di frequenza: 100 chiamate ogni 1,00 minuto per account\_user

**`usage`**

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

**Parametri**

`accountId`: `Frameio.FrameOrAdobeId` —

`actionId`: `Frameio.Uuid` —

`request`: `Frameio.ActionsShowRequest`

`requestOptions`: `CustomActions.RequestOptions`

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

Crea un'azione personalizzata in un'area di lavoro.

Limiti di frequenza: 10 chiamate ogni 1,00 minuto per account\_user

**`usage`**

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

**Parametri**

`accountId`: `Frameio.FrameOrAdobeId` —

`workspaceId`: `Frameio.Uuid` —

`request`: `Frameio.ActionCreateParams`

`requestOptions`: `CustomActions.RequestOptions`

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

Aggiorna i dettagli dell’azione personalizzata.

Limiti di frequenza: 10 chiamate ogni 1,00 minuto per account\_user

**`usage`**

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

**Parametri**

`accountId`: `Frameio.FrameOrAdobeId` —

`actionId`: `Frameio.Uuid` —

`request`: `Frameio.ActionUpdateParams`

`requestOptions`: `CustomActions.RequestOptions`

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

Elimina un'azione personalizzata.

Limiti di frequenza: 60 chiamate ogni 1,00 minuto per account\_user

**`usage`**

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

**Parametri**

`accountId`: `Frameio.FrameOrAdobeId` —

`actionId`: `Frameio.Uuid` —

`requestOptions`: `CustomActions.RequestOptions`

#### File

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

Elenca i file in una cartella specifica.

Limiti di frequenza: 5 chiamate ogni 1 secondo per account\_user

**`usage`**

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

**Parametri**

`accountId`: `Frameio.Uuid` —

`folderId`: `Frameio.Uuid` —

`request`: `Frameio.FilesListRequest`

`requestOptions`: `Files.RequestOptions`

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

Crea un nuovo file nella cartella padre.`Create file (local upload)` e `Create file (remote upload)` hanno sostituito questo endpoint.

Limiti di frequenza: 5 chiamate ogni 1 secondo per account\_user

**`usage`**

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

**Parametri**

`accountId`: `Frameio.Uuid` —

`folderId`: `Frameio.Uuid` —

`request`: `Frameio.FileCreateParams`

`requestOptions`: `Files.RequestOptions`

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

Mostra i dettagli del file.

Usa il parametro di query "include" della richiesta per includere in modo selettivo proprietà aggiuntive nella risposta.

> **Note**
>
> Se includi `media_links.original` e l'utente non ha l'autorizzazione per scaricare il file, questo endpoint risponderà con un errore `403 Forbidden`.Se il contenuto non è accessibile perché è richiesta la filigrana per questo utente e non è supportata dai media\_link richiesti, la richiesta avrà esito positivo, ma i link multimediali non supportati saranno impostati su null. Allo stesso modo, se un link di transcodifica richiesto non esiste per un file particolare (ad esempio includendo `media_links.video_h264_180` su un file di immagine statica) o se il processo di transcodifica non è stato completato (ovvero lo stato del file è "uploaded" invece di "transcoded"), anche il link sarà impostato su null nel payload di risposta. In breve, il client deve gestire i link multimediali null in modo appropriato.

Limiti di frequenza: 5 chiamate ogni 1 secondo per account\_user

**`usage`**

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

**Parametri**

`accountId`: `Frameio.Uuid` —

`folderId`: `Frameio.Uuid` —

`request`: `Frameio.FilesShowRequest`

`requestOptions`: `Files.RequestOptions`

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

Elimina il file in base all'ID.

Limiti di frequenza: 100 chiamate ogni 1,00 minuto per account\_user

**`usage`**

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

**Parametri**

`accountId`: `Frameio.Uuid` —

`fileId`: `Frameio.Uuid` —

`requestOptions`: `Files.RequestOptions`

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

Aggiorna i dettagli del file.

Limiti di frequenza: 100 chiamate ogni 1,00 minuto per account\_user

**`usage`**

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

**Parametri**

`accountId`: `Frameio.Uuid` —

`fileId`: `Frameio.Uuid` —

`request`: `Frameio.FileUpdateParams`

`requestOptions`: `Files.RequestOptions`

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

Copia il file.

Limiti di frequenza: 100 chiamate ogni 1,00 minuto per account\_user

**`usage`**

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

**Parametri**

`accountId`: `Frameio.Uuid` —

`fileId`: `Frameio.Uuid` —

`request`: `Frameio.FileCopyParams`

`requestOptions`: `Files.RequestOptions`

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

Crea un nuovo file nella cartella padre tramite caricamento remoto.

Limiti di frequenza: 5 chiamate ogni 1 secondo per account\_user

**`usage`**

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

**Parametri**

`accountId`: `Frameio.Uuid` —

`folderId`: `Frameio.Uuid` —

`request`: `Frameio.FileCreateRemoteUploadParams`

`requestOptions`: `Files.RequestOptions`

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

Sposta il file in una cartella o in uno stack di versioni.

Limiti di frequenza: 100 chiamate ogni 1,00 minuto per account\_user

**`usage`**

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

**Parametri**

`accountId`: `Frameio.Uuid` —

`fileId`: `Frameio.Uuid` —

`request`: `Frameio.FileMoveParams`

`requestOptions`: `Files.RequestOptions`

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

Crea un nuovo file nella cartella padre tramite caricamento locale.

Limiti di frequenza: 5 chiamate ogni 1 secondo per account\_user

**`usage`**

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

**Parametri**

`accountId`: `Frameio.Uuid` —

`folderId`: `Frameio.Uuid` —

`request`: `Frameio.FileCreateLocalUploadParams`

`requestOptions`: `Files.RequestOptions`

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

Mostra i dettagli dello stato di caricamento del file.

Limiti di frequenza: 5 chiamate ogni 1 secondo per account\_user

**`usage`**

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

**Parametri**

`accountId`: `Frameio.Uuid` —

`fileId`: `Frameio.Uuid` —

`requestOptions`: `Files.RequestOptions`

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

Importa un file da una posizione di archiviazione configurata sull'account.

Limiti di frequenza: 5 chiamate ogni 1 secondo per account\_user

**`usage`**

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

**Parametri**

`accountId`: `Frameio.FrameOrAdobeId` —

`folderId`: `Frameio.FrameOrAdobeId` —

`request`: `Frameio.FileImportParams`

`requestOptions`: `Files.RequestOptions`

#### Autorizzazioni cartella

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

Elenca i ruoli utente per un cartella specifica.

Limiti di frequenza: 100 chiamate ogni 1,00 minuto per account\_user

**`usage`**

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

**Parametri**

`accountId`: `Frameio.Uuid` —

`folderId`: `Frameio.Uuid` —

`request`: `Frameio.FolderUserRolesIndexRequest`

`requestOptions`: `FolderPermissions.RequestOptions`

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

Aggiorna i ruoli utente per la cartella specificata se l'utente è già stato aggiunto alla cartella.Se l'utente non è stato aggiunto alla cartella, viene aggiunto con il ruolo specificato.

Limiti di frequenza: 10 chiamate ogni 1,00 minuto per account\_user

**`usage`**

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

**Parametri**

`accountId`: `Frameio.Uuid` —

`folderId`: `Frameio.Uuid` —

`userId`: `Frameio.Uuid` —

`request`: `Frameio.UpdateUserRolesParams`

`requestOptions`: `FolderPermissions.RequestOptions`

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

Rimuovi un utente da una cartella specifica.

Limiti di frequenza: 60 chiamate ogni 1,00 minuto per account\_user

**`usage`**

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

**Parametri**

`accountId`: `Frameio.Uuid` —

`folderId`: `Frameio.Uuid` —

`userId`: `Frameio.Uuid` —

`requestOptions`: `FolderPermissions.RequestOptions`

#### Cartelle

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

Mostra i dettagli della cartella.

Limiti di frequenza: 100 chiamate ogni 1,00 minuto per account\_user

**`usage`**

```ts usage

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

```

**Parametri**

`accountId`: `Frameio.Uuid` —

`projectId`: `Frameio.Uuid` —

`request`: `Frameio.FoldersShowRequest`

`requestOptions`: `Folders.RequestOptions`

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

Elimina la cartella in base all'ID.

Limiti di frequenza: 60 chiamate ogni 1,00 minuto per account\_user

**`usage`**

```ts usage

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

**Parametri**

`accountId`: `Frameio.Uuid` —

`folderId`: `Frameio.Uuid` —

`requestOptions`: `Folders.RequestOptions`

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

Aggiorna i dettagli della cartella.

Limiti di frequenza: 10 chiamate ogni 1,00 minuto per account\_user

**`usage`**

```ts usage

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

```

**Parametri**

`accountId`: `Frameio.Uuid` —

`folderId`: `Frameio.Uuid` —

`request`: `Frameio.FolderUpdateParams`

`requestOptions`: `Folders.RequestOptions`

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

Elenca gli elementi figlio nella cartella specificata.

Usa il parametro di query "include" della richiesta per includere in modo selettivo proprietà aggiuntive nella risposta.

> **Note**
>
> Se includi `media_links.original` e l'utente non ha l'autorizzazione per scaricare file nel progetto corrispondente, questo endpoint risponderà con un errore `403 Forbidden`. Se il contenuto non è accessibile perché è richiesta la filigrana per questo utente e non è supportata dai media\_link richiesti, la richiesta avrà esito positivo, ma i link multimediali non supportati saranno impostati su null. Allo stesso modo, se un link di transcodifica richiesto non esiste per un file particolare (ad esempio includendo `media_links.video_h264_180` su un file di immagine statica) o se il processo di transcodifica non è finito (ovvero lo stato del file è "uploaded" invece di "transcoded"), anche un link multimediale sarà impostato su null nel payload di risposta. In breve, il client deve gestire i link multimediali null in modo appropriato.

Limiti di frequenza: 100 chiamate ogni 1,00 minuto per account\_user

**`usage`**

```ts usage

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

```

**Parametri**

`accountId`: `Frameio.Uuid` —

`folderId`: `Frameio.Uuid` —

`request`: `Frameio.FolderIndexRequest`

`requestOptions`: `Folders.RequestOptions`

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

Copia la cartella.

Limiti di frequenza: 10 chiamate ogni 1,00 minuto per account\_user

**`usage`**

```ts usage

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

```

**Parametri**

`accountId`: `Frameio.Uuid` —

`folderId`: `Frameio.Uuid` —

`request`: `Frameio.FolderCopyParams`

`requestOptions`: `Folders.RequestOptions`

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

Elenca le cartelle in una cartella specifica.

Limiti di frequenza: 5 chiamate ogni 1 secondo per account\_user

**`usage`**

```ts usage

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

```

**Parametri**

`accountId`: `Frameio.Uuid` —

`folderId`: `Frameio.Uuid` —

`request`: `Frameio.FoldersListRequest`

`requestOptions`: `Folders.RequestOptions`

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

Crea una nuova cartella nel percorso specificato dal parametro `folder_id`.

Limiti di frequenza: 3 chiamate ogni 1 secondo per account\_user

**`usage`**

```ts usage

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

```

**Parametri**

`accountId`: `Frameio.Uuid` —

`folderId`: `Frameio.Uuid` —

`request`: `Frameio.FolderCreateParams`

`requestOptions`: `Folders.RequestOptions`

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

Sposta la cartella in una cartella.

Limiti di frequenza: 10 chiamate ogni 1,00 minuto per account\_user

**`usage`**

```ts usage

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

```

**Parametri**

`accountId`: `Frameio.Uuid` —

`folderId`: `Frameio.Uuid` —

`request`: `Frameio.FolderMoveParams`

`requestOptions`: `Folders.RequestOptions`

#### Gruppi

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

Elenca i gruppi nell'account.

Limiti di frequenza: 100 chiamate ogni 1,00 minuto per account\_user

**`usage`**

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

**Parametri**

`accountId`: `Frameio.FrameOrAdobeId` —

`request`: `Frameio.GroupsIndexRequest`

`requestOptions`: `Groups.RequestOptions`

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

Mostra i dettagli del gruppo.

Limiti di frequenza: 100 chiamate ogni 1,00 minuto per account\_user

**`usage`**

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

**Parametri**

`accountId`: `Frameio.FrameOrAdobeId` —

`groupId`: `Frameio.Uuid` —

`request`: `Frameio.GroupsShowRequest`

`requestOptions`: `Groups.RequestOptions`

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

Crea un gruppo per l'account corrente.

Limiti di frequenza: 10 chiamate ogni 1,00 minuto per account\_user

**`usage`**

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

**Parametri**

`accountId`: `Frameio.FrameOrAdobeId` —

`request`: `Frameio.CreateGroupParams`

`requestOptions`: `Groups.RequestOptions`

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

Aggiorna i dettagli del gruppo.

Limiti di frequenza: 10 chiamate ogni 1,00 minuto per account\_user

**`usage`**

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

**Parametri**

`accountId`: `Frameio.FrameOrAdobeId` —

`groupId`: `Frameio.Uuid` —

`request`: `Frameio.UpdateGroupParams`

`requestOptions`: `Groups.RequestOptions`

#### Metadati

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

Aggiorna i valori dei metadati in più file.

Limiti di frequenza: 10 chiamate ogni 1,00 minuto per account\_user

**`usage`**

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

**Parametri**

`accountId`: `Frameio.Uuid` —

`projectId`: `Frameio.Uuid` —

`request`: `Frameio.BulkUpdateMetadataParams`

`requestOptions`: `Metadata.RequestOptions`

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

Mostra i metadati di un file.

Limiti di frequenza: 100 chiamate ogni 1,00 minuto per account\_user

**`usage`**

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

**Parametri**

`accountId`: `Frameio.Uuid` —

`fileId`: `Frameio.Uuid` —

`request`: `Frameio.MetadataShowRequest`

`requestOptions`: `Metadata.RequestOptions`

#### Campi dei metadati

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

Elimina le definizioni dei campi personalizzati a livello di account.

Limiti di frequenza: 60 chiamate ogni 1,00 minuto per account\_user

**`usage`**

```ts usage

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

```

**Parametri**

`accountId`: `Frameio.Uuid` —

`fieldDefinitionId`: `Frameio.Uuid` —

`requestOptions`: `MetadataFields.RequestOptions`

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

Aggiorna le definizioni dei campi personalizzati a livello di account.

Limiti di frequenza: 10 chiamate ogni 1,00 minuto per account\_user

**`usage`**

```ts usage

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

**Parametri**

`accountId`: `Frameio.Uuid` —

`fieldDefinitionId`: `Frameio.Uuid` —

`request`: `Frameio.UpdateFieldDefinitionParams`

`requestOptions`: `MetadataFields.RequestOptions`

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

Elenca definizioni dei campi a livello di account.

Limiti di frequenza: 100 chiamate ogni 1,00 minuto per account\_user

**`usage`**

```ts usage

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

```

**Parametri**

`accountId`: `Frameio.Uuid` —

`request`: `Frameio.MetadataFieldDefinitionsIndexRequest`

`requestOptions`: `MetadataFields.RequestOptions`

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

Crea definizioni dei campi a livello di account.

Limiti di frequenza: 10 chiamate ogni 1,00 minuto per account\_user

**`usage`**

```ts usage

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

```

**Parametri**

`accountId`: `Frameio.Uuid` —

`request`: `Frameio.CreateFieldDefinitionParams`

`requestOptions`: `MetadataFields.RequestOptions`

#### Autorizzazioni del progetto

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

Elenca i ruoli utente per un progetto specifico.

Limiti di frequenza: 100 chiamate ogni 1,00 minuto per account\_user

**`usage`**

```ts usage

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

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

```

**Parametri**

`accountId`: `Frameio.Uuid` —

`projectId`: `Frameio.Uuid` —

`request`: `Frameio.ProjectPermissionsIndexRequest`

`requestOptions`: `ProjectPermissions.RequestOptions`

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

Rimuovi un utente da un progetto specifico.

Limiti di frequenza: 60 chiamate ogni 1,00 minuto per account\_user

**`usage`**

```ts usage

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

**Parametri**

`accountId`: `Frameio.Uuid` —

`projectId`: `Frameio.Uuid` —

`userId`: `Frameio.Uuid` —

`requestOptions`: `ProjectPermissions.RequestOptions`

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

Aggiorna i ruoli utente per il progetto specificato se l'utente è già stato aggiunto al progetto. Se l'utente non è stato aggiunto al progetto, viene aggiunto con il ruolo specificato.

Limiti di frequenza: 10 chiamate ogni 1,00 minuto per account\_user

**`usage`**

```ts usage

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

```

**Parametri**

`accountId`: `Frameio.Uuid` —

`projectId`: `Frameio.Uuid` —

`UserId`: `Frameio.Uuid` —

`request`: `Frameio.UpdateUserRolesParams`

`requestOptions`: `ProjectPermissions.RequestOptions`

#### Progetti

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

Mostra i dettagli del progetto.

Limiti di frequenza: 100 chiamate ogni 1,00 minuto per account\_user

**`usage`**

```ts usage

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

```

**Parametri**

`accountId`: `Frameio.Uuid` —

`projectId`: `Frameio.Uuid` —

`request`: `Frameio.ProjectsShowRequest`

`requestOptions`: `Projects.RequestOptions`

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

Elimina un progetto.

Limiti di frequenza: 60 chiamate ogni 1,00 minuto per account\_user

**`usage`**

```ts usage

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

**Parametri**

`accountId`: `Frameio.Uuid` —

`projectId`: `Frameio.Uuid` —

`requestOptions`: `Projects.RequestOptions`

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

Aggiorna i dettagli del progetto.

Limiti di frequenza: 10 chiamate ogni 1,00 minuto per account\_user

**`usage`**

```ts usage

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

```

**Parametri**

`accountId`: `Frameio.Uuid` —

`projectId`: `Frameio.Uuid` —

`request`: `Frameio.ProjectUpdateParams`

`requestOptions`: `Projects.RequestOptions`

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

Elenca i progetti in un'area di lavoro specifica.

Limiti di frequenza: 100 chiamate ogni 1,00 minuto per account\_user

**`usage`**

```ts usage

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

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

```

**Parametri**

`accountId`: `Frameio.Uuid` —

`workspaceId`: `Frameio.Uuid` —

`request`: `Frameio.ProjectsIndexRequest`

`requestOptions`: `Projects.RequestOptions`

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

Crea un progetto in un'area di lavoro specifica.

Limiti di frequenza: 10 chiamate ogni 1,00 minuto per account\_user

**`usage`**

```ts usage

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

```

**Parametri**

`accountId`: `Frameio.Uuid` —

`workspaceId`: `Frameio.Uuid` —

`request`: `Frameio.ProjectsParams`

`requestOptions`: `Projects.RequestOptions`

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

Elenca tutti i progetti a cui l'utente autenticato ha accesso nell'account specificato.

Limiti di frequenza: 100 chiamate ogni 1,00 minuto per account\_user

**`usage`**

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

**Parametri**

`accountId`: `Frameio.FrameOrAdobeId` —

`request`: `Frameio.AccountProjectsIndexRequest`

`requestOptions`: `Projects.RequestOptions`

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

Elenca i progetti a cui l'utente corrente è stato invitato nell'account specificato, ma non ha accesso a livello di area di lavoro.Si tratta di progetti in cui l'utente ha accesso come utente collaboratore specifico del progetto senza autorizzazioni più ampie del team o dell'area di lavoro.

Limiti di frequenza: 100 chiamate ogni 1,00 minuto per account\_user

**`usage`**

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

**Parametri**

`accountId`: `Frameio.FrameOrAdobeId` —

`request`: `Frameio.InvitedProjectsIndexRequest`

`requestOptions`: `Projects.RequestOptions`

#### Ricerca

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

Cerca tra risorse, cartelle e progetti all'interno di un account.

Limiti di frequenza: 100 chiamate ogni 1,00 minuto per account\_user

**`usage`**

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

**Parametri**

`accountId`: `Frameio.Uuid` —

`request`: `Frameio.SearchParams`

`requestOptions`: `Search.RequestOptions`

#### Condivisioni

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

Mostra una singola condivisione.

Limiti di frequenza: 100 chiamate ogni 1,00 minuto per account\_user

**`usage`**

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

```

**Parametri**

`accountId`: `Frameio.Uuid` —

`shareId`: `Frameio.Uuid` —

`requestOptions`: `Shares.RequestOptions`

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

Elimina una condivisione.

Limiti di frequenza: 60 chiamate ogni 1,00 minuto per account\_user

**`usage`**

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

**Parametri**

`accountId`: `Frameio.Uuid` —

`shareId`: `Frameio.Uuid` —

`requestOptions`: `Shares.RequestOptions`

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

Aggiorna la condivisione.

Limiti di frequenza: 10 chiamate ogni 1,00 minuto per account\_user

**`usage`**

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

**Parametri**

`accountId`: `Frameio.Uuid` —

`shareId`: `Frameio.Uuid` —

`request`: `Frameio.UpdateShareParams`

`requestOptions`: `Shares.RequestOptions`

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

Elenca i revisori della condivisione.

Limiti di frequenza: 10 chiamate ogni 1,00 minuto per account\_user

**`usage`**

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

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

**Parametri**

`accountId`: `Frameio.Uuid` —

`shareId`: `Frameio.Uuid` —

`request`: `Frameio.SharesListReviewersRequestreParams`

`requestOptions`: `Shares.RequestOptions`

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

Aggiungi revisori alla condivisione sicura in base a tre tipi di identificatore: `adobe_user_id`, `e-mail` e `user_id`.

Una richiesta può includere un solo parametro di tipo di identificatore.

`e-mail` è l'unico identificatore in grado di aggiungere a una condivisione i revisori che non hanno un membro dell'account Frame nell'account a cui appartiene la condivisione.

Limiti di frequenza: 10 chiamate ogni 1,00 minuto per account\_user

**`usage`**

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

**Parametri**

`accountId`: `Frameio.Uuid` —

`shareId`: `Frameio.Uuid` —

`request`: `Frameio.AddReviewersToShareParams`

`requestOptions`: `Shares.RequestOptions`

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

Rimuove i revisori dalla condivisione sicura in base a tre tipi di identificatore: `adobe_user_id`, `e-mail` e `user_id`.

Una richiesta può includere un solo parametro di tipo di identificatore.

Limiti di frequenza: 10 chiamate ogni 1,00 minuto per account\_user

**`usage`**

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

**Parametri**

`accountId`: `Frameio.Uuid` —

`shareId`: `Frameio.Uuid` —

`request`: `Frameio.RemoveReviewerParams`

`requestOptions`: `Shares.RequestOptions`

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

Rimuovi una risorsa all'interno di una condivisione.

Limiti di frequenza: 10 chiamate ogni 1,00 minuto per account\_user

**`usage`**

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

**Parametri**

`accountId`: `Frameio.Uuid` —

`shareId`: `Frameio.Uuid` —

`assetId`: `Frameio.Uuid` —

`requestOptions`: `Shares.RequestOptions`

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

Aggiungi nuova condivisione della risorsa.

Limiti di frequenza: 10 chiamate ogni 1,00 minuto per account\_user

**`usage`**

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

**Parametri**

`accountId`: `Frameio.Uuid` —

`shareId`: `Frameio.Uuid` —

`request`: `Frameio.AddAssetParams`

`requestOptions`: `Shares.RequestOptions`

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

Elenca le condivisioni in un progetto.

Limiti di frequenza: 100 chiamate ogni 1,00 minuto per account\_user

**`usage`**

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

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

**Parametri**

`accountId`: `Frameio.Uuid` —

`shareId`: `Frameio.Uuid` —

`request`: `Frameio.SharesIndexRequest`

`requestOptions`: `Shares.RequestOptions`

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

Crea una condivisione.

Limiti di frequenza: 10 chiamate ogni 1,00 minuto per account\_user

**`usage`**

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

**Parametri**

`accountId`: `Frameio.Uuid` —

`projectId`: `Frameio.Uuid` —

`request`: `Frameio.CreateShareParams`

`requestOptions`: `Shares.RequestOptions`

#### Utenti

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

Ispeziona i dettagli dell'utente associato al token bearer.

Limiti di frequenza: 100 chiamate ogni 1,00 minuto per account\_user

**`usage`**

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

**Parametri**

`requestOptions`: `Users.RequestOptions`

#### Stack di versioni

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

Elenca gli elementi figlio (file) in uno stack di versioni specifico.

Usa il parametro di query "include" della richiesta per includere in modo selettivo proprietà aggiuntive nella risposta.

> **Note**
>
> `Se includi`media\_links.original`e l'utente non ha l'autorizzazione per scaricare file nel progetto corrispondente, questo endpoint risponderà con un errore`403 Forbidden`. Se il contenuto non è accessibile perché è richiesta la filigrana per questo utente e non è supportata dai media_link richiesti, la richiesta avrà esito positivo, ma i link multimediali non supportati saranno impostati su null. Allo stesso modo, se un link di transcodifica richiesto non esiste per un file particolare (ad esempio `includendo media\_links.video\_h264\_180` su un file di immagine statica) o se il processo di transcodifica non è finito (ovvero lo stato del file è "uploaded" invece di "transcoded"), anche un link multimediale sarà impostato su null nel payload di risposta. In breve, il client deve gestire i link multimediali null in modo appropriato.`

Limiti di frequenza: 100 chiamate ogni 1,00 minuto per account\_user

**`usage`**

```ts usage

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

```

**Parametri**

`accountId`: `Frameio.Uuid` —

`projectId`: `Frameio.Uuid` —

`request`: `Frameio.VersionStacksIndexRequest`

`requestOptions`: `VersionStacks.RequestOptions`

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

Mostra i dettagli dello stack di versioni.

Limiti di frequenza: 100 chiamate ogni 1,00 minuto per account\_user

**`usage`**

```ts usage

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

**Parametri**

`accountId`: `Frameio.Uuid` —

`versionStackId`: `Frameio.Uuid` —

`request`: `Frameio.VersionStacksShowRequest`

`requestOptions`: `VersionStacks.RequestOptions`

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

Copia lo stack di versioni.

Limiti di frequenza: 10 chiamate ogni 1,00 minuto per account\_user

**`usage`**

```ts usage

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

**Parametri**

`accountId`: `Frameio.Uuid` —

`versionStackId`: `Frameio.Uuid` —

`request`: `Frameio.VersionStackCopyParams`

`requestOptions`: `VersionStacks.RequestOptions`

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

Elenca gli stack di versioni in una determinata cartella.

Limiti di frequenza: 5 chiamate ogni 1 secondo per account\_user

**`usage`**

```ts usage

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

**Parametri**

`accountId`: `Frameio.Uuid` —

`folderId`: `Frameio.Uuid` —

`request`: `Frameio.VersionStacksListRequest`

`requestOptions`: `VersionStacks.RequestOptions`

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

Crea un nuovo stack di versioni nella cartella principale.

Limiti di frequenza: 10 chiamate ogni 1,00 minuto per account\_user

**`usage`**

```ts usage

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

**Parametri**

`accountId`: `Frameio.Uuid` —

`folderId`: `Frameio.Uuid` —

`request`: `Frameio.VersionStackCreateParams`

`requestOptions`: `VersionStacks.RequestOptions`

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

Sposta lo stack di versioni in una cartella.

Limiti di frequenza: 10 chiamate ogni 1,00 minuto per account\_user

**`usage`**

```ts usage

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

**Parametri**

`accountId`: `Frameio.Uuid` —

`folderId`: `Frameio.Uuid` —

`request`: `Frameio.VersionStackMoveParams`

`requestOptions`: `VersionStacks.RequestOptions`

#### Webhook

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

Elenca i webhook per l'area di lavoro specifica.

Limiti di frequenza: 100 chiamate ogni 1,00 minuto per account\_user

**`usage`**

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

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

```

**Parametri**

`accountId`: `Frameio.Uuid` —

`workspaceId`: `Frameio.Uuid` —

`request`: `Frameio.WebhooksIndexRequest`

`requestOptions`: `Webhooks.RequestOptions`

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

Crea un singolo webhook con un secret.

Eventi validi:

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

Limiti di frequenza: 10 chiamate ogni 1,00 minuto per account

**`usage`**

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

```

**Parametri**

`accountId`: `Frameio.Uuid` —

`workspaceId`: `Frameio.Uuid` —

`request`: `Frameio.WebhookCreateParams`

`requestOptions`: `Webhooks.RequestOptions`

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

Mostra i dettagli del webhook.

Limiti di frequenza: 100 chiamate ogni 1,00 minuto per account\_user

**`usage`**

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

```

**Parametri**

`accountId`: `Frameio.Uuid` —

`webhookId`: `Frameio.Uuid` —

`request`: `Frameio.WebhooksShowRequest`

`requestOptions`: `Webhooks.RequestOptions`

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

Elimina un webhook.

Limiti di frequenza: 60 chiamate ogni 1,00 minuto per account\_user

**`usage`**

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

```

**Parametri**

`accountId`: `Frameio.Uuid` —

`webhookId`: `Frameio.Uuid` —

`requestOptions`: `Webhooks.RequestOptions`

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

Aggiorna i dettagli del webhook.

Limiti di frequenza: 10 chiamate ogni 1,00 minuto per account\_user

**`usage`**

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

```

**Parametri**

`accountId`: `Frameio.Uuid` —

webhookId`: `Frameio.Uuid`—`

`request`: `Frameio.WebhookUpdateParams`

`requestOptions`: `Webhooks.RequestOptions`

#### Autorizzazioni dell’area di lavoro

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

Elenca i ruoli utente per un'area di lavoro specifica.

Limiti di frequenza: 100 chiamate ogni 1,00 minuto per account\_user

**`usage`**

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

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

```

**Parametri**

`accountId`: `Frameio.Uuid` —

`workspaceId`: `Frameio.Uuid` —

`request`: `Frameio.WorkspacePermissionsIndexRequest`

`requestOptions`: `WorkspacePermissions.RequestOptions`

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

Rimuovi un utente da un'area di lavoro specifica.

Limiti di frequenza: 60 chiamate ogni 1,00 minuto per account\_user

**`usage`**

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

```

**Parametri**

`accountId`: `Frameio.Uuid` —

`workspaceId`: `Frameio.Uuid` —

`userId`: `Frameio.Uuid` —

`requestOptions`: `WorkspacePermissions.RequestOptions`

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

Aggiorna i ruoli utente per l'area di lavoro specificata se l'utente è già stato aggiunto all'area di lavoro. Se l'utente non è stato aggiunto all'area di lavoro, viene aggiunto con il ruolo specificato.

Limiti di frequenza: 10 chiamate ogni 1,00 minuto per account\_user

**`usage`**

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

```

**Parametri**

`accountId`: `Frameio.Uuid` —

`workspaceId`: `Frameio.Uuid` —

`userId`: `Frameio.Uuid` —

`request`: `Frameio.UpdateUserRolesParams`

`requestOptions`: `WorkspacePermissions.RequestOptions`

#### Aree di lavoro

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

Mostra i dettagli dell'area di lavoro.

Limiti di frequenza: 100 chiamate ogni 1,00 minuto per account\_user

**`usage`**

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

```

**Parametri**

`accountId`: `Frameio.Uuid` —

`workspaceId`: `Frameio.Uuid` —

`request`: `Frameio.WorkspacesShowRequest`

`requestOptions`: `Workspaces.RequestOptions`

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

Elimina l'area di lavoro dall'account.

Limiti di frequenza: 60 chiamate ogni 1,00 minuto per account\_user

**`usage`**

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

```

**Parametri**

`accountId`: `Frameio.Uuid` —

`workspaceId`: `Frameio.Uuid` —

`requestOptions`: `Workspaces.RequestOptions`

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

Aggiorna un'area di lavoro.

Limiti di frequenza: 10 chiamate ogni 1,00 minuto per account\_user

**`usage`**

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

```

**Parametri**

`accountId`: `Frameio.Uuid` —

`workspaceId`: `Frameio.Uuid` —

`request`: `Frameio.WorkspaceParams`

`requestOptions`: `Workspaces.RequestOptions`

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

Elenca le aree di lavoro per un account specifico.

Limiti di frequenza: 100 chiamate ogni 1,00 minuto per account\_user

**`usage`**

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

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

```

**Parametri**

`accountId`: `Frameio.Uuid` —

`request`: `Frameio.WorkspacesIndexRequest`

`requestOptions`: `Workspaces.RequestOptions`

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

Crea l'area di lavoro da un account.

Limiti di frequenza: 10 chiamate ogni 1,00 minuto per account\_user

**`usage`**

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

```

**Parametri**

`accountId`: `Frameio.Uuid` —

`request`: `Frameio.WorkspaceParams`

`requestOptions`: `Workspaces.RequestOptions`

---

### npm

> **Launch**
>
> Visualizza su [npm](https://www.npmjs.com/package/frameio)

---