Skip to main content
All requests use a single endpoint: POST /functions/v1/api with resource: "branding".

Access control

All branding actions require authentication. The user must belong to a team. Branding is stored at the team level.
ActionAny userTeam memberTeam ownerAdmin
get / allNoYesYesYes
updateNoNoYesYes
clearNoNoYesYes
generate-logoNoYesYesYes

Get branding

Retrieves the team’s branding configuration.
resource
string
required
Must be "branding"
action
string
required
Must be "get" or "all"
const { team, branding } = await ApiService.invoke({
  resource: "branding",
  action: "get",
});
team
object
Team object with id, name, branding
branding
object | null
The branding object, or null if no branding is set. Contains primaryColor, secondaryColor, logoUrl, gradientEnabled, gradientAngle, qrCodeStyle, embedStyle, extractedPalette, etc.

Update branding

Updates the team’s branding configuration.
resource
string
required
Must be "branding"
action
string
required
Must be "update"
branding
object
required
The branding object to set. Replaces the entire branding configuration.
name
string
Optional team name update (applied alongside branding).
const { team, branding } = await ApiService.invoke({
  resource: "branding",
  action: "update",
  data: {
    branding: {
      primaryColor: "#1B5E8C",
      secondaryColor: "#4E9CFF",
      logoUrl: "https://...",
      gradientEnabled: true,
      gradientAngle: 135,
    },
  },
});

Clear branding

Resets the team’s branding to null (removes all custom branding).
resource
string
required
Must be "branding"
action
string
required
Must be "clear"
const { team } = await ApiService.invoke({
  resource: "branding",
  action: "clear",
});

Generate a professional AI logo icon. Returns a transparent PNG uploaded to storage. The logo is an icon/symbol only (no text). Generation takes 15-60 seconds.
resource
string
required
Must be "branding"
action
string
required
Must be "generate-logo"
name
string
required
Brand or business name. Used as a thematic hint to inspire the icon design (not rendered as text in the logo).
description
string
Short business description for prompt context. Example: "A residential plumbing business in Austin, TX"
style
string
Style preset. One of: modern (default), classic, bold, friendly, tech, luxury.
industry
string
Industry context for relevant iconography. One of: automotive, marine, appliances, office-equipment, home-builders, travel-hospitality, manufacturing, industrial, trades, plumbing, electrical, hvac, landscaping, real-estate, healthcare, fitness, restaurant, retail, technology, education, finance, legal.
const { image_url } = await ApiService.invoke({
  resource: "branding",
  action: "generate-logo",
  data: {
    name: "Plumbing Pros",
    description: "Residential plumbing in Austin, TX",
    industry: "plumbing",
    style: "modern",
  },
});

// Then apply the logo to branding:
await ApiService.invoke({
  resource: "branding",
  action: "update",
  data: {
    branding: { ...existingBranding, logoUrl: image_url },
  },
});
image_url
string
Public URL of the generated logo PNG (transparent background). Can be used directly as the logoUrl in a branding update.
storage_path
string
Supabase Storage path: generated-logos/{filename}.png
replicate_prediction_id
string
Replicate prediction ID for debugging/tracking.
The generated logo is a transparent PNG icon/symbol with no text. To apply it to your branding, take the returned image_url and pass it as logoUrl in a subsequent update call.