Mutations
All available GraphQL mutations for creating, updating, and deleting data.
addFashionModelToLibrary
Add a fashion model to your team's library (quota dependent)
Returns: Boolean!
Arguments:
id(UUID!) required
Example:
mutation {
addFashionModelToLibrary(id: "value") {
# Add your fields here
}
}
addPatternRevisionToDesignerInstance
Select a PatternRevision for use on a Designer Instance. Idempotent.
Returns: DesignerInstance!
Arguments:
designerInstanceId(UUID!) requiredpatternRevisionId(UUID!) required
Example:
mutation {
addPatternRevisionToDesignerInstance(designerInstanceId: "value", patternRevisionId: "value") {
# Add your fields here
}
}
addSingleShotToGroupShot
Add a single shot to a group shot (max 3)
Returns: GroupShotSingleShot!
Arguments:
groupShotId(UUID!) requiredcampaignImageId(UUID!) required
Example:
mutation {
addSingleShotToGroupShot(groupShotId: "value", campaignImageId: "value") {
# Add your fields here
}
}
addSkillToBatch
Add a skill to a batch
Returns: Batch!
Arguments:
batchId(UUID!) requiredskillId(UUID!) required
Example:
mutation {
addSkillToBatch(batchId: "value", skillId: "value") {
# Add your fields here
}
}
archiveProductStudioPerspective
Archive a product studio perspective (soft hide from default list)
Returns: ProductStudioPerspective!
Arguments:
id(UUID!) required
Example:
mutation {
archiveProductStudioPerspective(id: "value") {
# Add your fields here
}
}
assignCampaignImageToCampaign
Assign an existing campaign image to a campaign
Returns: CampaignImage!
Arguments:
campaignImageId(UUID!) requiredcampaignId(UUID!) required
Example:
mutation {
assignCampaignImageToCampaign(campaignImageId: "value", campaignId: "value") {
# Add your fields here
}
}
clearCampaignImageFashionModel
Clear fashion model from a campaign image
Returns: CampaignImage!
Arguments:
campaignImageId(UUID!) required
Example:
mutation {
clearCampaignImageFashionModel(campaignImageId: "value") {
# Add your fields here
}
}
clearCampaignImageShootingLocation
Clear shooting location revision from a campaign image
Returns: CampaignImage!
Arguments:
campaignImageId(UUID!) required
Example:
mutation {
clearCampaignImageShootingLocation(campaignImageId: "value") {
# Add your fields here
}
}
createBatch
Create a new batch
Returns: Batch!
Arguments:
instructions(String)
Example:
mutation {
createBatch(instructions: "example") {
# Add your fields here
}
}
createBillingPortalSession
Create a Stripe Customer Portal session for invoice and billing management.
Returns: CreateBillingPortalSessionResponse!
Arguments:
returnUrl(String!) required
Example:
mutation {
createBillingPortalSession(returnUrl: "example") {
# Add your fields here
}
}
createBrandMemory
Returns: BrandMemory!
Arguments:
brandName(String!) requiredbrandIdentity(String!) requiredfashionModelInstructions(String)photoStyleInstructions(String)targetGroupInstructions(String)
Example:
mutation {
createBrandMemory(brandName: "example", brandIdentity: "example", fashionModelInstructions: "example", photoStyleInstructions: "example", targetGroupInstructions: "example") {
# Add your fields here
}
}
createCampaign
Create a new campaign
Returns: Campaign!
Arguments:
name(String!) requiredshootingLocationRevisionId(UUID)
Example:
mutation {
createCampaign(name: "example", shootingLocationRevisionId: "value") {
# Add your fields here
}
}
createCampaignImage
Create a new campaign image, optionally assigned to a campaign
Returns: CampaignImage!
Arguments:
title(String!) requiredprompt(String)campaignId(UUID)aspectRatio(AspectRatio)
Example:
mutation {
createCampaignImage(title: "example", prompt: "example", campaignId: "value", aspectRatio: "value") {
# Add your fields here
}
}
createCampaignImageResource
Create a resource with pre-analyzed content
Returns: CampaignImageResource!
Arguments:
campaignImageId(UUID!) requiredname(String!) requiredcontent(String!) requiredpurpose(String!) required
Example:
mutation {
createCampaignImageResource(campaignImageId: "value", name: "example", content: "example", purpose: "example") {
# Add your fields here
}
}
createDesignerInstance
Create a new Designer Instance
Returns: DesignerInstance!
Arguments:
title(String!) required
Example:
mutation {
createDesignerInstance(title: "example") {
# Add your fields here
}
}
createFashionModelCasting
Create a new fashion model casting session
Returns: FashionModelCasting!
Arguments:
gender(FashionModelGender!) requiredprompt(String!) required
Example:
mutation {
createFashionModelCasting(gender: "value", prompt: "example") {
# Add your fields here
}
}
createFashionModelFromCastingResult
Create a fashion model from a selected casting result
Returns: FashionModel!
Arguments:
castingResultId(UUID!) requiredmodelName(String!) requiredgender(FashionModelGender!) required
Example:
mutation {
createFashionModelFromCastingResult(castingResultId: "value", modelName: "example", gender: "value") {
# Add your fields here
}
}
createGroupShot
Create a new group shot within a campaign
Returns: GroupShot!
Arguments:
campaignId(UUID!) requiredshootingLocationRevisionId(UUID)prompt(String)aspectRatio(AspectRatio)
Example:
mutation {
createGroupShot(campaignId: "value", shootingLocationRevisionId: "value", prompt: "example", aspectRatio: "value") {
# Add your fields here
}
}
createOnboardingSampleData
Create initial sample data for onboarding (idempotent)
Returns: OnboardingSampleDataResult!
Example:
mutation {
createOnboardingSampleData {
# Add your fields here
}
}
createPattern
Create a new Pattern (shop-level, scoped to the current team).
Returns: Pattern!
Arguments:
name(String!) requiredrepeatHorizontal(Boolean)repeatVertical(Boolean)
Example:
mutation {
createPattern(name: "example", repeatHorizontal: true, repeatVertical: true) {
# Add your fields here
}
}
createProductSpotlight
Returns: ProductSpotlight!
Arguments:
productId(String!) requiredproductTitle(String!) requiredproductImage(String!) requiredproductImageId(String!) requiredpickerResult(String!) requiredstatus(ContentGenerationStatus!) requiredvariant(String)sceneSuggestions([String!])objectType(String)userPrompt(String)optimizedPrompt(String)title(String)subtitle(String)ctaText(String)
Example:
mutation {
createProductSpotlight(productId: "example", productTitle: "example", productImage: "example", productImageId: "example", pickerResult: "example", status: "value", variant: "example", sceneSuggestions: "example", objectType: "example", userPrompt: "example", optimizedPrompt: "example", title: "example", subtitle: "example", ctaText: "example") {
# Add your fields here
}
}
createProductStudio
Create a new ProductStudio session
Returns: ProductStudio!
Example:
mutation {
createProductStudio {
# Add your fields here
}
}
createProductStudioPerspective
Create a new product studio perspective
Returns: ProductStudioPerspective!
Arguments:
name(String!) requiredprompt(String!) requiredacceptedViewTypes([ViewType!])aspectRatio(AspectRatio)backgroundHexColor(String) - Optional 6-character hex color for the studio backdrop (e.g. 'ff0077'). Pass null to clear.isProductOnly(Boolean) - When true, generates product-only pack shots without a fashion model.useHeroOnly(Boolean) - When true, generation uses only inputs marked as hero. Use for fabric samples and similar focused shots.aiModel(AiModel) - Which AI model renders this perspective. Defaults to GEMINI_3_PRO if omitted.
Example:
mutation {
createProductStudioPerspective(name: "example", prompt: "example", acceptedViewTypes: "value", aspectRatio: "value", backgroundHexColor: "example", isProductOnly: true, useHeroOnly: true, aiModel: "value") {
# Add your fields here
}
}
createProductStudioSetting
Returns: ProductStudioSetting!
Arguments:
instructions(String)scanInstructions(String)
Example:
mutation {
createProductStudioSetting(instructions: "example", scanInstructions: "example") {
# Add your fields here
}
}
createProductStudioStylingResource
Create styling instructions for a ProductStudio session and perspective
Returns: ProductStudioStylingResource!
Arguments:
productStudioId(UUID!) requiredproductStudioPerspectiveId(UUID!) requiredstylingInstructions(String!) required
Example:
mutation {
createProductStudioStylingResource(productStudioId: "value", productStudioPerspectiveId: "value", stylingInstructions: "example") {
# Add your fields here
}
}
createProductVideo
Returns: ProductVideo!
Arguments:
productId(String)productTitle(String)productImage(String)productImageId(String)videoUrl(String)status(ContentGenerationStatus!) requiredprompt(String)
Example:
mutation {
createProductVideo(productId: "example", productTitle: "example", productImage: "example", productImageId: "example", videoUrl: "example", status: "value", prompt: "example") {
# Add your fields here
}
}
createShootingLocation
Create a new shootingLocation
Returns: ShootingLocation!
Arguments:
title(String!) required
Example:
mutation {
createShootingLocation(title: "example") {
# Add your fields here
}
}
createShopifyTopUpCharge
Create a Shopify one-time charge to top up the team's credit balance.
Returns: CreateShopifyTopUpChargeResponse!
Arguments:
amountCents(Int!) requiredreturnUrl(String!) required
Example:
mutation {
createShopifyTopUpCharge(amountCents: 1, returnUrl: "example") {
# Add your fields here
}
}
createSkill
Create a new skill for the current team
Returns: Skill!
Arguments:
title(String!) requiredbody(String!) required
Example:
mutation {
createSkill(title: "example", body: "example") {
# Add your fields here
}
}
createTopUpCheckoutSession
Create a Stripe Checkout session to top up the team's credit balance with VAT-compliant invoicing.
Returns: CreateTopUpCheckoutSessionResponse!
Arguments:
amountCents(Int!) requiredreturnUrl(String!) required
Example:
mutation {
createTopUpCheckoutSession(amountCents: 1, returnUrl: "example") {
# Add your fields here
}
}
createTopUpIntent
[Deprecated] Create a raw Stripe PaymentIntent. Use createTopUpCheckoutSession instead.
Returns: CreateTopUpIntentResponse!
Arguments:
amountCents(Int!) required
Example:
mutation {
createTopUpIntent(amountCents: 1) {
# Add your fields here
}
}
deleteBatch
Delete a batch and all its children
Returns: Boolean!
Arguments:
id(UUID!) required
Example:
mutation {
deleteBatch(id: "value") {
# Add your fields here
}
}
deleteBatchInputImage
Delete an uploaded input image from a batch (also removes from R2)
Returns: Boolean!
Arguments:
id(UUID!) required
Example:
mutation {
deleteBatchInputImage(id: "value") {
# Add your fields here
}
}
deleteCampaign
Delete a campaign and all its children
Returns: Campaign!
Arguments:
id(UUID!) required
Example:
mutation {
deleteCampaign(id: "value") {
# Add your fields here
}
}
deleteCampaignImage
Delete a campaign image
Returns: CampaignImage!
Arguments:
id(UUID!) required
Example:
mutation {
deleteCampaignImage(id: "value") {
# Add your fields here
}
}
deleteDesignerInstance
Delete a Designer Instance and all its resources and revisions
Returns: Boolean!
Arguments:
id(UUID!) required
Example:
mutation {
deleteDesignerInstance(id: "value") {
# Add your fields here
}
}
deleteDesignerInstanceResource
Delete an inspiration resource (upload happens via REST POST /api/designer-instances/resources)
Returns: Boolean!
Arguments:
id(UUID!) required
Example:
mutation {
deleteDesignerInstanceResource(id: "value") {
# Add your fields here
}
}
deleteDesignerRevision
Delete a Designer Instance Revision
Returns: Boolean!
Arguments:
revisionId(UUID!) required
Example:
mutation {
deleteDesignerRevision(revisionId: "value") {
# Add your fields here
}
}
deleteDesignerRevisionMeasurement
Delete a Designer Revision Measurement record (and any in-flight annotation tasks via cascade).
Returns: Boolean!
Arguments:
id(UUID!) required
Example:
mutation {
deleteDesignerRevisionMeasurement(id: "value") {
# Add your fields here
}
}
deleteFashionModel
Delete a fashion model
Returns: Boolean!
Arguments:
id(UUID!) required
Example:
mutation {
deleteFashionModel(id: "value") {
# Add your fields here
}
}
deleteFashionModelRevision
Delete a fashion model revision
Returns: Boolean!
Arguments:
revisionId(UUID!) required
Example:
mutation {
deleteFashionModelRevision(revisionId: "value") {
# Add your fields here
}
}
deleteGroupShot
Delete a group shot
Returns: GroupShot!
Arguments:
id(UUID!) required
Example:
mutation {
deleteGroupShot(id: "value") {
# Add your fields here
}
}
deletePattern
Delete a Pattern and all its revisions.
Returns: Boolean!
Arguments:
id(UUID!) required
Example:
mutation {
deletePattern(id: "value") {
# Add your fields here
}
}
deletePatternInputReference
Delete a pattern-level input reference. Does not affect revisions that already froze it into their snapshot.
Returns: Boolean!
Arguments:
id(UUID!) required
Example:
mutation {
deletePatternInputReference(id: "value") {
# Add your fields here
}
}
deletePatternRevision
Delete a PatternRevision.
Returns: Boolean!
Arguments:
revisionId(UUID!) required
Example:
mutation {
deletePatternRevision(revisionId: "value") {
# Add your fields here
}
}
deleteProductSpotlight
Returns: Boolean!
Arguments:
id(UUID!) required
Example:
mutation {
deleteProductSpotlight(id: "value") {
# Add your fields here
}
}
deleteProductStudio
Delete a ProductStudio session
Returns: ProductStudio!
Arguments:
id(UUID!) required
Example:
mutation {
deleteProductStudio(id: "value") {
# Add your fields here
}
}
deleteProductStudioPerspective
Delete a product studio perspective
Returns: ProductStudioPerspective!
Arguments:
id(UUID!) required
Example:
mutation {
deleteProductStudioPerspective(id: "value") {
# Add your fields here
}
}
deleteProductVideo
Returns: Boolean!
Arguments:
id(UUID!) required
Example:
mutation {
deleteProductVideo(id: "value") {
# Add your fields here
}
}
deleteShootingLocation
Delete a shootingLocation
Returns: Boolean!
Arguments:
id(UUID!) required
Example:
mutation {
deleteShootingLocation(id: "value") {
# Add your fields here
}
}
deleteShootingLocationRevision
Delete a shooting location revision
Returns: Boolean!
Arguments:
revisionId(UUID!) required
Example:
mutation {
deleteShootingLocationRevision(revisionId: "value") {
# Add your fields here
}
}
deleteSkill
Delete a skill
Returns: Boolean!
Arguments:
id(UUID!) required
Example:
mutation {
deleteSkill(id: "value") {
# Add your fields here
}
}
executeBatch
Execute a batch — triggers generation on draft ProductStudios and CampaignImages
Returns: Batch!
Arguments:
id(UUID!) required
Example:
mutation {
executeBatch(id: "value") {
# Add your fields here
}
}
generateBrandMemory
Returns: BrandMemory!
Arguments:
storeName(String!) required
Example:
mutation {
generateBrandMemory(storeName: "example") {
# Add your fields here
}
}
generateCampaignImages
Generate images for a campaign image with optional feedback
Returns: CampaignImage!
Arguments:
campaignImageId(UUID!) requiredfeedback(String)
Example:
mutation {
generateCampaignImages(campaignImageId: "value", feedback: "example") {
# Add your fields here
}
}
generateDesignerRevision
Generate a new Designer Instance Revision. v2 contract: pass only FRONT and BACK slots; backend owns FRONT_FLAT and BACK_FLAT. Requires a non-empty description on the instance.
Returns: DesignerInstanceRevision!
Arguments:
designerInstanceId(UUID!) requiredbaseRevisionId(UUID)userRequest(String!) requiredintentTag(String)slots([DesignerSlotInputArg!]!) required
Example:
mutation {
generateDesignerRevision(designerInstanceId: "value", baseRevisionId: "value", userRequest: "example", intentTag: "example", slots: "value") {
# Add your fields here
}
}
generateFashionModelCastingImages
Trigger async image generation for a fashion model casting
Returns: FashionModelCasting!
Arguments:
castingId(UUID!) requireduseBrandIdentity(Boolean)optimizedPrompt(String)
Example:
mutation {
generateFashionModelCastingImages(castingId: "value", useBrandIdentity: true, optimizedPrompt: "example") {
# Add your fields here
}
}
generateFashionModelResources
Auto-generate resources by analyzing portrait, creates a new revision
Returns: FashionModelRevision!
Arguments:
fashionModelId(UUID!) required
Example:
mutation {
generateFashionModelResources(fashionModelId: "value") {
# Add your fields here
}
}
generateFashionModelRevision
Generate a new revision from an existing one. Takes sourceRevisionId (not fashionModelId) because the user iterates from a specific revision whose portrait is used as the reference image.
Returns: FashionModelRevision!
Arguments:
sourceRevisionId(UUID!) requireduserInput(String!) requiredresources(FashionModelResourceInput!) required
Example:
mutation {
generateFashionModelRevision(sourceRevisionId: "value", userInput: "example", resources: "value") {
# Add your fields here
}
}
generateGroupShot
Trigger group shot generation pipeline (Phase 1 renders + Phase 2 composite)
Returns: GroupShot!
Arguments:
groupShotId(UUID!) required
Example:
mutation {
generateGroupShot(groupShotId: "value") {
# Add your fields here
}
}
generateImages
Generate a new shooting location revision. Takes shootingLocationId because the first revision is created by this mutation (text-to-image, no prior revision needed as reference).
Returns: ShootingLocationRevision!
Arguments:
shootingLocationId(UUID!) requiredresources(ShootingLocationResourceInput!) requireduserInput(String)
Example:
mutation {
generateImages(shootingLocationId: "value", resources: "value", userInput: "example") {
# Add your fields here
}
}
generatePatternRevision
Generate a new PatternRevision via Fal. Agent composes the prompt; backend does not inspect it.
Returns: PatternRevision!
Arguments:
patternId(UUID!) requiredbaseRevisionId(UUID)userInput(String)prompt(String!) requiredinputs([PatternRevisionInputArg!]!) required
Example:
mutation {
generatePatternRevision(patternId: "value", baseRevisionId: "value", userInput: "example", prompt: "example", inputs: "value") {
# Add your fields here
}
}
generateProductSpotlightImage
Returns: ProductSpotlight!
Arguments:
id(UUID!) required
Example:
mutation {
generateProductSpotlightImage(id: "value") {
# Add your fields here
}
}
generateProductVideo
Returns: ProductVideo!
Arguments:
id(UUID!) requiredprompt(String)modelType(VideoModelType)
Example:
mutation {
generateProductVideo(id: "value", prompt: "example", modelType: "value") {
# Add your fields here
}
}
generateThemeContent
@deprecated. Creates a creative brief based on the selected theme bubble.
Returns: ProductSpotlight!
Arguments:
id(UUID!) requiredtheme(String!) required
Example:
mutation {
generateThemeContent(id: "value", theme: "example") {
# Add your fields here
}
}
generateVideoButtons
Generate interactive buttons for a product video using Gemini AI
Returns: ProductVideo!
Arguments:
id(UUID!) required
Example:
mutation {
generateVideoButtons(id: "value") {
# Add your fields here
}
}
hideCampaignImageResult
Hide a campaign image result (soft delete)
Returns: CampaignImageResult!
Arguments:
id(UUID!) required
Example:
mutation {
hideCampaignImageResult(id: "value") {
# Add your fields here
}
}
hideGroupShotResult
Hide a group shot result (soft delete)
Returns: GroupShotResult!
Arguments:
id(UUID!) required
Example:
mutation {
hideGroupShotResult(id: "value") {
# Add your fields here
}
}
hideProductStudioOutput
Hide a product studio output (soft delete)
Returns: ProductStudioOutput!
Arguments:
id(UUID!) required
Example:
mutation {
hideProductStudioOutput(id: "value") {
# Add your fields here
}
}
materializePlan
Create draft ProductStudios and CampaignImages from grouped plan inputs
Returns: MaterializePlanResult!
Arguments:
batchId(UUID!) requiredstudioItems([PlanStudioItemInput!]!) requiredcampaignItems([PlanCampaignItemInput!]!) requiredreplaceExisting(Boolean)
Example:
mutation {
materializePlan(batchId: "value", studioItems: "value", campaignItems: "value", replaceExisting: true) {
# Add your fields here
}
}
publishSpotlightToStorefront
Returns: ProductSpotlight!
Arguments:
id(UUID!) required
Example:
mutation {
publishSpotlightToStorefront(id: "value") {
# Add your fields here
}
}
releaseCampaignImageResult
Release a campaign image result. Quota relevant
Returns: CampaignImageResult!
Arguments:
id(UUID!) required
Example:
mutation {
releaseCampaignImageResult(id: "value") {
# Add your fields here
}
}
releaseDesignerRevision
Release a completed designer revision. Quota relevant.
Returns: DesignerInstanceRevision!
Arguments:
id(UUID!) required
Example:
mutation {
releaseDesignerRevision(id: "value") {
# Add your fields here
}
}
releaseGroupShotResult
Release a group shot result. Quota relevant
Returns: GroupShotResult!
Arguments:
id(UUID!) required
Example:
mutation {
releaseGroupShotResult(id: "value") {
# Add your fields here
}
}
releasePatternRevision
Release a completed pattern revision. Quota relevant.
Returns: PatternRevision!
Arguments:
id(UUID!) required
Example:
mutation {
releasePatternRevision(id: "value") {
# Add your fields here
}
}
releaseProductStudioOutput
Release a product studio output
Returns: ProductStudioOutput!
Arguments:
id(UUID!) required
Example:
mutation {
releaseProductStudioOutput(id: "value") {
# Add your fields here
}
}
releaseProductVideo
Release a product video. Quota relevant.
Returns: ProductVideo!
Arguments:
id(UUID!) required
Example:
mutation {
releaseProductVideo(id: "value") {
# Add your fields here
}
}
removeCampaignImageProduct
Remove a product from a campaign image
Returns: CampaignImageProduct!
Arguments:
id(UUID!) required
Example:
mutation {
removeCampaignImageProduct(id: "value") {
# Add your fields here
}
}
removeCampaignImageResource
Remove a resource from a campaign image
Returns: CampaignImageResource!
Arguments:
id(UUID!) required
Example:
mutation {
removeCampaignImageResource(id: "value") {
# Add your fields here
}
}
removePatternRevisionFromDesignerInstance
Remove a selected PatternRevision from a Designer Instance.
Returns: DesignerInstance!
Arguments:
designerInstanceId(UUID!) requiredpatternRevisionId(UUID!) required
Example:
mutation {
removePatternRevisionFromDesignerInstance(designerInstanceId: "value", patternRevisionId: "value") {
# Add your fields here
}
}
removeProductStudioInput
Remove an input from a ProductStudio session
Returns: ProductStudioInput!
Arguments:
id(UUID!) required
Example:
mutation {
removeProductStudioInput(id: "value") {
# Add your fields here
}
}
removeProductStudioStylingResource
Remove styling instructions from a ProductStudio session
Returns: ProductStudioStylingResource!
Arguments:
id(UUID!) required
Example:
mutation {
removeProductStudioStylingResource(id: "value") {
# Add your fields here
}
}
removeSingleShotFromGroupShot
Remove a single shot from a group shot
Returns: GroupShot!
Arguments:
groupShotId(UUID!) requiredcampaignImageId(UUID!) required
Example:
mutation {
removeSingleShotFromGroupShot(groupShotId: "value", campaignImageId: "value") {
# Add your fields here
}
}
removeSkillFromBatch
Remove a skill from a batch
Returns: Batch!
Arguments:
batchId(UUID!) requiredskillId(UUID!) required
Example:
mutation {
removeSkillFromBatch(batchId: "value", skillId: "value") {
# Add your fields here
}
}
restoreCampaignImageResult
Restore a hidden campaign image result
Returns: CampaignImageResult!
Arguments:
id(UUID!) required
Example:
mutation {
restoreCampaignImageResult(id: "value") {
# Add your fields here
}
}
restoreGroupShotResult
Restore a hidden group shot result
Returns: GroupShotResult!
Arguments:
id(UUID!) required
Example:
mutation {
restoreGroupShotResult(id: "value") {
# Add your fields here
}
}
restoreProductStudioOutput
Restore a hidden product studio output
Returns: ProductStudioOutput!
Arguments:
id(UUID!) required
Example:
mutation {
restoreProductStudioOutput(id: "value") {
# Add your fields here
}
}
restoreProductStudioPerspective
Restore an archived product studio perspective
Returns: ProductStudioPerspective!
Arguments:
id(UUID!) required
Example:
mutation {
restoreProductStudioPerspective(id: "value") {
# Add your fields here
}
}
setCampaignImageFashionModel
Set fashion model for a campaign image
Returns: CampaignImage!
Arguments:
campaignImageId(UUID!) requiredfashionModelRevisionId(UUID!) required
Example:
mutation {
setCampaignImageFashionModel(campaignImageId: "value", fashionModelRevisionId: "value") {
# Add your fields here
}
}
setCampaignImageProducts
Set products for a campaign image with smart merging
Returns: CampaignImage!
Arguments:
campaignImageId(UUID!) requiredproducts([CampaignImageProductInput!]!) required
Example:
mutation {
setCampaignImageProducts(campaignImageId: "value", products: "value") {
# Add your fields here
}
}
setCampaignImageShootingLocation
Set shooting location revision for a campaign image
Returns: CampaignImage!
Arguments:
campaignImageId(UUID!) requiredshootingLocationRevisionId(UUID!) required
Example:
mutation {
setCampaignImageShootingLocation(campaignImageId: "value", shootingLocationRevisionId: "value") {
# Add your fields here
}
}
startProductStudioFlow
Start the AI generation flow for a ProductStudio session with optional perspective
Returns: ProductStudio!
Arguments:
id(UUID!) requiredproductStudioPerspectiveId(UUID!) required
Example:
mutation {
startProductStudioFlow(id: "value", productStudioPerspectiveId: "value") {
# Add your fields here
}
}
toggleCampaignImageResultFavorite
Toggle favorite status on a campaign image result
Returns: CampaignImageResult!
Arguments:
id(UUID!) required
Example:
mutation {
toggleCampaignImageResultFavorite(id: "value") {
# Add your fields here
}
}
toggleDesignerRevisionFavorite
Toggle favorite on a Designer Instance Revision
Returns: DesignerInstanceRevision!
Arguments:
revisionId(UUID!) required
Example:
mutation {
toggleDesignerRevisionFavorite(revisionId: "value") {
# Add your fields here
}
}
toggleFashionModelRevisionFavorite
Toggle favorite status on a fashion model revision
Returns: FashionModelRevision!
Arguments:
revisionId(UUID!) required
Example:
mutation {
toggleFashionModelRevisionFavorite(revisionId: "value") {
# Add your fields here
}
}
toggleGroupShotResultFavorite
Toggle favorite status on a group shot result
Returns: GroupShotResult!
Arguments:
id(UUID!) required
Example:
mutation {
toggleGroupShotResultFavorite(id: "value") {
# Add your fields here
}
}
togglePatternRevisionFavorite
Toggle favorite on a PatternRevision.
Returns: PatternRevision!
Arguments:
revisionId(UUID!) required
Example:
mutation {
togglePatternRevisionFavorite(revisionId: "value") {
# Add your fields here
}
}
toggleProductStudioOutputFavorite
Toggle favorite status on a product studio output
Returns: ProductStudioOutput!
Arguments:
id(UUID!) required
Example:
mutation {
toggleProductStudioOutputFavorite(id: "value") {
# Add your fields here
}
}
toggleShootingLocationRevisionFavorite
Toggle favorite status on a shooting location revision
Returns: ShootingLocationRevision!
Arguments:
revisionId(UUID!) required
Example:
mutation {
toggleShootingLocationRevisionFavorite(revisionId: "value") {
# Add your fields here
}
}
updateBatch
Update a batch
Returns: Batch!
Arguments:
id(UUID!) requiredinstructions(String)status(BatchStatus)
Example:
mutation {
updateBatch(id: "value", instructions: "example", status: "value") {
# Add your fields here
}
}
updateBatchInputImage
Update a batch input image (e.g. correct the detected view type)
Returns: BatchInputImage!
Arguments:
id(UUID!) requiredviewType(ViewType)
Example:
mutation {
updateBatchInputImage(id: "value", viewType: "value") {
# Add your fields here
}
}
updateBrandMemory
Returns: BrandMemory!
Arguments:
id(UUID!) requiredbrandName(String!) requiredbrandIdentity(String!) requiredfashionModelInstructions(String)photoStyleInstructions(String)targetGroupInstructions(String)
Example:
mutation {
updateBrandMemory(id: "value", brandName: "example", brandIdentity: "example", fashionModelInstructions: "example", photoStyleInstructions: "example", targetGroupInstructions: "example") {
# Add your fields here
}
}
updateCampaign
Update an existing campaign
Returns: Campaign!
Arguments:
id(UUID!) requiredname(String)shootingLocationRevisionId(UUID)
Example:
mutation {
updateCampaign(id: "value", name: "example", shootingLocationRevisionId: "value") {
# Add your fields here
}
}
updateCampaignImage
Update an existing campaign image
Returns: CampaignImage!
Arguments:
id(UUID!) requiredtitle(String)aspectRatio(AspectRatio)
Example:
mutation {
updateCampaignImage(id: "value", title: "example", aspectRatio: "value") {
# Add your fields here
}
}
updateCampaignImageResource
Update an existing campaign image resource
Returns: CampaignImageResource!
Arguments:
id(UUID!) requiredname(String)content(String)purpose(String)
Example:
mutation {
updateCampaignImageResource(id: "value", name: "example", content: "example", purpose: "example") {
# Add your fields here
}
}
updateCampaignSetting
Updates which AI models are enabled for Campaign generation. Both enabled = mixed mode. At least one must stay enabled.
Returns: CampaignSetting!
Arguments:
useGptImage2(Boolean!) requireduseGemini3Pro(Boolean!) required
Example:
mutation {
updateCampaignSetting(useGptImage2: true, useGemini3Pro: true) {
# Add your fields here
}
}
updateDesignerInstance
Update a Designer Instance (title or chosen fashion model)
Returns: DesignerInstance!
Arguments:
id(UUID!) requiredtitle(String)fashionModelRevisionId(UUID)
Example:
mutation {
updateDesignerInstance(id: "value", title: "example", fashionModelRevisionId: "value") {
# Add your fields here
}
}
updateDesignerInstanceDescription
Set the garment description that anchors every generation prompt for this instance.
Returns: DesignerInstance!
Arguments:
id(UUID!) requireddescription(String!) required
Example:
mutation {
updateDesignerInstanceDescription(id: "value", description: "example") {
# Add your fields here
}
}
updateDesignerRevisionLabel
Update the label on a Designer Instance Revision
Returns: DesignerInstanceRevision!
Arguments:
revisionId(UUID!) requiredlabel(String)
Example:
mutation {
updateDesignerRevisionLabel(revisionId: "value", label: "example") {
# Add your fields here
}
}
updateDesignerRevisionMeasurement
Manually overwrite the structured measurements for a Designer Revision Measurement. Re-fires the annotation pass (front + back).
Returns: DesignerRevisionMeasurement!
Arguments:
id(UUID!) requiredfront([DesignerMeasurementInputArg!]!) requiredback([DesignerMeasurementInputArg!]!) required
Example:
mutation {
updateDesignerRevisionMeasurement(id: "value", front: "value", back: "value") {
# Add your fields here
}
}
updateFashionModel
Update an existing fashion model
Returns: FashionModel!
Arguments:
id(UUID!) requiredname(String)
Example:
mutation {
updateFashionModel(id: "value", name: "example") {
# Add your fields here
}
}
updateFashionModelRevisionLabel
Update the label on a fashion model revision
Returns: FashionModelRevision!
Arguments:
revisionId(UUID!) requiredlabel(String)
Example:
mutation {
updateFashionModelRevisionLabel(revisionId: "value", label: "example") {
# Add your fields here
}
}
updateGroupShot
Update a group shot
Returns: GroupShot!
Arguments:
id(UUID!) requiredshootingLocationRevisionId(UUID)prompt(String)aspectRatio(AspectRatio)
Example:
mutation {
updateGroupShot(id: "value", shootingLocationRevisionId: "value", prompt: "example", aspectRatio: "value") {
# Add your fields here
}
}
updatePattern
Update a Pattern's name or repeatability flags.
Returns: Pattern!
Arguments:
id(UUID!) requiredname(String)repeatHorizontal(Boolean)repeatVertical(Boolean)
Example:
mutation {
updatePattern(id: "value", name: "example", repeatHorizontal: true, repeatVertical: true) {
# Add your fields here
}
}
updatePatternInputReference
Rename a pattern-level input reference.
Returns: PatternInputReference!
Arguments:
id(UUID!) requiredlabel(String!) required
Example:
mutation {
updatePatternInputReference(id: "value", label: "example") {
# Add your fields here
}
}
updatePatternRevisionLabel
Update the label on a PatternRevision.
Returns: PatternRevision!
Arguments:
revisionId(UUID!) requiredlabel(String)
Example:
mutation {
updatePatternRevisionLabel(revisionId: "value", label: "example") {
# Add your fields here
}
}
updateProductSpotlight
Returns: ProductSpotlight!
Arguments:
id(UUID!) requiredproductId(String)productTitle(String)productImage(String)productImageId(String)pickerResult(String)status(ContentGenerationStatus)variant(String)sceneSuggestions([String!])objectType(String)userPrompt(String)optimizedPrompt(String)sceneImage(String)tryonImage(String)errorMessage(String)title(String)subtitle(String)ctaText(String)
Example:
mutation {
updateProductSpotlight(id: "value", productId: "example", productTitle: "example", productImage: "example", productImageId: "example", pickerResult: "example", status: "value", variant: "example", sceneSuggestions: "example", objectType: "example", userPrompt: "example", optimizedPrompt: "example", sceneImage: "example", tryonImage: "example", errorMessage: "example", title: "example", subtitle: "example", ctaText: "example") {
# Add your fields here
}
}
updateProductStudio
Update a ProductStudio session
Returns: ProductStudio!
Arguments:
id(UUID!) requiredtitle(String)fashionModelRevisionId(UUID)
Example:
mutation {
updateProductStudio(id: "value", title: "example", fashionModelRevisionId: "value") {
# Add your fields here
}
}
updateProductStudioInput
Update metadata for a ProductStudio input (all fields optional)
Returns: ProductStudioInput!
Arguments:
id(UUID!) requiredproductTitle(String)productDescription(String)productDetailPrompt(String)viewType(ViewType)productId(String)isHero(Boolean) - Marks this input as a focus / hero product. Perspectives with useHeroOnly=true filter generation down to hero inputs only.
Example:
mutation {
updateProductStudioInput(id: "value", productTitle: "example", productDescription: "example", productDetailPrompt: "example", viewType: "value", productId: "example", isHero: true) {
# Add your fields here
}
}
updateProductStudioPerspective
Update an existing product studio perspective
Returns: ProductStudioPerspective!
Arguments:
id(UUID!) requiredname(String!) requiredprompt(String!) requiredacceptedViewTypes([ViewType!])aspectRatio(AspectRatio)backgroundHexColor(String) - Optional 6-character hex color for the studio backdrop (e.g. 'ff0077'). Pass null to clear.isProductOnly(Boolean) - When true, generates product-only pack shots without a fashion model.useHeroOnly(Boolean) - When true, generation uses only inputs marked as hero. Use for fabric samples and similar focused shots.aiModel(AiModel) - Which AI model renders this perspective. Omit to leave unchanged.
Example:
mutation {
updateProductStudioPerspective(id: "value", name: "example", prompt: "example", acceptedViewTypes: "value", aspectRatio: "value", backgroundHexColor: "example", isProductOnly: true, useHeroOnly: true, aiModel: "value") {
# Add your fields here
}
}
updateProductStudioSetting
Returns: ProductStudioSetting!
Arguments:
id(UUID!) requiredinstructions(String)scanInstructions(String)
Example:
mutation {
updateProductStudioSetting(id: "value", instructions: "example", scanInstructions: "example") {
# Add your fields here
}
}
updateProductStudioStylingResource
Update styling instructions for a ProductStudio resource
Returns: ProductStudioStylingResource!
Arguments:
id(UUID!) requiredstylingInstructions(String!) required
Example:
mutation {
updateProductStudioStylingResource(id: "value", stylingInstructions: "example") {
# Add your fields here
}
}
updateProductVideo
Returns: ProductVideo!
Arguments:
id(UUID!) requiredproductId(String)productTitle(String)productImage(String)productImageId(String)videoUrl(String)status(ContentGenerationStatus)prompt(String)modelType(VideoModelType)
Example:
mutation {
updateProductVideo(id: "value", productId: "example", productTitle: "example", productImage: "example", productImageId: "example", videoUrl: "example", status: "value", prompt: "example", modelType: "value") {
# Add your fields here
}
}
updateShootingLocation
Update an existing shootingLocation
Returns: ShootingLocation!
Arguments:
id(UUID!) requiredtitle(String)
Example:
mutation {
updateShootingLocation(id: "value", title: "example") {
# Add your fields here
}
}
updateShootingLocationRevisionLabel
Update the label on a shooting location revision
Returns: ShootingLocationRevision!
Arguments:
revisionId(UUID!) requiredlabel(String)
Example:
mutation {
updateShootingLocationRevisionLabel(revisionId: "value", label: "example") {
# Add your fields here
}
}
updateSkill
Update an existing skill
Returns: Skill!
Arguments:
id(UUID!) requiredtitle(String)body(String)
Example:
mutation {
updateSkill(id: "value", title: "example", body: "example") {
# Add your fields here
}
}
updateSpotlightBasedOnBrief
Returns: ProductSpotlight!
Arguments:
id(UUID!) required
Example:
mutation {
updateSpotlightBasedOnBrief(id: "value") {
# Add your fields here
}
}
uploadProductVideoToShopify
Upload a generated product video to Shopify and attach it to the product
Returns: ProductVideo!
Arguments:
id(UUID!) requiredvideoName(String)
Example:
mutation {
uploadProductVideoToShopify(id: "value", videoName: "example") {
# Add your fields here
}
}