Queries

All available GraphQL queries for fetching data from the Brandmachine API.

activeMediaGenerationTasks

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

Returns: [MediaGenerationTask!]!

Example:

query {
  activeMediaGenerationTasks {
    # Add your fields here
  }
}

backendCommit

Returns: String!

Example:

query {
  backendCommit {
    # Add your fields here
  }
}

batch

Get a single batch by ID with full relationships

Returns: Batch!

Arguments:

  • id (UUID!) required

Example:

query {
  batch(id: "value") {
    # Add your fields here
  }
}

batchInputImages

Get input images for a batch

Returns: [BatchInputImage!]!

Arguments:

  • batchId (UUID!) required

Example:

query {
  batchInputImages(batchId: "value") {
    # Add your fields here
  }
}

batches

Get batches for the current team with pagination

Returns: [Batch!]!

Arguments:

  • limit (Int)
  • offset (Int)

Example:

query {
  batches(limit: 1, offset: 1) {
    # Add your fields here
  }
}

billingCostSummary

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

Returns: BillingCostSummary!

Arguments:

  • from (Date!) required
  • to (Date!) required

Example:

query {
  billingCostSummary(from: "value", to: "value") {
    # Add your fields here
  }
}

billingLedger

Paginated billing ledger for the requesting team, newest first.

Returns: [BillingLedgerEntry!]!

Arguments:

  • limit (Int!) required
  • offset (Int!) required

Example:

query {
  billingLedger(limit: 1, offset: 1) {
    # Add your fields here
  }
}

campaign

Get a single campaign by ID with full relationships

Returns: Campaign!

Arguments:

  • id (UUID!) required

Example:

query {
  campaign(id: "value") {
    # Add your fields here
  }
}

campaignImage

Get a single campaign image by ID

Returns: CampaignImage

Arguments:

  • id (UUID!) required

Example:

query {
  campaignImage(id: "value") {
    # Add your fields here
  }
}

campaignImages

Get campaign images with pagination

Returns: [CampaignImage!]!

Arguments:

  • limit (Int)
  • offset (Int)

Example:

query {
  campaignImages(limit: 1, offset: 1) {
    # Add your fields here
  }
}

campaignImagesForBatch

Get draft CampaignImages for a batch plan review

Returns: [CampaignImage!]!

Arguments:

  • batchId (UUID!) required

Example:

query {
  campaignImagesForBatch(batchId: "value") {
    # Add your fields here
  }
}

campaigns

Get campaigns for the current team with pagination

Returns: [Campaign!]!

Arguments:

  • limit (Int)
  • offset (Int)

Example:

query {
  campaigns(limit: 1, offset: 1) {
    # Add your fields here
  }
}

creditBalance

The requesting team's PAYG credit balance in cents.

Returns: CreditBalanceResponse!

Example:

query {
  creditBalance {
    # Add your fields here
  }
}

creditBalanceDigest

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

Returns: Date

Example:

query {
  creditBalanceDigest {
    # Add your fields here
  }
}

currentTeam

Identity + billing-routing flags for the requesting team.

Returns: CurrentTeamResponse!

Example:

query {
  currentTeam {
    # Add your fields here
  }
}

designerInstance

Get a single designer instance by ID

Returns: DesignerInstance

Arguments:

  • id (UUID!) required

Example:

query {
  designerInstance(id: "value") {
    # Add your fields here
  }
}

designerInstanceRevision

Get a single designer instance revision by ID

Returns: DesignerInstanceRevision

Arguments:

  • id (UUID!) required

Example:

query {
  designerInstanceRevision(id: "value") {
    # Add your fields here
  }
}

designerInstances

Get designer instances with pagination

Returns: [DesignerInstance!]!

Arguments:

  • limit (Int!) required
  • offset (Int!) required

Example:

query {
  designerInstances(limit: 1, offset: 1) {
    # Add your fields here
  }
}

fashionModel

Get a single fashion model by ID

Returns: FashionModel

Arguments:

  • id (UUID!) required

Example:

query {
  fashionModel(id: "value") {
    # Add your fields here
  }
}

fashionModelCasting

Get a single fashion model casting with results

Returns: FashionModelCasting

Arguments:

  • id (UUID!) required

Example:

query {
  fashionModelCasting(id: "value") {
    # Add your fields here
  }
}

fashionModelCastings

Get fashion model castings with pagination

Returns: [FashionModelCasting!]!

Arguments:

  • limit (Int)
  • offset (Int)

Example:

query {
  fashionModelCastings(limit: 1, offset: 1) {
    # Add your fields here
  }
}

fashionModelRevision

Get a single fashion model revision by ID

Returns: FashionModelRevision

Arguments:

  • id (UUID!) required

Example:

query {
  fashionModelRevision(id: "value") {
    # Add your fields here
  }
}

fashionModels

Get all fashion models

Returns: [FashionModel!]!

Example:

query {
  fashionModels {
    # Add your fields here
  }
}

getAllBrandMemories

Returns: [BrandMemory!]!

Example:

query {
  getAllBrandMemories {
    # Add your fields here
  }
}

getAllPlans

Returns: [Plan!]!

Example:

query {
  getAllPlans {
    # Add your fields here
  }
}

getAllProductSpotlights

Returns: [ProductSpotlight!]!

Example:

query {
  getAllProductSpotlights {
    # Add your fields here
  }
}

getAllProductStudioPerspectives

Get all product studio perspectives for the current team

Returns: [ProductStudioPerspective!]!

Arguments:

  • includeArchived (Boolean)

Example:

query {
  getAllProductStudioPerspectives(includeArchived: true) {
    # Add your fields here
  }
}

getAllProductStudioSettings

Returns: [ProductStudioSetting!]!

Example:

query {
  getAllProductStudioSettings {
    # Add your fields here
  }
}

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: 1) {
    # Add your fields here
  }
}

getAllProductVideos

Returns: [ProductVideo!]!

Example:

query {
  getAllProductVideos {
    # Add your fields here
  }
}

getBrandMemory

Returns: BrandMemory

Example:

query {
  getBrandMemory {
    # Add your fields here
  }
}

getBrandMemoryById

Returns: BrandMemory!

Arguments:

  • id (UUID!) required

Example:

query {
  getBrandMemoryById(id: "value") {
    # Add your fields here
  }
}

getCampaignSetting

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

Returns: CampaignSetting

Example:

query {
  getCampaignSetting {
    # Add your fields here
  }
}

getPlan

Returns: Plan!

Arguments:

  • id (UUID!) required

Example:

query {
  getPlan(id: "value") {
    # Add your fields here
  }
}

getProductSpotlight

Returns: ProductSpotlight!

Arguments:

  • id (UUID!) required

Example:

query {
  getProductSpotlight(id: "value") {
    # Add your fields here
  }
}

getProductStudio

Get a single ProductStudio by ID with perspective filtering

Returns: ProductStudio

Arguments:

  • id (UUID!) required
  • productStudioPerspectiveId (UUID)

Example:

query {
  getProductStudio(id: "value", productStudioPerspectiveId: "value") {
    # Add your fields here
  }
}

getProductStudioPerspective

Get a single product studio perspective by ID

Returns: ProductStudioPerspective

Arguments:

  • id (UUID!) required

Example:

query {
  getProductStudioPerspective(id: "value") {
    # Add your fields here
  }
}

getProductStudioSetting

Returns: ProductStudioSetting

Example:

query {
  getProductStudioSetting {
    # Add your fields here
  }
}

getProductStudioSettingById

Returns: ProductStudioSetting!

Arguments:

  • id (UUID!) required

Example:

query {
  getProductStudioSettingById(id: "value") {
    # Add your fields here
  }
}

getProductVideo

Returns: ProductVideo!

Arguments:

  • id (UUID!) required

Example:

query {
  getProductVideo(id: "value") {
    # Add your fields here
  }
}

getShopName

Get information about the Shopify Store

Returns: String!

Example:

query {
  getShopName {
    # Add your fields here
  }
}

getShopifyProduct

Returns: String!

Arguments:

  • id (String!) required

Example:

query {
  getShopifyProduct(id: "example") {
    # Add your fields here
  }
}

groupShot

Get a single group shot by ID

Returns: GroupShot!

Arguments:

  • id (UUID!) required

Example:

query {
  groupShot(id: "value") {
    # Add your fields here
  }
}

mediaGenerationTasks

Get media generation tasks with optional filtering by status and type

Returns: [MediaGenerationTask!]!

Arguments:

  • status (ContentGenerationStatus)
  • type (TaskType)

Example:

query {
  mediaGenerationTasks(status: "value", type: "value") {
    # Add your fields here
  }
}

mediaGenerationTasksDigest

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

Returns: Date

Example:

query {
  mediaGenerationTasksDigest {
    # Add your fields here
  }
}

pattern

Get a single pattern by ID

Returns: Pattern

Arguments:

  • id (UUID!) required

Example:

query {
  pattern(id: "value") {
    # Add your fields here
  }
}

patternRevision

Get a single pattern revision by ID

Returns: PatternRevision

Arguments:

  • id (UUID!) required

Example:

query {
  patternRevision(id: "value") {
    # Add your fields here
  }
}

patterns

Get patterns with pagination, scoped to the current team

Returns: [Pattern!]!

Arguments:

  • limit (Int!) required
  • offset (Int!) required

Example:

query {
  patterns(limit: 1, offset: 1) {
    # Add your fields here
  }
}

pricelist

Public PAYG pricelist derived from the current server-side PricingVersion. Two semantically different tiers share this list, distinguished by the usageType string: (1) Generation tier, small per-click charges during content creation (e.g. campaignImageIteration, productStudio, designer); (2) Release tier, larger one-off fee when an asset is exported, suffixed *Billable (e.g. campaignImageBillable, productVideoBillable). A few flat single-event types (e.g. productShort) sit outside that split. Render accordingly; the suffix is the only signal.

Returns: [PricelistEntry!]!

Example:

query {
  pricelist {
    # Add your fields here
  }
}

productStudioHomeDigest

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

Returns: ProductStudioHomeDigest!

Example:

query {
  productStudioHomeDigest {
    # Add your fields here
  }
}

productStudiosForBatch

Get draft ProductStudios for a batch plan review

Returns: [ProductStudio!]!

Arguments:

  • batchId (UUID!) required

Example:

query {
  productStudiosForBatch(batchId: "value") {
    # Add your fields here
  }
}

searchFashionModels

Search fashion models by name (case-insensitive)

Returns: [FashionModel!]!

Arguments:

  • name (String!) required
  • limit (Int)

Example:

query {
  searchFashionModels(name: "example", limit: 1) {
    # Add your fields here
  }
}

shootingLocation

Get a single shootingLocation by ID

Returns: ShootingLocation

Arguments:

  • id (UUID!) required

Example:

query {
  shootingLocation(id: "value") {
    # Add your fields here
  }
}

shootingLocationRevision

Get a single shooting location revision by ID

Returns: ShootingLocationRevision

Arguments:

  • id (UUID!) required

Example:

query {
  shootingLocationRevision(id: "value") {
    # Add your fields here
  }
}

shootingLocations

Get shootingLocations with pagination

Returns: [ShootingLocation!]!

Arguments:

  • limit (Int!) required
  • offset (Int!) required

Example:

query {
  shootingLocations(limit: 1, offset: 1) {
    # Add your fields here
  }
}

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: "example", first: 1, after: "example", sortKey: "example", reverse: true) {
    # Add your fields here
  }
}

skill

Get a single skill by ID

Returns: Skill!

Arguments:

  • id (UUID!) required

Example:

query {
  skill(id: "value") {
    # Add your fields here
  }
}

skills

Get all skills for the current team

Returns: [Skill!]!

Example:

query {
  skills {
    # Add your fields here
  }
}

unassignedCampaignImages

Get campaign images not assigned to any campaign

Returns: [CampaignImage!]!

Arguments:

  • limit (Int)
  • offset (Int)

Example:

query {
  unassignedCampaignImages(limit: 1, offset: 1) {
    # Add your fields here
  }
}