> ## Documentation Index
> Fetch the complete documentation index at: https://docs.corsair.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# API

> API reference for FinerWorks: every `finerworks.api.*` operation with input and output types.

Every `finerworks.api.*` operation is listed below with parameter shapes and return types from the plugin Zod schemas.

> [!NOTE]
>
> **New to Corsair?** See [API access](https://docs.corsair.dev/concepts/api.md), [authentication](https://docs.corsair.dev/concepts/auth.md), and [error handling](https://docs.corsair.dev/concepts/error-handling).

## Account

### getCompanyInfo

`account.getCompanyInfo`

Get FinerWorks' site identifier, company address and business hours

**Risk:** `read`

```ts theme={null}
await corsair.finerworks.api.account.getCompanyInfo({});
```

**Input:** *empty object*

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `status` | `object` | No | — |
| `site_id` | `number` | No | — |
| `address` | `object` | No | — |
| `lobby_hours` | `string` | No | — |

> [accordion] status full type
>
> ```ts theme={null}
> {
>   success?: boolean,
>   status_code?: number,
>   message?: string | null,
>   debug?: any | null,
>   reference_id?: string | null,
>   domain?: string | null
> }
> ```

> [accordion] address full type
>
> ```ts theme={null}
> {
>   first_name?: string | null,
>   last_name?: string | null,
>   company_name?: string | null,
>   address_1?: string | null,
>   address_2?: string | null,
>   address_3?: string | null,
>   city?: string | null,
>   state_code?: string | null,
>   province?: string | null,
>   zip_postal_code?: string | null,
>   country_code?: string | null,
>   phone?: string | null,
>   email?: string | null,
>   address_order_po?: string | null
> }
> ```

***

### getUser

`account.getUser`

Get the authenticated FinerWorks account profile, including billing and business addresses

**Risk:** `read`

```ts theme={null}
await corsair.finerworks.api.account.getUser({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `account_key` | `string` | No | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `status` | `object` | No | — |
| `user_account` | `object` | No | — |

> [accordion] status full type
>
> ```ts theme={null}
> {
>   success?: boolean,
>   status_code?: number,
>   message?: string | null,
>   debug?: any | null,
>   reference_id?: string | null,
>   domain?: string | null
> }
> ```

> [accordion] user\_account full type
>
> ```ts theme={null}
> {
>   account_id?: number | null,
>   account_username?: string | null,
>   account_email?: string | null,
>   account_title?: string | null,
>   account_firstname?: string | null,
>   account_lastname?: string | null,
>   billing_info?: {
>     first_name?: string | null,
>     last_name?: string | null,
>     company_name?: string | null,
>     address_1?: string | null,
>     address_2?: string | null,
>     address_3?: string | null,
>     city?: string | null,
>     state_code?: string | null,
>     province?: string | null,
>     zip_postal_code?: string | null,
>     country_code?: string | null,
>     phone?: string | null,
>     email?: string | null,
>     address_order_po?: string | null
>   } | null,
>   business_info?: {
>     first_name?: string | null,
>     last_name?: string | null,
>     company_name?: string | null,
>     address_1?: string | null,
>     address_2?: string | null,
>     address_3?: string | null,
>     city?: string | null,
>     state_code?: string | null,
>     province?: string | null,
>     zip_postal_code?: string | null,
>     country_code?: string | null,
>     phone?: string | null,
>     email?: string | null,
>     address_order_po?: string | null
>   } | null,
>   logo_url?: string | null,
>   payment_profile_id?: string | null,
>   shipping_preferences?: number[] | null,
>   connections?: {
>     name?: string | null,
>     id?: string | null,
>     data?: string | null
>   }[] | null
> }
> ```

***

### updateAppDetails

`account.updateAppDetails`

Update the calling application's name, description and live mode

**Risk:** `write`

```ts theme={null}
await corsair.finerworks.api.account.updateAppDetails({ app_details: { app_name: 'My storefront', app_live_mode: true } });
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `app_details` | `object` | Yes | — |

> [accordion] app\_details full type
>
> ```ts theme={null}
> {
>   app_key?: string | null,
>   app_name?: string | null,
>   app_description?: string | null,
>   app_misc_data?: string | null,
>   app_live_mode?: boolean | null
> }
> ```

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `status` | `object` | No | — |

> [accordion] status full type
>
> ```ts theme={null}
> {
>   success?: boolean,
>   status_code?: number,
>   message?: string | null,
>   debug?: any | null,
>   reference_id?: string | null,
>   domain?: string | null
> }
> ```

***

### updateUser

`account.updateUser`

Update the FinerWorks account profile, including billing and payment information

**Risk:** `write`

```ts theme={null}
await corsair.finerworks.api.account.updateUser({ shipping_preferences: [0, 2, 1] });
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `account_key` | `string` | No | — |
| `billing_info` | `object` | No | — |
| `business_info` | `object` | No | — |
| `logo_url` | `string` | No | — |
| `logo_data` | `string` | No | — |
| `portrait_data` | `string` | No | — |
| `payment_profile_id` | `string` | No | — |
| `shipping_preferences` | `number[]` | No | — |
| `connections` | `object[]` | No | — |

> [accordion] billing\_info full type
>
> ```ts theme={null}
> {
>   first_name?: string | null,
>   last_name?: string | null,
>   company_name?: string | null,
>   address_1?: string | null,
>   address_2?: string | null,
>   address_3?: string | null,
>   city?: string | null,
>   state_code?: string | null,
>   province?: string | null,
>   zip_postal_code?: string | null,
>   country_code?: string | null,
>   phone?: string | null,
>   email?: string | null,
>   address_order_po?: string | null
> }
> ```

> [accordion] business\_info full type
>
> ```ts theme={null}
> {
>   first_name?: string | null,
>   last_name?: string | null,
>   company_name?: string | null,
>   address_1?: string | null,
>   address_2?: string | null,
>   address_3?: string | null,
>   city?: string | null,
>   state_code?: string | null,
>   province?: string | null,
>   zip_postal_code?: string | null,
>   country_code?: string | null,
>   phone?: string | null,
>   email?: string | null,
>   address_order_po?: string | null
> }
> ```

> [accordion] connections full type
>
> ```ts theme={null}
> {
>   name?: string | null,
>   id?: string | null,
>   data?: string | null
> }[]
> ```

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `status` | `object` | No | — |

> [accordion] status full type
>
> ```ts theme={null}
> {
>   success?: boolean,
>   status_code?: number,
>   message?: string | null,
>   debug?: any | null,
>   reference_id?: string | null,
>   domain?: string | null
> }
> ```

***

## Framing

### getFrameDetails

`framing.getFrameDetails`

Get dimensions, pricing, materials and imagery for a specific frame

**Risk:** `read`

```ts theme={null}
await corsair.finerworks.api.framing.getFrameDetails({ id: 131 });
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `id` | `number` | Yes | — |
| `product_code` | `string` | No | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `status` | `object` | No | — |
| `frame` | `object` | No | — |
| `frame_details` | `object` | No | — |

> [accordion] status full type
>
> ```ts theme={null}
> {
>   success?: boolean,
>   status_code?: number,
>   message?: string | null,
>   debug?: any | null,
>   reference_id?: string | null,
>   domain?: string | null
> }
> ```

> [accordion] frame full type
>
> ```ts theme={null}
> {
>   id?: number | null,
>   name?: string | null,
>   thickness?: number | null,
>   depth?: number | null,
>   float_offset?: number | null,
>   rabbet?: number | null,
>   lip?: number | null,
>   profile_svg_url?: string | null,
>   sample_image_url_1?: string | null,
>   sample_image_url_2?: string | null,
>   sample_image_url_3?: string | null,
>   min_width?: number | null,
>   min_height?: number | null,
>   max_width?: number | null,
>   max_height?: number | null,
>   price_level?: number | null,
>   allow_glazing?: boolean | null,
>   allow_matting?: boolean | null,
>   color?: string | null,
>   composite?: string | null,
>   segment_url?: string | null,
>   sample_length?: number | null,
>   class_alias?: string | null,
>   starting_price?: number | null,
>   type?: string | null,
>   type_description?: string | null
> }
> ```

> [accordion] frame\_details full type
>
> ```ts theme={null}
> {
>   id?: number | null,
>   name?: string | null,
>   thickness?: number | null,
>   depth?: number | null,
>   float_offset?: number | null,
>   rabbet?: number | null,
>   lip?: number | null,
>   profile_svg_url?: string | null,
>   sample_image_url_1?: string | null,
>   sample_image_url_2?: string | null,
>   sample_image_url_3?: string | null,
>   min_width?: number | null,
>   min_height?: number | null,
>   max_width?: number | null,
>   max_height?: number | null,
>   price_level?: number | null,
>   allow_glazing?: boolean | null,
>   allow_matting?: boolean | null,
>   color?: string | null,
>   composite?: string | null,
>   segment_url?: string | null,
>   sample_length?: number | null,
>   class_alias?: string | null,
>   starting_price?: number | null,
>   type?: string | null,
>   type_description?: string | null
> }
> ```

***

### listCollections

`framing.listCollections`

List available frame collections and categories

**Risk:** `read`

```ts theme={null}
await corsair.finerworks.api.framing.listCollections({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `id` | `number` | No | — |
| `product_code` | `string` | No | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `status` | `object` | No | — |
| `collections` | `object[]` | No | — |
| `frame_collections` | `object[]` | No | — |

> [accordion] status full type
>
> ```ts theme={null}
> {
>   success?: boolean,
>   status_code?: number,
>   message?: string | null,
>   debug?: any | null,
>   reference_id?: string | null,
>   domain?: string | null
> }
> ```

> [accordion] collections full type
>
> ```ts theme={null}
> {
>   id?: number | null,
>   name?: string | null,
>   description?: string | null,
>   alias?: string | null,
>   icon_url_1?: string | null,
>   icon_url_2?: string | null,
>   icon_url_3?: string | null,
>   starting_price?: number | null,
>   frames?: {
>     id?: number | null,
>     name?: string | null,
>     thickness?: number | null,
>     depth?: number | null,
>     float_offset?: number | null,
>     rabbet?: number | null,
>     lip?: number | null,
>     profile_svg_url?: string | null,
>     sample_image_url_1?: string | null,
>     sample_image_url_2?: string | null,
>     sample_image_url_3?: string | null,
>     min_width?: number | null,
>     min_height?: number | null,
>     max_width?: number | null,
>     max_height?: number | null,
>     price_level?: number | null,
>     allow_glazing?: boolean | null,
>     allow_matting?: boolean | null,
>     color?: string | null,
>     composite?: string | null,
>     segment_url?: string | null,
>     sample_length?: number | null,
>     class_alias?: string | null,
>     starting_price?: number | null,
>     type?: string | null,
>     type_description?: string | null
>   }[] | null
> }[]
> ```

> [accordion] frame\_collections full type
>
> ```ts theme={null}
> {
>   id?: number | null,
>   name?: string | null,
>   description?: string | null,
>   alias?: string | null,
>   icon_url_1?: string | null,
>   icon_url_2?: string | null,
>   icon_url_3?: string | null,
>   starting_price?: number | null,
>   frames?: {
>     id?: number | null,
>     name?: string | null,
>     thickness?: number | null,
>     depth?: number | null,
>     float_offset?: number | null,
>     rabbet?: number | null,
>     lip?: number | null,
>     profile_svg_url?: string | null,
>     sample_image_url_1?: string | null,
>     sample_image_url_2?: string | null,
>     sample_image_url_3?: string | null,
>     min_width?: number | null,
>     min_height?: number | null,
>     max_width?: number | null,
>     max_height?: number | null,
>     price_level?: number | null,
>     allow_glazing?: boolean | null,
>     allow_matting?: boolean | null,
>     color?: string | null,
>     composite?: string | null,
>     segment_url?: string | null,
>     sample_length?: number | null,
>     class_alias?: string | null,
>     starting_price?: number | null,
>     type?: string | null,
>     type_description?: string | null
>   }[] | null
> }[]
> ```

***

### listGlazing

`framing.listGlazing`

List available glazing and glass options

**Risk:** `read`

```ts theme={null}
await corsair.finerworks.api.framing.listGlazing({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `id` | `number` | No | — |
| `product_code` | `string` | No | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `status` | `object` | No | — |
| `glazing` | `object[]` | No | — |

> [accordion] status full type
>
> ```ts theme={null}
> {
>   success?: boolean,
>   status_code?: number,
>   message?: string | null,
>   debug?: any | null,
>   reference_id?: string | null,
>   domain?: string | null
> }
> ```

> [accordion] glazing full type
>
> ```ts theme={null}
> {
>   id?: number | null,
>   name?: string | null,
>   description?: string | null,
>   composite?: number | null,
>   image_1?: string | null,
>   starting_price?: number | null
> }[]
> ```

***

### listMats

`framing.listMats`

List matting specifications, colours and pricing

**Risk:** `read`

```ts theme={null}
await corsair.finerworks.api.framing.listMats({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `id` | `number` | No | — |
| `product_code` | `string` | No | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `status` | `object` | No | — |
| `mats` | `object[]` | No | — |

> [accordion] status full type
>
> ```ts theme={null}
> {
>   success?: boolean,
>   status_code?: number,
>   message?: string | null,
>   debug?: any | null,
>   reference_id?: string | null,
>   domain?: string | null
> }
> ```

> [accordion] mats full type
>
> ```ts theme={null}
> {
>   id?: number | null,
>   name?: string | null,
>   color?: string | null,
>   core_color?: string | null,
>   thickness?: number | null,
>   min_width?: number | null,
>   min_height?: number | null,
>   max_width?: number | null,
>   max_height?: number | null,
>   composite?: string | null,
>   starting_price?: number | null
> }[]
> ```

***

## Galleries

### addOrUpdateCollection

`galleries.addOrUpdateCollection`

Create a personal gallery collection, or update one by supplying its id

**Risk:** `write`

```ts theme={null}
await corsair.finerworks.api.galleries.addOrUpdateCollection({ name: 'Seascapes', visible: true });
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `id` | `number` | No | — |
| `name` | `string` | Yes | — |
| `description` | `string` | No | — |
| `visible` | `boolean` | No | — |
| `account_key` | `string` | No | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `status` | `object` | No | — |
| `id` | `number` | No | — |

> [accordion] status full type
>
> ```ts theme={null}
> {
>   success?: boolean,
>   status_code?: number,
>   message?: string | null,
>   debug?: any | null,
>   reference_id?: string | null,
>   domain?: string | null
> }
> ```

***

### list

`galleries.list`

List GeoGalleries.com galleries, with optional filtering

**Risk:** `read`

```ts theme={null}
await corsair.finerworks.api.galleries.list({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `account_key` | `string` | No | — |
| `personal` | `boolean` | No | — |
| `gallery_ids` | `number[]` | No | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `status` | `object` | No | — |
| `galleries` | `object[]` | No | — |

> [accordion] status full type
>
> ```ts theme={null}
> {
>   success?: boolean,
>   status_code?: number,
>   message?: string | null,
>   debug?: any | null,
>   reference_id?: string | null,
>   domain?: string | null
> }
> ```

> [accordion] galleries full type
>
> ```ts theme={null}
> {
>   id?: number | null,
>   name?: string | null,
>   alias?: string | null,
>   personal?: boolean | null,
>   visible?: boolean | null,
>   url?: string | null,
>   description?: string | null,
>   keywords?: string | null,
>   image_count?: number | null
> }[]
> ```

***

### listThemes

`galleries.listThemes`

List the theme options available for gallery customisation

**Risk:** `read`

```ts theme={null}
await corsair.finerworks.api.galleries.listThemes({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `filter` | `string[]` | No | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `status` | `object` | No | — |
| `themes` | `object[]` | No | — |

> [accordion] status full type
>
> ```ts theme={null}
> {
>   success?: boolean,
>   status_code?: number,
>   message?: string | null,
>   debug?: any | null,
>   reference_id?: string | null,
>   domain?: string | null
> }
> ```

> [accordion] themes full type
>
> ```ts theme={null}
> {
>   slug?: string | null,
>   name?: string | null,
>   background?: string | null,
>   foreground?: string | null,
>   primary_color?: string | null,
>   secondary_color?: string | null,
>   accent_color?: string | null,
>   surface?: string | null,
>   muted?: string | null,
>   description?: string | null
> }[]
> ```

***

## Images

### add

`images.add`

Add up to five prepared images to a FinerWorks library

**Risk:** `write`

```ts theme={null}
await corsair.finerworks.api.images.add({ library: { name: 'inventory' }, images: [{ title: 'Sunset', file_name: 'sunset.jpg', hires_file_name: 'sunset.jpg', private_hires_uri: 'https://example.com/sunset.jpg' }] });
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `images` | `object[]` | Yes | — |
| `library` | `object` | Yes | — |

> [accordion] images full type
>
> ```ts theme={null}
> {
>   title?: string | null,
>   description?: string | null,
>   file_name?: string | null,
>   file_size?: number | null,
>   thumbnail_file_name?: string | null,
>   preview_file_name?: string | null,
>   hires_file_name?: string | null,
>   public_thumbnail_uri?: string | null,
>   public_preview_uri?: string | null,
>   private_hires_uri?: string | null,
>   pix_w?: number | null,
>   pix_h?: number | null,
>   guid?: string | null
> }[]
> ```

> [accordion] library full type
>
> ```ts theme={null}
> {
>   name: string,
>   session_id?: string | null,
>   account_key?: string | null,
>   site_id?: number | null
> }
> ```

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `status` | `object` | No | — |
| `images` | `object[]` | No | — |

> [accordion] status full type
>
> ```ts theme={null}
> {
>   success?: boolean,
>   status_code?: number,
>   message?: string | null,
>   debug?: any | null,
>   reference_id?: string | null,
>   domain?: string | null
> }
> ```

> [accordion] images full type
>
> ```ts theme={null}
> {
>   id?: number | null,
>   guid?: string | null,
>   title?: string | null,
>   description?: string | null,
>   file_name?: string | null,
>   file_size?: number | null,
>   thumbnail_file_name?: string | null,
>   preview_file_name?: string | null,
>   hires_file_name?: string | null,
>   public_thumbnail_uri?: string | null,
>   public_preview_uri?: string | null,
>   private_hires_uri?: string | null,
>   personal_gallery_title?: string | null,
>   members_gallery_category?: string | null,
>   pix_w?: number | null,
>   pix_h?: number | null,
>   date_added?: string | null,
>   date_updated?: string | null,
>   date_expires?: string | null,
>   active?: boolean | null,
>   assigned_gallery_subcategory_ids?: number[] | null,
>   assigned_personal_gallery_ids?: number[] | null,
>   username?: string | null,
>   account_key?: string | null,
>   artistname?: string | null,
>   rank?: number | null
> }[]
> ```

***

### delete

`images.delete`

Delete image files by GUID, along with any virtual inventory products assigned to them

**Risk:** `destructive` · **Irreversible**

```ts theme={null}
await corsair.finerworks.api.images.delete({ guids: ['<image-guid>'] });
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `guids` | `string[]` | Yes | — |
| `library` | `object` | No | — |
| `account_key` | `string` | No | — |

> [accordion] library full type
>
> ```ts theme={null}
> {
>   name: string,
>   session_id?: string | null,
>   account_key?: string | null,
>   site_id?: number | null
> }
> ```

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `status` | `object` | No | — |

> [accordion] status full type
>
> ```ts theme={null}
> {
>   success?: boolean,
>   status_code?: number,
>   message?: string | null,
>   debug?: any | null,
>   reference_id?: string | null,
>   domain?: string | null
> }
> ```

***

### list

`images.list`

List image files uploaded to the FinerWorks account, with pagination

**Risk:** `read`

```ts theme={null}
await corsair.finerworks.api.images.list({ library: { name: 'inventory' }, page_number: 1, per_page: 20 });
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `library` | `object` | Yes | — |
| `search_filter` | `string` | No | — |
| `guid_filter` | `string[]` | No | — |
| `personal_gallery_id_filter` | `number[]` | No | — |
| `public_gallery_id_filter` | `number[]` | No | — |
| `page_number` | `number` | No | — |
| `per_page` | `number` | No | — |
| `sort_field` | `string` | No | — |
| `sort_direction` | `ASC \| DESC` | No | — |
| `upload_date_from` | `string` | No | — |
| `upload_date_to` | `string` | No | — |
| `list_products` | `boolean` | No | — |
| `active` | `boolean` | No | — |

> [accordion] library full type
>
> ```ts theme={null}
> {
>   name: string,
>   session_id?: string | null,
>   account_key?: string | null,
>   site_id?: number | null
> }
> ```

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `status` | `object` | No | — |
| `images` | `object[]` | No | — |
| `page_number` | `number` | No | — |
| `per_page` | `number` | No | — |
| `count` | `number` | No | — |

> [accordion] status full type
>
> ```ts theme={null}
> {
>   success?: boolean,
>   status_code?: number,
>   message?: string | null,
>   debug?: any | null,
>   reference_id?: string | null,
>   domain?: string | null
> }
> ```

> [accordion] images full type
>
> ```ts theme={null}
> {
>   id?: number | null,
>   guid?: string | null,
>   title?: string | null,
>   description?: string | null,
>   file_name?: string | null,
>   file_size?: number | null,
>   thumbnail_file_name?: string | null,
>   preview_file_name?: string | null,
>   hires_file_name?: string | null,
>   public_thumbnail_uri?: string | null,
>   public_preview_uri?: string | null,
>   private_hires_uri?: string | null,
>   personal_gallery_title?: string | null,
>   members_gallery_category?: string | null,
>   pix_w?: number | null,
>   pix_h?: number | null,
>   date_added?: string | null,
>   date_updated?: string | null,
>   date_expires?: string | null,
>   active?: boolean | null,
>   assigned_gallery_subcategory_ids?: number[] | null,
>   assigned_personal_gallery_ids?: number[] | null,
>   username?: string | null,
>   account_key?: string | null,
>   artistname?: string | null,
>   rank?: number | null
> }[]
> ```

***

### listFileSelection

`images.listFileSelection`

List the image GUIDs grouped under a file-selection key

**Risk:** `read`

```ts theme={null}
await corsair.finerworks.api.images.listFileSelection({ guid: '<selection-guid>' });
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `guid` | `string` | Yes | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `status` | `object` | No | — |
| `guids` | `string[]` | No | — |
| `guid` | `string` | No | — |

> [accordion] status full type
>
> ```ts theme={null}
> {
>   success?: boolean,
>   status_code?: number,
>   message?: string | null,
>   debug?: any | null,
>   reference_id?: string | null,
>   domain?: string | null
> }
> ```

***

### update

`images.update`

Update image metadata by GUID

**Risk:** `write`

```ts theme={null}
await corsair.finerworks.api.images.update({ images: [{ guid: '<image-guid>', title: 'Sunset over the bay' }] });
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `images` | `object[]` | Yes | — |
| `account_key` | `string` | No | — |

> [accordion] images full type
>
> ```ts theme={null}
> {
>   guid: string,
>   title?: string | null,
>   description?: string | null,
>   visible?: boolean | null,
>   assigned_gallery_subcategory_ids?: number[] | null,
>   assigned_personal_gallery_ids?: number[] | null,
>   rank?: number | null
> }[]
> ```

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `status` | `object` | No | — |
| `images` | `object[]` | No | — |

> [accordion] status full type
>
> ```ts theme={null}
> {
>   success?: boolean,
>   status_code?: number,
>   message?: string | null,
>   debug?: any | null,
>   reference_id?: string | null,
>   domain?: string | null
> }
> ```

> [accordion] images full type
>
> ```ts theme={null}
> {
>   id?: number | null,
>   guid?: string | null,
>   title?: string | null,
>   description?: string | null,
>   file_name?: string | null,
>   file_size?: number | null,
>   thumbnail_file_name?: string | null,
>   preview_file_name?: string | null,
>   hires_file_name?: string | null,
>   public_thumbnail_uri?: string | null,
>   public_preview_uri?: string | null,
>   private_hires_uri?: string | null,
>   personal_gallery_title?: string | null,
>   members_gallery_category?: string | null,
>   pix_w?: number | null,
>   pix_h?: number | null,
>   date_added?: string | null,
>   date_updated?: string | null,
>   date_expires?: string | null,
>   active?: boolean | null,
>   assigned_gallery_subcategory_ids?: number[] | null,
>   assigned_personal_gallery_ids?: number[] | null,
>   username?: string | null,
>   account_key?: string | null,
>   artistname?: string | null,
>   rank?: number | null
> }[]
> ```

***

### updateFileSelection

`images.updateFileSelection`

Replace the image files held under a selection GUID

**Risk:** `write`

```ts theme={null}
await corsair.finerworks.api.images.updateFileSelection({ guid: '<selection-guid>', guids: ['<image-guid>'] });
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `guids` | `string[]` | Yes | — |
| `guid` | `string` | Yes | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `status` | `object` | No | — |
| `guid` | `string` | No | — |

> [accordion] status full type
>
> ```ts theme={null}
> {
>   success?: boolean,
>   status_code?: number,
>   message?: string | null,
>   debug?: any | null,
>   reference_id?: string | null,
>   domain?: string | null
> }
> ```

***

## Inventory

### delete

`inventory.delete`

Delete virtual inventory products by SKU and disconnect their third-party sync

**Risk:** `destructive` · **Irreversible**

```ts theme={null}
await corsair.finerworks.api.inventory.delete({ skus: ['AP1556P79511'] });
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `skus` | `string[]` | Yes | — |
| `account_key` | `string` | No | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `status` | `object` | No | — |

> [accordion] status full type
>
> ```ts theme={null}
> {
>   success?: boolean,
>   status_code?: number,
>   message?: string | null,
>   debug?: any | null,
>   reference_id?: string | null,
>   domain?: string | null
> }
> ```

***

### disconnect

`inventory.disconnect`

Disconnect every virtual inventory item from a third-party platform

**Risk:** `write`

```ts theme={null}
await corsair.finerworks.api.inventory.disconnect({ platform: 'shopify' });
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `platform` | `string` | Yes | — |
| `account_key` | `string` | No | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `status` | `object` | No | — |

> [accordion] status full type
>
> ```ts theme={null}
> {
>   success?: boolean,
>   status_code?: number,
>   message?: string | null,
>   debug?: any | null,
>   reference_id?: string | null,
>   domain?: string | null
> }
> ```

***

### list

`inventory.list`

List the virtual inventory products on the account, with pagination

**Risk:** `read`

```ts theme={null}
await corsair.finerworks.api.inventory.list({ per_page: 20 });
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `search_filter` | `string` | No | — |
| `third_party_connections_filter` | `string[]` | No | — |
| `sku_filter` | `string[]` | No | — |
| `product_code_filter` | `string[]` | No | — |
| `product_type_ids_filter` | `number[]` | No | — |
| `guid_filter` | `string[]` | No | — |
| `page_number` | `number` | No | — |
| `per_page` | `number` | No | — |
| `sort_field` | `string` | No | — |
| `sort_direction` | `ASC \| DESC` | No | — |
| `created_date_from` | `string` | No | — |
| `created_date_to` | `string` | No | — |
| `account_key` | `string` | No | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `status` | `object` | No | — |
| `products` | `object[]` | No | — |
| `page_number` | `number` | No | — |
| `per_page` | `number` | No | — |
| `count` | `number` | No | — |

> [accordion] status full type
>
> ```ts theme={null}
> {
>   success?: boolean,
>   status_code?: number,
>   message?: string | null,
>   debug?: any | null,
>   reference_id?: string | null,
>   domain?: string | null
> }
> ```

> [accordion] products full type
>
> ```ts theme={null}
> {
>   id?: number | null,
>   sku?: string | null,
>   product_code?: string | null,
>   product_guid?: string | null,
>   image_guid?: string | null,
>   name?: string | null,
>   description_short?: string | null,
>   description_long?: string | null,
>   artist?: string | null,
>   monetary_format?: string | null,
>   quantity?: number | null,
>   quantity_in_stock?: number | null,
>   track_inventory?: boolean | null,
>   per_item_price?: number | null,
>   total_price?: number | null,
>   asking_price?: number | null,
>   geo_price?: number | null,
>   third_party_integrations?: {
>     etsy_product_id?: number | null,
>     shopify_product_id?: number | null,
>     shopify_variant_id?: number | null,
>     shopify_graphql_product_id?: string | null,
>     shopify_graphql_variant_id?: string | null,
>     squarespace_product_id?: string | null,
>     squarespace_variant_id?: string | null,
>     square_product_id?: string | null,
>     square_variant_id?: string | null,
>     bigcommerce_id?: number | null,
>     bigcommerce_variant_id?: number | null,
>     wix_inventory_id?: string | null,
>     wix_product_id?: string | null,
>     wix_variant_id?: string | null,
>     woocommerce_product_id?: number | null,
>     woocommerce_variant_id?: number | null
>   } | null,
>   price_details?: any | null,
>   framing_options?: any | null,
>   product_size?: any | null,
>   updated?: string | null,
>   valid?: boolean | null
> }[]
> ```

***

### update

`inventory.update`

Update virtual inventory pricing, stock and third-party integrations

**Risk:** `write`

```ts theme={null}
await corsair.finerworks.api.inventory.update({ virtual_inventory: [{ sku: 'AP1556P79511', asking_price: 200 }] });
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `virtual_inventory` | `object[]` | Yes | — |
| `account_key` | `string` | No | — |

> [accordion] virtual\_inventory full type
>
> ```ts theme={null}
> {
>   sku: string,
>   asking_price?: number | null,
>   name?: string | null,
>   description?: string | null,
>   quantity_in_stock?: number | null,
>   track_inventory?: boolean | null,
>   third_party_integrations?: {
>     etsy_product_id?: number | null,
>     shopify_product_id?: number | null,
>     shopify_variant_id?: number | null,
>     shopify_graphql_product_id?: string | null,
>     shopify_graphql_variant_id?: string | null,
>     squarespace_product_id?: string | null,
>     squarespace_variant_id?: string | null,
>     square_product_id?: string | null,
>     square_variant_id?: string | null,
>     bigcommerce_id?: number | null,
>     bigcommerce_variant_id?: number | null,
>     wix_inventory_id?: string | null,
>     wix_product_id?: string | null,
>     wix_variant_id?: string | null,
>     woocommerce_product_id?: number | null,
>     woocommerce_variant_id?: number | null
>   } | null
> }[]
> ```

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `status` | `object` | No | — |
| `products` | `object[]` | No | — |

> [accordion] status full type
>
> ```ts theme={null}
> {
>   success?: boolean,
>   status_code?: number,
>   message?: string | null,
>   debug?: any | null,
>   reference_id?: string | null,
>   domain?: string | null
> }
> ```

> [accordion] products full type
>
> ```ts theme={null}
> {
>   id?: number | null,
>   sku?: string | null,
>   product_code?: string | null,
>   product_guid?: string | null,
>   image_guid?: string | null,
>   name?: string | null,
>   description_short?: string | null,
>   description_long?: string | null,
>   artist?: string | null,
>   monetary_format?: string | null,
>   quantity?: number | null,
>   quantity_in_stock?: number | null,
>   track_inventory?: boolean | null,
>   per_item_price?: number | null,
>   total_price?: number | null,
>   asking_price?: number | null,
>   geo_price?: number | null,
>   third_party_integrations?: {
>     etsy_product_id?: number | null,
>     shopify_product_id?: number | null,
>     shopify_variant_id?: number | null,
>     shopify_graphql_product_id?: string | null,
>     shopify_graphql_variant_id?: string | null,
>     squarespace_product_id?: string | null,
>     squarespace_variant_id?: string | null,
>     square_product_id?: string | null,
>     square_variant_id?: string | null,
>     bigcommerce_id?: number | null,
>     bigcommerce_variant_id?: number | null,
>     wix_inventory_id?: string | null,
>     wix_product_id?: string | null,
>     wix_variant_id?: string | null,
>     woocommerce_product_id?: number | null,
>     woocommerce_variant_id?: number | null
>   } | null,
>   price_details?: any | null,
>   framing_options?: any | null,
>   product_size?: any | null,
>   updated?: string | null,
>   valid?: boolean | null
> }[]
> ```

***

## Orders

### deletePending

`orders.deletePending`

Remove orders that were saved as pending

**Risk:** `destructive` · **Irreversible**

```ts theme={null}
await corsair.finerworks.api.orders.deletePending({ ids: [12345] });
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `ids` | `number[]` | Yes | — |
| `account_key` | `string` | No | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `status` | `object` | No | — |

> [accordion] status full type
>
> ```ts theme={null}
> {
>   success?: boolean,
>   status_code?: number,
>   message?: string | null,
>   debug?: any | null,
>   reference_id?: string | null,
>   domain?: string | null
> }
> ```

***

### fetchStatus

`orders.fetchStatus`

Get production status and tracking information for orders

**Risk:** `read`

```ts theme={null}
await corsair.finerworks.api.orders.fetchStatus({ order_ids: [12345] });
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `order_pos` | `string[]` | No | — |
| `order_ids` | `number[]` | No | — |
| `account_key` | `string` | No | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `status` | `object` | No | — |
| `orders` | `object[]` | No | — |

> [accordion] status full type
>
> ```ts theme={null}
> {
>   success?: boolean,
>   status_code?: number,
>   message?: string | null,
>   debug?: any | null,
>   reference_id?: string | null,
>   domain?: string | null
> }
> ```

> [accordion] orders full type
>
> ```ts theme={null}
> {
>   order_confirmation_id?: number | null,
>   order_po?: string | null,
>   order_id?: number | null,
>   order_status_id?: number | null,
>   order_status_label?: string | null,
>   order_source?: string | null,
>   shipments?: {
>     creation_date?: string | null,
>     shipment_date?: string | null,
>     eta_date?: string | null,
>     delivery_date?: string | null,
>     weight?: number | null,
>     width?: number | null,
>     height?: number | null,
>     depth?: number | null,
>     tracking_number?: string | null,
>     tracking_url?: string | null,
>     carrier?: string | null,
>     service?: string | null,
>     history?: any | null
>   }[] | null,
>   processing?: boolean | null
> }[]
> ```

***

### listStatusDefinitions

`orders.listStatusDefinitions`

List every production status an order can have

**Risk:** `read`

```ts theme={null}
await corsair.finerworks.api.orders.listStatusDefinitions({});
```

**Input:** *empty object*

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `status` | `object` | No | — |
| `definitions` | `object[]` | No | — |

> [accordion] status full type
>
> ```ts theme={null}
> {
>   success?: boolean,
>   status_code?: number,
>   message?: string | null,
>   debug?: any | null,
>   reference_id?: string | null,
>   domain?: string | null
> }
> ```

> [accordion] definitions full type
>
> ```ts theme={null}
> {
>   order_status_id?: number | null,
>   order_status_label?: string | null
> }[]
> ```

***

### savePending

`orders.savePending`

Save orders to temporary storage for review before submission

**Risk:** `write`

```ts theme={null}
await corsair.finerworks.api.orders.savePending({ source: 'my-storefront', orders: [{ order_po: 'PO-1001', recipient: { first_name: 'Bob', last_name: 'Ross', address_1: '742 Evergreen Terrace', city: 'Springfield', state_code: 'OR', zip_postal_code: '97403', country_code: 'us' }, order_items: [{ product_sku: 'AP1556P79511', product_qty: 1 }] }] });
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `orders` | `object[]` | Yes | — |
| `source` | `string` | No | — |
| `account_key` | `string` | No | — |

> [accordion] orders full type
>
> ```ts theme={null}
> {
>   order_po: string,
>   order_key?: string | null,
>   recipient: {
>     first_name: string,
>     last_name: string,
>     company_name?: string | null,
>     address_1: string,
>     address_2?: string | null,
>     address_3?: string | null,
>     city: string,
>     state_code?: string | null,
>     province?: string | null,
>     zip_postal_code: string,
>     country_code: string,
>     phone?: string | null,
>     email?: string | null,
>     address_order_po?: string | null
>   },
>   order_items: {
>     product_order_po?: string | null,
>     product_qty: number,
>     product_sku: string,
>     product_image?: any | null,
>     product_title?: string | null,
>     template?: any | null,
>     product_guid?: string | null,
>     custom_data_1?: string | null,
>     custom_data_2?: string | null,
>     custom_data_3?: string | null,
>     coa?: any | null
>   }[],
>   shipping_code?: string | null,
>   ship_by_date?: string | null,
>   customs_tax_info?: any | null,
>   gift_message?: string | null,
>   test_mode?: boolean,
>   webhook_order_status_url?: string | null,
>   webhook_url?: string | null,
>   document_url?: string | null,
>   acct_number_ups?: string | null,
>   acct_number_fedex?: string | null,
>   custom_data_1?: string | null,
>   custom_data_2?: string | null,
>   custom_data_3?: string | null,
>   source?: string | null,
>   fulfillment_id?: number | null
> }[]
> ```

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `status` | `object` | No | — |
| `orders` | `object[]` | No | — |

> [accordion] status full type
>
> ```ts theme={null}
> {
>   success?: boolean,
>   status_code?: number,
>   message?: string | null,
>   debug?: any | null,
>   reference_id?: string | null,
>   domain?: string | null
> }
> ```

> [accordion] orders full type
>
> ```ts theme={null}
> {
>   order_po?: string | null,
>   order_id?: number | null,
>   order_confirmation_id?: number | null,
>   order_guid?: string | null,
>   order_email?: string | null,
>   order_confirmation_datetime?: string | null,
>   order_source?: string | null,
>   order_status?: string | null
> }[]
> ```

***

### submit

`orders.submit`

Submit up to five new orders for production

**Risk:** `write`

```ts theme={null}
await corsair.finerworks.api.orders.submit({ orders: [{ order_po: 'PO-1001', test_mode: true, recipient: { first_name: 'Bob', last_name: 'Ross', address_1: '742 Evergreen Terrace', city: 'Springfield', state_code: 'OR', zip_postal_code: '97403', country_code: 'us' }, order_items: [{ product_sku: 'AP1556P79511', product_qty: 1 }] }] });
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `orders` | `object[]` | Yes | — |

> [accordion] orders full type
>
> ```ts theme={null}
> {
>   order_po: string,
>   order_key?: string | null,
>   recipient: {
>     first_name: string,
>     last_name: string,
>     company_name?: string | null,
>     address_1: string,
>     address_2?: string | null,
>     address_3?: string | null,
>     city: string,
>     state_code?: string | null,
>     province?: string | null,
>     zip_postal_code: string,
>     country_code: string,
>     phone?: string | null,
>     email?: string | null,
>     address_order_po?: string | null
>   },
>   order_items: {
>     product_order_po?: string | null,
>     product_qty: number,
>     product_sku: string,
>     product_image?: any | null,
>     product_title?: string | null,
>     template?: any | null,
>     product_guid?: string | null,
>     custom_data_1?: string | null,
>     custom_data_2?: string | null,
>     custom_data_3?: string | null,
>     coa?: any | null
>   }[],
>   shipping_code?: string | null,
>   ship_by_date?: string | null,
>   customs_tax_info?: any | null,
>   gift_message?: string | null,
>   test_mode?: boolean,
>   webhook_order_status_url?: string | null,
>   webhook_url?: string | null,
>   document_url?: string | null,
>   acct_number_ups?: string | null,
>   acct_number_fedex?: string | null,
>   custom_data_1?: string | null,
>   custom_data_2?: string | null,
>   custom_data_3?: string | null,
>   source?: string | null,
>   fulfillment_id?: number | null
> }[]
> ```

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `status` | `object` | No | — |
| `orders` | `object[]` | No | — |

> [accordion] status full type
>
> ```ts theme={null}
> {
>   success?: boolean,
>   status_code?: number,
>   message?: string | null,
>   debug?: any | null,
>   reference_id?: string | null,
>   domain?: string | null
> }
> ```

> [accordion] orders full type
>
> ```ts theme={null}
> {
>   order_po?: string | null,
>   order_id?: number | null,
>   order_confirmation_id?: number | null,
>   order_guid?: string | null,
>   order_email?: string | null,
>   order_confirmation_datetime?: string | null,
>   order_source?: string | null,
>   order_status?: string | null
> }[]
> ```

***

### validateRecipientAddress

`orders.validateRecipientAddress`

Validate a recipient address before submitting an order

**Risk:** `read`

```ts theme={null}
await corsair.finerworks.api.orders.validateRecipientAddress({ recipient: { first_name: 'Bob', last_name: 'Ross', address_1: '742 Evergreen Terrace', city: 'Springfield', state_code: 'OR', zip_postal_code: '97403', country_code: 'us' } });
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `recipient` | `object` | Yes | — |

> [accordion] recipient full type
>
> ```ts theme={null}
> {
>   first_name: string,
>   last_name: string,
>   company_name?: string | null,
>   address_1: string,
>   address_2?: string | null,
>   address_3?: string | null,
>   city: string,
>   state_code?: string | null,
>   province?: string | null,
>   zip_postal_code: string,
>   country_code: string,
>   phone?: string | null,
>   email?: string | null,
>   address_order_po?: string | null
> }
> ```

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `status` | `object` | No | — |
| `address` | `object` | No | — |

> [accordion] status full type
>
> ```ts theme={null}
> {
>   success?: boolean,
>   status_code?: number,
>   message?: string | null,
>   debug?: any | null,
>   reference_id?: string | null,
>   domain?: string | null
> }
> ```

> [accordion] address full type
>
> ```ts theme={null}
> {
>   first_name?: string | null,
>   last_name?: string | null,
>   company_name?: string | null,
>   address_1?: string | null,
>   address_2?: string | null,
>   address_3?: string | null,
>   city?: string | null,
>   state_code?: string | null,
>   province?: string | null,
>   zip_postal_code?: string | null,
>   country_code?: string | null,
>   phone?: string | null,
>   email?: string | null,
>   address_order_po?: string | null
> }
> ```

***

## Products

### getPrices

`products.getPrices`

Get pricing for a set of FinerWorks product SKUs

**Risk:** `read`

```ts theme={null}
await corsair.finerworks.api.products.getPrices({ products: [{ product_sku: 'AP1556P79511', product_qty: 1 }] });
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `products` | `object[]` | Yes | — |
| `account_key` | `string` | No | — |

> [accordion] products full type
>
> ```ts theme={null}
> {
>   product_qty: number,
>   product_sku: string
> }[]
> ```

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `status` | `object` | No | — |
| `prices` | `object[]` | No | — |

> [accordion] status full type
>
> ```ts theme={null}
> {
>   success?: boolean,
>   status_code?: number,
>   message?: string | null,
>   debug?: any | null,
>   reference_id?: string | null,
>   domain?: string | null
> }
> ```

> [accordion] prices full type
>
> ```ts theme={null}
> {
>   product_qty?: number | null,
>   product_sku?: string | null,
>   product_code?: string | null,
>   product_price?: number | null,
>   add_frame_price?: number | null,
>   add_mat_1_price?: number | null,
>   add_mat_2_price?: number | null,
>   add_glazing_price?: number | null,
>   add_color_correct_price?: number | null,
>   total_price?: number | null,
>   geo_price?: number | null,
>   info?: string | null
> }[]
> ```

***

### listMediaTypes

`products.listMediaTypes`

List printing substrates (canvas, paper, vinyl) and their product information

**Risk:** `read`

```ts theme={null}
await corsair.finerworks.api.products.listMediaTypes({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `ids` | `number[]` | No | — |
| `site_id` | `number` | No | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `status` | `object` | No | — |
| `media_types` | `object[]` | No | — |

> [accordion] status full type
>
> ```ts theme={null}
> {
>   success?: boolean,
>   status_code?: number,
>   message?: string | null,
>   debug?: any | null,
>   reference_id?: string | null,
>   domain?: string | null
> }
> ```

> [accordion] media\_types full type
>
> ```ts theme={null}
> {
>   id?: number | null,
>   product_type_id?: number | null,
>   name?: string | null,
>   description?: string | null,
>   style_ids?: number[] | null,
>   icon_url?: string | null
> }[]
> ```

***

### listProductTypes

`products.listProductTypes`

List printing categories such as Canvas Prints and Metal Prints

**Risk:** `read`

```ts theme={null}
await corsair.finerworks.api.products.listProductTypes({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `ids` | `number[]` | No | — |
| `site_id` | `number` | No | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `status` | `object` | No | — |
| `product_types` | `object[]` | No | — |

> [accordion] status full type
>
> ```ts theme={null}
> {
>   success?: boolean,
>   status_code?: number,
>   message?: string | null,
>   debug?: any | null,
>   reference_id?: string | null,
>   domain?: string | null
> }
> ```

> [accordion] product\_types full type
>
> ```ts theme={null}
> {
>   id?: number | null,
>   name?: string | null,
>   description?: string | null,
>   media_ids?: number[] | null,
>   printable_ids?: number[] | null,
>   icon_url?: string | null,
>   color_code?: string | null
> }[]
> ```

***

### listStyleTypes

`products.listStyleTypes`

List print formatting options including borders and canvas wraps

**Risk:** `read`

```ts theme={null}
await corsair.finerworks.api.products.listStyleTypes({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `ids` | `number[]` | No | — |
| `site_id` | `number` | No | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `status` | `object` | No | — |
| `style_types` | `object[]` | No | — |

> [accordion] status full type
>
> ```ts theme={null}
> {
>   success?: boolean,
>   status_code?: number,
>   message?: string | null,
>   debug?: any | null,
>   reference_id?: string | null,
>   domain?: string | null
> }
> ```

> [accordion] style\_types full type
>
> ```ts theme={null}
> {
>   id?: number | null,
>   name?: string | null,
>   description?: string | null,
>   can_frame?: boolean | null,
>   can_mat?: boolean | null,
>   can_glaze?: boolean | null,
>   frame_class_ids?: number[] | null,
>   custom_sizing?: boolean | null,
>   min?: {
>     width?: number | null,
>     height?: number | null
>   } | null,
>   max?: {
>     width?: number | null,
>     height?: number | null
>   } | null,
>   available_sizes?: {
>     width?: number | null,
>     height?: number | null
>   }[] | null,
>   border_size?: number | null,
>   bleed_amt?: number | null,
>   corner_radius?: number | null,
>   depth?: number | null,
>   icon_url?: string | null,
>   allow_decimal?: boolean | null,
>   mounting_add_ons?: {
>     id?: number | null,
>     name?: string | null,
>     description?: string | null,
>     icon_url?: string | null,
>     rate?: number | null,
>     price?: number | null,
>     min?: {
>       width?: number | null,
>       height?: number | null
>     } | null,
>     max?: {
>       width?: number | null,
>       height?: number | null
>     } | null
>   }[] | null
> }[]
> ```

***

## Shipping

### getOptionIds

`shipping.getOptionIds`

List shipping method identifiers for cross-reference

**Risk:** `read`

```ts theme={null}
await corsair.finerworks.api.shipping.getOptionIds({ type: 1 });
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `type` | `number` | No | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `status` | `object` | No | — |
| `shipping_options_ids` | `number[]` | No | — |

> [accordion] status full type
>
> ```ts theme={null}
> {
>   success?: boolean,
>   status_code?: number,
>   message?: string | null,
>   debug?: any | null,
>   reference_id?: string | null,
>   domain?: string | null
> }
> ```

***

### listOptionsMultiple

`shipping.listOptionsMultiple`

Get shipping options and rates for a batch of orders

**Risk:** `read`

```ts theme={null}
await corsair.finerworks.api.shipping.listOptionsMultiple({ orders: [{ order_po: 'PO-1001', recipient: { first_name: 'Bob', last_name: 'Ross', address_1: '742 Evergreen Terrace', city: 'Springfield', state_code: 'OR', zip_postal_code: '97403', country_code: 'us' }, order_items: [{ product_sku: 'AP1556P79511', product_qty: 1 }] }] });
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `orders` | `object[]` | Yes | — |
| `account_key` | `string` | No | — |

> [accordion] orders full type
>
> ```ts theme={null}
> {
>   order_po: string,
>   order_key?: string | null,
>   recipient: {
>     first_name: string,
>     last_name: string,
>     company_name?: string | null,
>     address_1: string,
>     address_2?: string | null,
>     address_3?: string | null,
>     city: string,
>     state_code?: string | null,
>     province?: string | null,
>     zip_postal_code: string,
>     country_code: string,
>     phone?: string | null,
>     email?: string | null,
>     address_order_po?: string | null
>   },
>   order_items: {
>     product_order_po?: string | null,
>     product_qty: number,
>     product_sku: string,
>     product_image?: any | null,
>     product_title?: string | null,
>     template?: any | null,
>     product_guid?: string | null,
>     custom_data_1?: string | null,
>     custom_data_2?: string | null,
>     custom_data_3?: string | null,
>     coa?: any | null
>   }[],
>   shipping_code?: string | null,
>   ship_by_date?: string | null,
>   customs_tax_info?: any | null,
>   gift_message?: string | null,
>   test_mode?: boolean,
>   webhook_order_status_url?: string | null,
>   webhook_url?: string | null,
>   document_url?: string | null,
>   acct_number_ups?: string | null,
>   acct_number_fedex?: string | null,
>   custom_data_1?: string | null,
>   custom_data_2?: string | null,
>   custom_data_3?: string | null,
>   source?: string | null,
>   fulfillment_id?: number | null
> }[]
> ```

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `status` | `object` | No | — |
| `orders` | `object[]` | No | — |

> [accordion] status full type
>
> ```ts theme={null}
> {
>   success?: boolean,
>   status_code?: number,
>   message?: string | null,
>   debug?: any | null,
>   reference_id?: string | null,
>   domain?: string | null
> }
> ```

> [accordion] orders full type
>
> ```ts theme={null}
> {
>   order_po?: string | null,
>   options?: {
>     id?: number | null,
>     rate?: number | null,
>     shipping_method?: string | null,
>     shipping_code?: string | null,
>     shipping_class_code?: string | null,
>     calculated_total?: {
>       order_po?: string | null,
>       order_subtotal?: number | null,
>       order_shipping_rate?: number | null,
>       order_discount?: number | null,
>       order_sales_tax?: number | null,
>       order_sales_tax_rate?: number | null,
>       order_expedite_fee?: number | null,
>       order_credits_used?: number | null,
>       order_grand_total?: number | null,
>       product_pricing?: {
>         product_qty?: number | null,
>         product_sku?: string | null
>       }[] | null
>     } | null
>   }[] | null
> }[]
> ```

***


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.