Queries

All GraphQL queries for reading data from the Brandmachine API, in alphabetical order.

Each example selects a few fields of the returned type. Select the fields you need instead: the linked type lists all of them. Operations marked as not available with API tokens return an error when called with an API token.

activeMediaGenerationTasks

Get active (in-queue or in-progress) media generation tasks for notification center

Returns: [MediaGenerationTask!]!

Example:

query ActiveMediaGenerationTasks {
  activeMediaGenerationTasks {
    id
    campaignImageId
    completedAt
    createdAt
    designerInstanceRevisionId
    errorMessage
  }
}

backendCommit

Returns: String!

Example:

query BackendCommit {
  backendCommit
}

batch

Get a single batch by ID with full relationships

Returns: Batch!

Arguments:

Example:

query Batch($id: UUID!) {
  batch(id: $id) {
    id
    campaignImageCount
    createdAt
    instructions
    isGenerated
    mediaGenerationTaskIds
  }
}

batches

Get batches for the current team with pagination

Returns: [Batch!]!

Arguments:

  • limit Int
  • offset Int

Example:

query Batches($limit: Int, $offset: Int) {
  batches(limit: $limit, offset: $offset) {
    id
    campaignImageCount
    createdAt
    instructions
    isGenerated
    mediaGenerationTaskIds
  }
}

batchInputImages

Get input images for a batch

Returns: [BatchInputImage!]!

Arguments:

Example:

query BatchInputImages($batchId: UUID!) {
  batchInputImages(batchId: $batchId) {
    id
    batchId
    createdAt
    fileName
    filenameView
    imageUrl
  }
}

billingCostSummary

Aggregated cost breakdown over a date range; totals + per-feature buckets for the cost-overview chart. from inclusive, to exclusive.

Returns: BillingCostSummary!

Arguments:

Example:

query BillingCostSummary($from: Date!, $to: Date!) {
  billingCostSummary(from: $from, to: $to) {
    fromDate
    generationCents
    releaseCents
    toDate
    totalCents
  }
}

billingLedger

Paginated billing ledger for the requesting team, newest first.

Returns: [BillingLedgerEntry!]!

Arguments:

  • limit Int! required
  • offset Int! required

Example:

query BillingLedger($limit: Int!, $offset: Int!) {
  billingLedger(limit: $limit, offset: $offset) {
    id
    aiModel
    balanceAfterCents
    costCents
    createdAt
    deltaCents
  }
}

brandAssets

The team's live brand asset library, logos first. Upload through POST /api/brand-assets/upload.

Returns: [BrandAsset!]!

Example:

query BrandAssets {
  brandAssets {
    id
    archivedAt
    createdAt
    darkGroundImageKey
    defaultSize
    height
  }
}

campaign

Get a single campaign by ID with full relationships

Returns: Campaign!

Arguments:

Example:

query Campaign($id: UUID!) {
  campaign(id: $id) {
    id
    createdAt
    name
    teamDomain
    updatedAt
  }
}

campaignImage

Get a single campaign image by ID

Returns: CampaignImage

Arguments:

Example:

query CampaignImage($id: UUID!) {
  campaignImage(id: $id) {
    id
    aspectRatio
    createdAt
    errorMessage
    guidanceImageKey
    guidanceImageUrl
  }
}

campaignImages

Get campaign images with pagination

Returns: [CampaignImage!]!

Arguments:

  • limit Int
  • offset Int

Example:

query CampaignImages($limit: Int, $offset: Int) {
  campaignImages(limit: $limit, offset: $offset) {
    id
    aspectRatio
    createdAt
    errorMessage
    guidanceImageKey
    guidanceImageUrl
  }
}

campaignImagesForBatch

Get draft CampaignImages for a batch plan review

Returns: [CampaignImage!]!

Arguments:

Example:

query CampaignImagesForBatch($batchId: UUID!) {
  campaignImagesForBatch(batchId: $batchId) {
    id
    aspectRatio
    createdAt
    errorMessage
    guidanceImageKey
    guidanceImageUrl
  }
}

campaigns

Get campaigns for the current team with pagination

Returns: [Campaign!]!

Arguments:

  • limit Int
  • offset Int

Example:

query Campaigns($limit: Int, $offset: Int) {
  campaigns(limit: $limit, offset: $offset) {
    id
    createdAt
    name
    teamDomain
    updatedAt
  }
}

creditBalance

The requesting team's PAYG credit balance in cents.

Returns: CreditBalanceResponse!

Example:

query CreditBalance {
  creditBalance {
    balanceCents
    currency
  }
}

creditBalanceDigest

Lightweight polling digest — MAX(created_at) over the team's billing ledger; refetch creditBalance when it changes.

Returns: Date

Example:

query CreditBalanceDigest {
  creditBalanceDigest
}

currentTeam

Identity + billing-routing flags for the requesting team.

Returns: CurrentTeamResponse!

Example:

query CurrentTeam {
  currentTeam {
    id
    adLocales
    isPAYG
    teamDomain
  }
}

designerCollection

Fetch a single DesignerCollection by ID

Returns: DesignerCollection!

Arguments:

Example:

query DesignerCollection($id: UUID!) {
  designerCollection(id: $id) {
    id
    brief
    createdAt
    season
    status
    teamDomain
  }
}

designerCollections

List DesignerCollections for the current team, most-recently updated first

Returns: [DesignerCollection!]!

Arguments:

  • limit Int
  • offset Int

Example:

query DesignerCollections($limit: Int, $offset: Int) {
  designerCollections(limit: $limit, offset: $offset) {
    id
    brief
    createdAt
    season
    status
    teamDomain
  }
}

designerInstance

Get a single designer instance by ID

Returns: DesignerInstance

Arguments:

Example:

query DesignerInstance($id: UUID!) {
  designerInstance(id: $id) {
    id
    activeFabricId
    archivedAt
    createdAt
    description
    fashionModelRevisionId
  }
}

designerInstanceRevision

Get a single designer instance revision by ID

Returns: DesignerInstanceRevision

Arguments:

Example:

query DesignerInstanceRevision($id: UUID!) {
  designerInstanceRevision(id: $id) {
    id
    annotationOverlayKey
    annotationOverlaySourceSlot
    annotationOverlayUrl
    backFlatKey
    backFlatUrl
  }
}

designerInstances

Get designer instances with pagination

Returns: [DesignerInstance!]!

Arguments:

  • limit Int! required
  • offset Int! required

Example:

query DesignerInstances($limit: Int!, $offset: Int!) {
  designerInstances(limit: $limit, offset: $offset) {
    id
    activeFabricId
    archivedAt
    createdAt
    description
    fashionModelRevisionId
  }
}

designerIterationRequest

Read-only: reconcile an admitted Designer iteration by its request claim. Returns null before admission and refuses unrelated historical revision IDs.

Returns: DesignerInstanceRevision

Arguments:

  • designerInstanceId UUID! required
  • requestId UUID! required

Example:

query DesignerIterationRequest($designerInstanceId: UUID!, $requestId: UUID!) {
  designerIterationRequest(designerInstanceId: $designerInstanceId, requestId: $requestId) {
    id
    annotationOverlayKey
    annotationOverlaySourceSlot
    annotationOverlayUrl
    backFlatKey
    backFlatUrl
  }
}

fashionModel

Get a single fashion model by ID

Returns: FashionModel

Arguments:

Example:

query FashionModel($id: UUID!) {
  fashionModel(id: $id) {
    id
    createdAt
    gender
    name
    status
    teamDomain
  }
}

fashionModelCasting

Get a single fashion model casting with results

Returns: FashionModelCasting

Arguments:

Example:

query FashionModelCasting($id: UUID!) {
  fashionModelCasting(id: $id) {
    id
    createdAt
    gender
    prompt
    teamDomain
    updatedAt
  }
}

fashionModelCastings

Get fashion model castings with pagination

Returns: [FashionModelCasting!]!

Arguments:

  • limit Int
  • offset Int

Example:

query FashionModelCastings($limit: Int, $offset: Int) {
  fashionModelCastings(limit: $limit, offset: $offset) {
    id
    createdAt
    gender
    prompt
    teamDomain
    updatedAt
  }
}

fashionModelRevision

Get a single fashion model revision by ID

Returns: FashionModelRevision

Arguments:

Example:

query FashionModelRevision($id: UUID!) {
  fashionModelRevision(id: $id) {
    id
    createdAt
    fashionModelId
    favorite
    fullPortraitKey
    generationModel
  }
}

fashionModels

Get all fashion models

Returns: [FashionModel!]!

Example:

query FashionModels {
  fashionModels {
    id
    createdAt
    gender
    name
    status
    teamDomain
  }
}

fileNameConvention

This team's filename convention, or the built-in fallback with isDefault=true when nothing is declared

Returns: FileNameConvention!

Example:

query FileNameConvention {
  fileNameConvention {
    exportPattern
    isDefault
  }
}

getAllBrandMemories

Returns: [BrandMemory!]!

Example:

query GetAllBrandMemories {
  getAllBrandMemories {
    id
    brandIdentity
    brandName
    copywritingInstructions
    createdAt
    fashionModelInstructions
  }
}

getAllPlans

Returns: [Plan!]!

Example:

query GetAllPlans {
  getAllPlans {
    id
    createdAt
    handle
    name
    productShortQuota
    updatedAt
  }
}

getAllProductStudioPerspectiveGroups

The team's perspective rail tabs, in rail order. Perspectives carry their own groupId, so fetch this once and join client-side rather than expecting a nested list here.

Returns: [ProductStudioPerspectiveGroup!]!

Example:

query GetAllProductStudioPerspectiveGroups {
  getAllProductStudioPerspectiveGroups {
    id
    createdAt
    name
    purpose
    sortOrder
    teamDomain
  }
}

getAllProductStudioPerspectives

Get all product studio perspectives for the current team

Returns: [ProductStudioPerspective!]!

Arguments:

  • includeArchived Boolean

Example:

query GetAllProductStudioPerspectives($includeArchived: Boolean) {
  getAllProductStudioPerspectives(includeArchived: $includeArchived) {
    id
    acceptedViewTypes
    aiModel
    archivedAt
    aspectRatio
    backgroundHexColor
  }
}

getAllProductStudios

Get ProductStudio sessions for the current team, most recent first, capped (default 100).

Returns: [ProductStudio!]!

Arguments:

  • limit Int: Maximum number of studios to return, most recent first. Defaults to 100. Pass higher to fetch more history; the cap prevents unbounded payload growth.

Example:

query GetAllProductStudios($limit: Int) {
  getAllProductStudios(limit: $limit) {
    id
    createdAt
    isGenerated
    status
    teamDomain
    title
  }
}

getAllProductStudioSettings

Returns: [ProductStudioSetting!]!

Example:

query GetAllProductStudioSettings {
  getAllProductStudioSettings {
    id
    createdAt
    instructions
    scanInstructions
    teamDomain
    updatedAt
  }
}

getAllProductVideos

Returns: [ProductVideo!]!

Example:

query GetAllProductVideos {
  getAllProductVideos {
    id
    createdAt
    durationSeconds
    modelType
    productId
    productImage
  }
}

getBrandMemory

Returns: BrandMemory

Example:

query GetBrandMemory {
  getBrandMemory {
    id
    brandIdentity
    brandName
    copywritingInstructions
    createdAt
    fashionModelInstructions
  }
}

getBrandMemoryById

Returns: BrandMemory!

Arguments:

Example:

query GetBrandMemoryById($id: UUID!) {
  getBrandMemoryById(id: $id) {
    id
    brandIdentity
    brandName
    copywritingInstructions
    createdAt
    fashionModelInstructions
  }
}

getCampaignSetting

Returns the current team's CampaignSetting, or null if not set.

Returns: CampaignSetting

Example:

query GetCampaignSetting {
  getCampaignSetting {
    id
    createdAt
    gptImage25Quality
    teamDomain
    updatedAt
    useGemini3Pro
  }
}

getPlan

Returns: Plan!

Arguments:

Example:

query GetPlan($id: UUID!) {
  getPlan(id: $id) {
    id
    createdAt
    handle
    name
    productShortQuota
    updatedAt
  }
}

getProductStudio

Get a single ProductStudio by ID with perspective filtering

Returns: ProductStudio

Arguments:

  • id UUID! required
  • productStudioPerspectiveId UUID

Example:

query GetProductStudio($id: UUID!, $productStudioPerspectiveId: UUID) {
  getProductStudio(id: $id, productStudioPerspectiveId: $productStudioPerspectiveId) {
    id
    createdAt
    isGenerated
    status
    teamDomain
    title
  }
}

getProductStudioPerspective

Get a single product studio perspective by ID

Returns: ProductStudioPerspective

Arguments:

Example:

query GetProductStudioPerspective($id: UUID!) {
  getProductStudioPerspective(id: $id) {
    id
    acceptedViewTypes
    aiModel
    archivedAt
    aspectRatio
    backgroundHexColor
  }
}

getProductStudioSetting

Returns: ProductStudioSetting

Example:

query GetProductStudioSetting {
  getProductStudioSetting {
    id
    createdAt
    instructions
    scanInstructions
    teamDomain
    updatedAt
  }
}

getProductStudioSettingById

Returns: ProductStudioSetting!

Arguments:

Example:

query GetProductStudioSettingById($id: UUID!) {
  getProductStudioSettingById(id: $id) {
    id
    createdAt
    instructions
    scanInstructions
    teamDomain
    updatedAt
  }
}

getProductVideo

Returns: ProductVideo!

Arguments:

Example:

query GetProductVideo($id: UUID!) {
  getProductVideo(id: $id) {
    id
    createdAt
    durationSeconds
    modelType
    productId
    productImage
  }
}

getShopifyProduct

Returns: String!

Arguments:

  • id String! required

Example:

query GetShopifyProduct($id: String!) {
  getShopifyProduct(id: $id)
}

getShopName

Get information about the Shopify Store

Returns: String!

Example:

query GetShopName {
  getShopName
}

groupShot

Get a single group shot by ID

Returns: GroupShot!

Arguments:

Example:

query GroupShot($id: UUID!) {
  groupShot(id: $id) {
    id
    aspectRatio
    campaignId
    createdAt
    errorMessage
    prompt
  }
}

headlineTreatments

The team's headline treatments (over the photo, solid bands, panels), installing the presets on first read. Idempotent.

Returns: [BrandHeadlineTreatment!]!

Example:

query HeadlineTreatments {
  headlineTreatments {
    id
    bandPosition
    bandSize
    copySurface
    fillColor
    ground
  }
}

mediaFormats

The team's image-format catalog, installing it on first read. Idempotent.

Returns: [MediaFormat!]!

Example:

query MediaFormats {
  mediaFormats {
    id
    aspectRatio
    copyLimitsSourced
    descriptionMaxChars
    headlineMaxChars
    maxBytes
  }
}

mediaGenerationTasks

Get media generation tasks with optional filtering by status and type

Returns: [MediaGenerationTask!]!

Arguments:

Example:

query MediaGenerationTasks($status: ContentGenerationStatus, $type: TaskType) {
  mediaGenerationTasks(status: $status, type: $type) {
    id
    campaignImageId
    completedAt
    createdAt
    designerInstanceRevisionId
    errorMessage
  }
}

mediaGenerationTasksDigest

Lightweight polling — returns MAX(updated_at) across all team tasks

Returns: Date

Example:

query MediaGenerationTasksDigest {
  mediaGenerationTasksDigest
}

mediaPlacements

The team's ad-unit catalog, installing it on first read. Idempotent.

Returns: [MediaPlacement!]!

Example:

query MediaPlacements {
  mediaPlacements {
    id
    channel
    copyLimitsSourced
    ctaMaxChars
    descriptionMaxChars
    headlineMaxChars
  }
}

mediaPlan

One media plan with its sources, placements and cards.

Returns: MediaPlan!

Arguments:

Example:

query MediaPlan($id: UUID!) {
  mediaPlan(id: $id) {
    id
    copyGeneratingSince
    copyGenerationError
    createdAt
    headlineTreatmentId
    instructions
  }
}

mediaPlans

Every media plan for the team, newest first.

Returns: [MediaPlan!]!

Example:

query MediaPlans {
  mediaPlans {
    id
    copyGeneratingSince
    copyGenerationError
    createdAt
    headlineTreatmentId
    instructions
  }
}

pattern

Get a single pattern by ID

Returns: Pattern

Arguments:

Example:

query Pattern($id: UUID!) {
  pattern(id: $id) {
    id
    createdAt
    name
    repeatHorizontal
    repeatVertical
    status
  }
}

patternRevision

Get a single pattern revision by ID

Returns: PatternRevision

Arguments:

Example:

query PatternRevision($id: UUID!) {
  patternRevision(id: $id) {
    id
    baseRevisionId
    createdAt
    errorMessage
    favorite
    generationModel
  }
}

patterns

Get patterns with pagination, scoped to the current team

Returns: [Pattern!]!

Arguments:

  • limit Int! required
  • offset Int! required

Example:

query Patterns($limit: Int!, $offset: Int!) {
  patterns(limit: $limit, offset: $offset) {
    id
    createdAt
    name
    repeatHorizontal
    repeatVertical
    status
  }
}

planDesignerChange

Read-only: compute the deterministic plan for a change set relative to a base revision (designer.md 5.0). Returns the effective setup (base's frozen setup overlaid with the change), which slots regenerate, whether the person base rebuilds (derived: outfit differs from the base's frozen value, or the base has no frozen setup), and exactly which shape/render prompts the composer must author (with context: base puppet key to edit, frozen description + outfit for the keep-clause, resolved fabric-swatch / paint-overlay URLs, the view). Creates nothing — generateDesignerRevision re-derives the same plan authoritatively and is the write. baseRevisionId is null for the first generation. Also returns viewDetails, the placed details per view that every render prompt for that view must bind. Refuses (400) a render view whose base has no puppet. A change set that matches the base returns an empty plan (regenerates: [], needFromComposer: []) rather than an error, which is the noop signal: do not compose and do not submit, because generateDesignerRevision refuses a change set that produces no render.

Returns: DesignerChangePlan!

Arguments:

Example:

query PlanDesignerChange($recoverySourceRevisionId: UUID, $designerInstanceId: UUID!, $baseRevisionId: UUID, $changeSet: DesignerChangeSet!) {
  planDesignerChange(recoverySourceRevisionId: $recoverySourceRevisionId, designerInstanceId: $designerInstanceId, baseRevisionId: $baseRevisionId, changeSet: $changeSet) {
    baseRevisionId
    deterministic
    fingerprint
    rebuildPersonBase
    regenerates
  }
}

previewFileNameConvention

Dry-run a convention without saving. Omit fileNames to run against the team's own uploads, which is what shows whether saving would change existing files.

Returns: FileNameConventionPreview!

Arguments:

Example:

query PreviewFileNameConvention($convention: FileNameConventionInput!, $fileNames: [String!], $perspectiveCode: String) {
  previewFileNameConvention(convention: $convention, fileNames: $fileNames, perspectiveCode: $perspectiveCode) {
    unmatchedCount
  }
}

pricelist

Public PAYG pricelist derived from the current server-side PricingVersion. Every row carries its own label and tier: render those, and do not derive presentation from the usageType string. tier is GENERATION (charged per attempt while creating) or RELEASE (charged once when an asset is exported). Only charges a merchant can actually incur are returned. Rates that exist as internal fallbacks or belong to removed features are omitted, so this list will not match the full UsageType enum.

Returns: [PricelistEntry!]!

Example:

query Pricelist {
  pricelist {
    chargeCents
    currency
    label
    outputUnit
    pricingVersion
    tier
  }
}

productStudioHomeDigest

Pre-bucketed Home view payload: needs-your-attention and recently-generated sections.

Returns: ProductStudioHomeDigest!

Example:

query ProductStudioHomeDigest {
  productStudioHomeDigest {
    needsAttention {
      perspectivesGenerated
      perspectivesPicked
      reviewState
      thumbnailUrl
    }
  }
}

productStudioRenderSize

The pixel size a perspective with these settings renders at, before any crop. A free-form target ratio renders at its closest native ratio. Null for models Product Studio does not render with.

Returns: RenderSize

Arguments:

  • aiModel AiModel! required
  • aspectRatio AspectRatio
  • targetRatioW Int
  • targetRatioH Int
  • preview Boolean

Example:

query ProductStudioRenderSize($aiModel: AiModel!, $aspectRatio: AspectRatio, $targetRatioW: Int, $targetRatioH: Int, $preview: Boolean) {
  productStudioRenderSize(aiModel: $aiModel, aspectRatio: $aspectRatio, targetRatioW: $targetRatioW, targetRatioH: $targetRatioH, preview: $preview) {
    height
    width
  }
}

productStudiosForBatch

Get draft ProductStudios for a batch plan review

Returns: [ProductStudio!]!

Arguments:

Example:

query ProductStudiosForBatch($batchId: UUID!) {
  productStudiosForBatch(batchId: $batchId) {
    id
    createdAt
    isGenerated
    status
    teamDomain
    title
  }
}

releasedImages

Every released image of the team that is new or changed since after, oldest change first: product studio outputs, campaign image results and group shot results. A change appears about one minute after it happens, so a release is never delivered before it is fully saved. A release changes when the image is re-released or edited after release, so the same release can appear again with a new exportImageUrl; treat its id as the key to overwrite. Deleting the studio or campaign removes its releases and is not reported here. To sync: call without after, then keep calling with the returned cursor while hasMore is true, and store the last cursor for the next run.

Returns: ReleasedImagesPage!

Arguments:

  • after String: The cursor from your previous call. Omit it on the first sync to start from the team's first release.
  • first Int: Page size, 1 to 500. Defaults to 100.

Example:

query ReleasedImages($after: String, $first: Int) {
  releasedImages(after: $after, first: $first) {
    cursor
    hasMore
  }
}

resourcesInDesignerCollection

Every DesignerInstanceResource owned by any DI inside the collection, most recent first. Drives the cross-DI resource browse panel in the Designer inspector.

Returns: [DesignerInstanceResource!]!

Arguments:

  • designerCollectionId UUID! required

Example:

query ResourcesInDesignerCollection($designerCollectionId: UUID!) {
  resourcesInDesignerCollection(designerCollectionId: $designerCollectionId) {
    id
    createdAt
    description
    designerInstanceId
    imageKey
    label
  }
}

searchFashionModels

Search fashion models by name (case-insensitive)

Returns: [FashionModel!]!

Arguments:

  • name String! required
  • limit Int

Example:

query SearchFashionModels($name: String!, $limit: Int) {
  searchFashionModels(name: $name, limit: $limit) {
    id
    createdAt
    gender
    name
    status
    teamDomain
  }
}

shootingLocation

Get a single shootingLocation by ID

Returns: ShootingLocation

Arguments:

Example:

query ShootingLocation($id: UUID!) {
  shootingLocation(id: $id) {
    id
    createdAt
    teamDomain
    thumbnailUrl
    title
    updatedAt
  }
}

shootingLocationRevision

Get a single shooting location revision by ID

Returns: ShootingLocationRevision

Arguments:

Example:

query ShootingLocationRevision($id: UUID!) {
  shootingLocationRevision(id: $id) {
    id
    createdAt
    favorite
    imageKey
    label
    model
  }
}

shootingLocations

Get shootingLocations with pagination

Returns: [ShootingLocation!]!

Arguments:

  • limit Int! required
  • offset Int! required

Example:

query ShootingLocations($limit: Int!, $offset: Int!) {
  shootingLocations(limit: $limit, offset: $offset) {
    id
    createdAt
    teamDomain
    thumbnailUrl
    title
    updatedAt
  }
}

shopifyProducts

Search Shopify products via the Admin API

Returns: ShopifyProductsResult!

Arguments:

  • query String! required
  • first Int
  • after String
  • sortKey String
  • reverse Boolean

Example:

query ShopifyProducts($query: String!, $first: Int, $after: String, $sortKey: String, $reverse: Boolean) {
  shopifyProducts(query: $query, first: $first, after: $after, sortKey: $sortKey, reverse: $reverse) {
    pageInfo {
      endCursor
      hasNextPage
    }
  }
}

sizeChart

Get a single size chart by ID

Returns: SizeChart!

Arguments:

Example:

query SizeChart($id: UUID!) {
  sizeChart(id: $id) {
    id
    baseSize
    code
    createdAt
    department
    derivedFromChartId
  }
}

sizeChartDepartments

Departments that have current uploaded charts, for the matcher's department picker. Preselect when there is only one.

Returns: [String!]!

Example:

query SizeChartDepartments {
  sizeChartDepartments
}

sizeCharts

The team's size chart library: uploaded standard specs and design charts. Metadata is cheap; rows load in batches.

Returns: [SizeChart!]!

Arguments:

  • source SizeChartSource
  • department String
  • garmentType String
  • patternGroup String: Only the charts of one pattern group, e.g. to show a chart's siblings.
  • includeSuperseded Boolean: Include uploaded charts replaced by a later upload. Default false.

Example:

query SizeCharts($source: SizeChartSource, $department: String, $garmentType: String, $patternGroup: String, $includeSuperseded: Boolean) {
  sizeCharts(source: $source, department: $department, garmentType: $garmentType, patternGroup: $patternGroup, includeSuperseded: $includeSuperseded) {
    id
    baseSize
    code
    createdAt
    department
    derivedFromChartId
  }
}

skill

Get a single skill by ID

Returns: Skill!

Arguments:

Example:

query Skill($id: UUID!) {
  skill(id: $id) {
    id
    body
    createdAt
    teamDomain
    title
    updatedAt
  }
}

skills

Get all skills for the current team

Returns: [Skill!]!

Example:

query Skills {
  skills {
    id
    body
    createdAt
    teamDomain
    title
    updatedAt
  }
}

unassignedCampaignImages

Get campaign images not assigned to any campaign

Returns: [CampaignImage!]!

Arguments:

  • limit Int
  • offset Int

Example:

query UnassignedCampaignImages($limit: Int, $offset: Int) {
  unassignedCampaignImages(limit: $limit, offset: $offset) {
    id
    aspectRatio
    createdAt
    errorMessage
    guidanceImageKey
    guidanceImageUrl
  }
}

wardrobeItem

Get a single wardrobe article by ID

Returns: WardrobeItem

Arguments:

Example:

query WardrobeItem($id: UUID!) {
  wardrobeItem(id: $id) {
    id
    archivedAt
    category
    createdAt
    styleReference
    teamDomain
  }
}

wardrobeItems

Styling articles the team completes looks with

Returns: [WardrobeItem!]!

Arguments:

  • includeArchived Boolean: Include archived articles. Settings only; pickers and the planner must not.

Example:

query WardrobeItems($includeArchived: Boolean) {
  wardrobeItems(includeArchived: $includeArchived) {
    id
    archivedAt
    category
    createdAt
    styleReference
    teamDomain
  }
}

workflow

A single workflow definition

Returns: Workflow!

Arguments:

Example:

query Workflow($id: UUID!) {
  workflow(id: $id) {
    id
    createdAt
    instructions
    name
    teamDomain
    updatedAt
  }
}

workflowRun

A single workflow run; poll while non-terminal to watch progress

Returns: WorkflowRun!

Arguments:

Example:

query WorkflowRun($id: UUID!) {
  workflowRun(id: $id) {
    id
    awaitingStepId
    batchId
    completedStepIds
    createdAt
    lastError
  }
}

workflowRuns

All runs of one workflow, newest first

Returns: [WorkflowRun!]!

Arguments:

  • workflowId UUID! required

Example:

query WorkflowRuns($workflowId: UUID!) {
  workflowRuns(workflowId: $workflowId) {
    id
    awaitingStepId
    batchId
    completedStepIds
    createdAt
    lastError
  }
}

workflows

All workflow definitions for the team, newest first

Returns: [Workflow!]!

Example:

query Workflows {
  workflows {
    id
    createdAt
    instructions
    name
    teamDomain
    updatedAt
  }
}