finerworks.api.* operation is listed below with parameter shapes and return types from the plugin Zod schemas.
Account
getCompanyInfo
account.getCompanyInfo
Get FinerWorks’ site identifier, company address and business hours
Risk: read
await corsair.finerworks.api.account.getCompanyInfo({});
| Name | Type | Required | Description |
|---|---|---|---|
status | object | No | — |
site_id | number | No | — |
address | object | No | — |
lobby_hours | string | No | — |
status full type
status full type
{
success?: boolean,
status_code?: number,
message?: string | null,
debug?: any | null,
reference_id?: string | null,
domain?: string | null
}
address full type
address full type
{
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
await corsair.finerworks.api.account.getUser({});
| Name | Type | Required | Description |
|---|---|---|---|
account_key | string | No | — |
| Name | Type | Required | Description |
|---|---|---|---|
status | object | No | — |
user_account | object | No | — |
status full type
status full type
{
success?: boolean,
status_code?: number,
message?: string | null,
debug?: any | null,
reference_id?: string | null,
domain?: string | null
}
user_account full type
user_account full type
{
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
await corsair.finerworks.api.account.updateAppDetails({ app_details: { app_name: 'My storefront', app_live_mode: true } });
| Name | Type | Required | Description |
|---|---|---|---|
app_details | object | Yes | — |
app_details full type
app_details full type
{
app_key?: string | null,
app_name?: string | null,
app_description?: string | null,
app_misc_data?: string | null,
app_live_mode?: boolean | null
}
| Name | Type | Required | Description |
|---|---|---|---|
status | object | No | — |
status full type
status full type
{
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
await corsair.finerworks.api.account.updateUser({ shipping_preferences: [0, 2, 1] });
| 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 | — |
billing_info full type
billing_info full type
{
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
}
business_info full type
business_info full type
{
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
}
connections full type
connections full type
{
name?: string | null,
id?: string | null,
data?: string | null
}[]
| Name | Type | Required | Description |
|---|---|---|---|
status | object | No | — |
status full type
status full type
{
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
await corsair.finerworks.api.framing.getFrameDetails({ id: 131 });
| Name | Type | Required | Description |
|---|---|---|---|
id | number | Yes | — |
product_code | string | No | — |
| Name | Type | Required | Description |
|---|---|---|---|
status | object | No | — |
frame | object | No | — |
frame_details | object | No | — |
status full type
status full type
{
success?: boolean,
status_code?: number,
message?: string | null,
debug?: any | null,
reference_id?: string | null,
domain?: string | null
}
frame full type
frame full type
{
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
}
frame_details full type
frame_details full type
{
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
await corsair.finerworks.api.framing.listCollections({});
| Name | Type | Required | Description |
|---|---|---|---|
id | number | No | — |
product_code | string | No | — |
| Name | Type | Required | Description |
|---|---|---|---|
status | object | No | — |
collections | object[] | No | — |
frame_collections | object[] | No | — |
status full type
status full type
{
success?: boolean,
status_code?: number,
message?: string | null,
debug?: any | null,
reference_id?: string | null,
domain?: string | null
}
collections full type
collections full type
{
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
}[]
frame_collections full type
frame_collections full type
{
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
await corsair.finerworks.api.framing.listGlazing({});
| Name | Type | Required | Description |
|---|---|---|---|
id | number | No | — |
product_code | string | No | — |
| Name | Type | Required | Description |
|---|---|---|---|
status | object | No | — |
glazing | object[] | No | — |
status full type
status full type
{
success?: boolean,
status_code?: number,
message?: string | null,
debug?: any | null,
reference_id?: string | null,
domain?: string | null
}
glazing full type
glazing full type
{
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
await corsair.finerworks.api.framing.listMats({});
| Name | Type | Required | Description |
|---|---|---|---|
id | number | No | — |
product_code | string | No | — |
| Name | Type | Required | Description |
|---|---|---|---|
status | object | No | — |
mats | object[] | No | — |
status full type
status full type
{
success?: boolean,
status_code?: number,
message?: string | null,
debug?: any | null,
reference_id?: string | null,
domain?: string | null
}
mats full type
mats full type
{
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
await corsair.finerworks.api.galleries.addOrUpdateCollection({ name: 'Seascapes', visible: true });
| Name | Type | Required | Description |
|---|---|---|---|
id | number | No | — |
name | string | Yes | — |
description | string | No | — |
visible | boolean | No | — |
account_key | string | No | — |
| Name | Type | Required | Description |
|---|---|---|---|
status | object | No | — |
id | number | No | — |
status full type
status full type
{
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
await corsair.finerworks.api.galleries.list({});
| Name | Type | Required | Description |
|---|---|---|---|
account_key | string | No | — |
personal | boolean | No | — |
gallery_ids | number[] | No | — |
| Name | Type | Required | Description |
|---|---|---|---|
status | object | No | — |
galleries | object[] | No | — |
status full type
status full type
{
success?: boolean,
status_code?: number,
message?: string | null,
debug?: any | null,
reference_id?: string | null,
domain?: string | null
}
galleries full type
galleries full type
{
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
await corsair.finerworks.api.galleries.listThemes({});
| Name | Type | Required | Description |
|---|---|---|---|
filter | string[] | No | — |
| Name | Type | Required | Description |
|---|---|---|---|
status | object | No | — |
themes | object[] | No | — |
status full type
status full type
{
success?: boolean,
status_code?: number,
message?: string | null,
debug?: any | null,
reference_id?: string | null,
domain?: string | null
}
themes full type
themes full type
{
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
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' }] });
| Name | Type | Required | Description |
|---|---|---|---|
images | object[] | Yes | — |
library | object | Yes | — |
images full type
images full type
{
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
}[]
library full type
library full type
{
name: string,
session_id?: string | null,
account_key?: string | null,
site_id?: number | null
}
| Name | Type | Required | Description |
|---|---|---|---|
status | object | No | — |
images | object[] | No | — |
status full type
status full type
{
success?: boolean,
status_code?: number,
message?: string | null,
debug?: any | null,
reference_id?: string | null,
domain?: string | null
}
images full type
images full type
{
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
await corsair.finerworks.api.images.delete({ guids: ['<image-guid>'] });
| Name | Type | Required | Description |
|---|---|---|---|
guids | string[] | Yes | — |
library | object | No | — |
account_key | string | No | — |
library full type
library full type
{
name: string,
session_id?: string | null,
account_key?: string | null,
site_id?: number | null
}
| Name | Type | Required | Description |
|---|---|---|---|
status | object | No | — |
status full type
status full type
{
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
await corsair.finerworks.api.images.list({ library: { name: 'inventory' }, page_number: 1, per_page: 20 });
| 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 | — |
library full type
library full type
{
name: string,
session_id?: string | null,
account_key?: string | null,
site_id?: number | null
}
| Name | Type | Required | Description |
|---|---|---|---|
status | object | No | — |
images | object[] | No | — |
page_number | number | No | — |
per_page | number | No | — |
count | number | No | — |
status full type
status full type
{
success?: boolean,
status_code?: number,
message?: string | null,
debug?: any | null,
reference_id?: string | null,
domain?: string | null
}
images full type
images full type
{
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
await corsair.finerworks.api.images.listFileSelection({ guid: '<selection-guid>' });
| Name | Type | Required | Description |
|---|---|---|---|
guid | string | Yes | — |
| Name | Type | Required | Description |
|---|---|---|---|
status | object | No | — |
guids | string[] | No | — |
guid | string | No | — |
status full type
status full type
{
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
await corsair.finerworks.api.images.update({ images: [{ guid: '<image-guid>', title: 'Sunset over the bay' }] });
| Name | Type | Required | Description |
|---|---|---|---|
images | object[] | Yes | — |
account_key | string | No | — |
images full type
images full type
{
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
}[]
| Name | Type | Required | Description |
|---|---|---|---|
status | object | No | — |
images | object[] | No | — |
status full type
status full type
{
success?: boolean,
status_code?: number,
message?: string | null,
debug?: any | null,
reference_id?: string | null,
domain?: string | null
}
images full type
images full type
{
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
await corsair.finerworks.api.images.updateFileSelection({ guid: '<selection-guid>', guids: ['<image-guid>'] });
| Name | Type | Required | Description |
|---|---|---|---|
guids | string[] | Yes | — |
guid | string | Yes | — |
| Name | Type | Required | Description |
|---|---|---|---|
status | object | No | — |
guid | string | No | — |
status full type
status full type
{
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
await corsair.finerworks.api.inventory.delete({ skus: ['AP1556P79511'] });
| Name | Type | Required | Description |
|---|---|---|---|
skus | string[] | Yes | — |
account_key | string | No | — |
| Name | Type | Required | Description |
|---|---|---|---|
status | object | No | — |
status full type
status full type
{
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
await corsair.finerworks.api.inventory.disconnect({ platform: 'shopify' });
| Name | Type | Required | Description |
|---|---|---|---|
platform | string | Yes | — |
account_key | string | No | — |
| Name | Type | Required | Description |
|---|---|---|---|
status | object | No | — |
status full type
status full type
{
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
await corsair.finerworks.api.inventory.list({ per_page: 20 });
| 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 | — |
| Name | Type | Required | Description |
|---|---|---|---|
status | object | No | — |
products | object[] | No | — |
page_number | number | No | — |
per_page | number | No | — |
count | number | No | — |
status full type
status full type
{
success?: boolean,
status_code?: number,
message?: string | null,
debug?: any | null,
reference_id?: string | null,
domain?: string | null
}
products full type
products full type
{
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
await corsair.finerworks.api.inventory.update({ virtual_inventory: [{ sku: 'AP1556P79511', asking_price: 200 }] });
| Name | Type | Required | Description |
|---|---|---|---|
virtual_inventory | object[] | Yes | — |
account_key | string | No | — |
virtual_inventory full type
virtual_inventory full type
{
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
}[]
| Name | Type | Required | Description |
|---|---|---|---|
status | object | No | — |
products | object[] | No | — |
status full type
status full type
{
success?: boolean,
status_code?: number,
message?: string | null,
debug?: any | null,
reference_id?: string | null,
domain?: string | null
}
products full type
products full type
{
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
await corsair.finerworks.api.orders.deletePending({ ids: [12345] });
| Name | Type | Required | Description |
|---|---|---|---|
ids | number[] | Yes | — |
account_key | string | No | — |
| Name | Type | Required | Description |
|---|---|---|---|
status | object | No | — |
status full type
status full type
{
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
await corsair.finerworks.api.orders.fetchStatus({ order_ids: [12345] });
| Name | Type | Required | Description |
|---|---|---|---|
order_pos | string[] | No | — |
order_ids | number[] | No | — |
account_key | string | No | — |
| Name | Type | Required | Description |
|---|---|---|---|
status | object | No | — |
orders | object[] | No | — |
status full type
status full type
{
success?: boolean,
status_code?: number,
message?: string | null,
debug?: any | null,
reference_id?: string | null,
domain?: string | null
}
orders full type
orders full type
{
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
await corsair.finerworks.api.orders.listStatusDefinitions({});
| Name | Type | Required | Description |
|---|---|---|---|
status | object | No | — |
definitions | object[] | No | — |
status full type
status full type
{
success?: boolean,
status_code?: number,
message?: string | null,
debug?: any | null,
reference_id?: string | null,
domain?: string | null
}
definitions full type
definitions full type
{
order_status_id?: number | null,
order_status_label?: string | null
}[]
savePending
orders.savePending
Save orders to temporary storage for review before submission
Risk: write
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 }] }] });
| Name | Type | Required | Description |
|---|---|---|---|
orders | object[] | Yes | — |
source | string | No | — |
account_key | string | No | — |
orders full type
orders full type
{
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
}[]
| Name | Type | Required | Description |
|---|---|---|---|
status | object | No | — |
orders | object[] | No | — |
status full type
status full type
{
success?: boolean,
status_code?: number,
message?: string | null,
debug?: any | null,
reference_id?: string | null,
domain?: string | null
}
orders full type
orders full type
{
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
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 }] }] });
| Name | Type | Required | Description |
|---|---|---|---|
orders | object[] | Yes | — |
orders full type
orders full type
{
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
}[]
| Name | Type | Required | Description |
|---|---|---|---|
status | object | No | — |
orders | object[] | No | — |
status full type
status full type
{
success?: boolean,
status_code?: number,
message?: string | null,
debug?: any | null,
reference_id?: string | null,
domain?: string | null
}
orders full type
orders full type
{
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
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' } });
| Name | Type | Required | Description |
|---|---|---|---|
recipient | object | Yes | — |
recipient full type
recipient full type
{
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
}
| Name | Type | Required | Description |
|---|---|---|---|
status | object | No | — |
address | object | No | — |
status full type
status full type
{
success?: boolean,
status_code?: number,
message?: string | null,
debug?: any | null,
reference_id?: string | null,
domain?: string | null
}
address full type
address full type
{
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
await corsair.finerworks.api.products.getPrices({ products: [{ product_sku: 'AP1556P79511', product_qty: 1 }] });
| Name | Type | Required | Description |
|---|---|---|---|
products | object[] | Yes | — |
account_key | string | No | — |
products full type
products full type
{
product_qty: number,
product_sku: string
}[]
| Name | Type | Required | Description |
|---|---|---|---|
status | object | No | — |
prices | object[] | No | — |
status full type
status full type
{
success?: boolean,
status_code?: number,
message?: string | null,
debug?: any | null,
reference_id?: string | null,
domain?: string | null
}
prices full type
prices full type
{
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
await corsair.finerworks.api.products.listMediaTypes({});
| Name | Type | Required | Description |
|---|---|---|---|
ids | number[] | No | — |
site_id | number | No | — |
| Name | Type | Required | Description |
|---|---|---|---|
status | object | No | — |
media_types | object[] | No | — |
status full type
status full type
{
success?: boolean,
status_code?: number,
message?: string | null,
debug?: any | null,
reference_id?: string | null,
domain?: string | null
}
media_types full type
media_types full type
{
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
await corsair.finerworks.api.products.listProductTypes({});
| Name | Type | Required | Description |
|---|---|---|---|
ids | number[] | No | — |
site_id | number | No | — |
| Name | Type | Required | Description |
|---|---|---|---|
status | object | No | — |
product_types | object[] | No | — |
status full type
status full type
{
success?: boolean,
status_code?: number,
message?: string | null,
debug?: any | null,
reference_id?: string | null,
domain?: string | null
}
product_types full type
product_types full type
{
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
await corsair.finerworks.api.products.listStyleTypes({});
| Name | Type | Required | Description |
|---|---|---|---|
ids | number[] | No | — |
site_id | number | No | — |
| Name | Type | Required | Description |
|---|---|---|---|
status | object | No | — |
style_types | object[] | No | — |
status full type
status full type
{
success?: boolean,
status_code?: number,
message?: string | null,
debug?: any | null,
reference_id?: string | null,
domain?: string | null
}
style_types full type
style_types full type
{
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
await corsair.finerworks.api.shipping.getOptionIds({ type: 1 });
| Name | Type | Required | Description |
|---|---|---|---|
type | number | No | — |
| Name | Type | Required | Description |
|---|---|---|---|
status | object | No | — |
shipping_options_ids | number[] | No | — |
status full type
status full type
{
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
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 }] }] });
| Name | Type | Required | Description |
|---|---|---|---|
orders | object[] | Yes | — |
account_key | string | No | — |
orders full type
orders full type
{
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
}[]
| Name | Type | Required | Description |
|---|---|---|---|
status | object | No | — |
orders | object[] | No | — |
status full type
status full type
{
success?: boolean,
status_code?: number,
message?: string | null,
debug?: any | null,
reference_id?: string | null,
domain?: string | null
}
orders full type
orders full type
{
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
}[]