Get Started

Workspaces Data Structures

All data structures used in the Workspaces API endpoint.

Delete Workspace Response

Response after deleting a workspace

Delete Workspace Response

object

Response after deleting a workspace

okbooleanrequired

Indicates if the deletion was successful

Example: true

Industry

Workspace industry

Industry

string

Workspace industry

Mobile AppSaaSE-commerceMarketing AgencyContent CreatorConsultingNon-profitEducationHealthcareFinanceReal EstateOther

Update Workspace Request

Request body for updating a workspace. All fields are optional - only provided fields will be updated.

Update Workspace Request

object

Request body for updating a workspace. All fields are optional - only provided fields will be updated.

namestring

Workspace name. If updated, the slug will be automatically regenerated.

Example: "My Updated Workspace"

industryIndustry
websiteUrlstring | null

Workspace website URL. Can be null to remove.

Example: "https://example.com"

appstoreUrlstring | null

App Store URL. Can be null to remove.

Example: "https://apps.apple.com/app/example"

instagramUrlstring | null

Instagram URL. Can be null to remove.

Example: "https://instagram.com/example"

logoUrlstring | null

URL to workspace logo. Can be null to remove.

Example: "https://example.com/logo.png"

currencyCode"USD" | "EUR" | "GBP" | "CAD" | "AUD" | "NZD" | "JPY" | "CNY" | "INR" | "BRL" | "MXN" | "CHF" | "SEK" | "NOK" | "DKK" | "PLN" | "CZK" | "HUF" | "RON" | "BGN" | "ILS" | "AED" | "SAR" | "ZAR" | "HKD" | "SGD" | "KRW" | "THB" | "IDR" | "MYR" | "PHP" | "ARS" | "CLP" | "COP" | "PEN"

ISO 4217 currency code

Example: "USD"

Update Workspace Response

Response after updating a workspace

Update Workspace Response

object

Response after updating a workspace

okbooleanrequired

Indicates if the update was successful

Example: true

newSlugstring

New workspace slug (only present if name was updated)

Example: "updated-workspace-name"

Workspace

Workspace information

Workspace

object

Workspace information

idstringrequired

Unique workspace identifier

ownerIdstringrequired

User ID of the workspace owner

namestringrequired

Workspace name

slugstringrequired

Workspace slug identifier (used in URLs)

industrystringrequired

Workspace industry

logoUrlstring | null

URL to workspace logo

websiteUrlstring | null

Workspace website URL

appstoreUrlstring | null

App Store URL

instagramUrlstring | null

Instagram URL

planPlanrequired
planStatusPlanStatusrequired
stripeCustomerIdstring | null

Stripe customer ID if billing is set up

stripeSubscriptionIdstring | null

Stripe subscription ID if subscription exists

trialEndsAtstring (date-time) | null

Trial end date in ISO 8601 format, if applicable

createdAtstring (date-time)required

ISO 8601 timestamp of when the workspace was created

updatedAtstring (date-time)required

ISO 8601 timestamp of when the workspace was last updated

currencyCodestringrequired

ISO 4217 currency code (e.g., USD, EUR)

lastSyncedAtstring (date-time) | null

ISO 8601 timestamp of last automatic sync (internal use)

lastForcedSyncAtstring (date-time) | null

ISO 8601 timestamp of last forced sync (internal use)

interface DeleteWorkspaceResponse {
  /** Indicates if the deletion was successful */
  ok: boolean;
}

type Industry = "Mobile App" | "SaaS" | "E-commerce" | "Marketing Agency" | "Content Creator" | "Consulting" | "Non-profit" | "Education" | "Healthcare" | "Finance" | "Real Estate" | "Other";

interface UpdateWorkspaceRequest {
  /** Workspace name. If updated, the slug will be automatically regenerated. */
  name?: string;
  industry?: Industry;
  /** Workspace website URL. Can be null to remove. */
  websiteUrl?: string;
  /** App Store URL. Can be null to remove. */
  appstoreUrl?: string;
  /** Instagram URL. Can be null to remove. */
  instagramUrl?: string;
  /** URL to workspace logo. Can be null to remove. */
  logoUrl?: string;
  /** ISO 4217 currency code */
  currencyCode?: "USD" | "EUR" | "GBP" | "CAD" | "AUD" | "NZD" | "JPY" | "CNY" | "INR" | "BRL" | "MXN" | "CHF" | "SEK" | "NOK" | "DKK" | "PLN" | "CZK" | "HUF" | "RON" | "BGN" | "ILS" | "AED" | "SAR" | "ZAR" | "HKD" | "SGD" | "KRW" | "THB" | "IDR" | "MYR" | "PHP" | "ARS" | "CLP" | "COP" | "PEN";
}

interface UpdateWorkspaceResponse {
  /** Indicates if the update was successful */
  ok: boolean;
  /** New workspace slug (only present if name was updated) */
  newSlug?: string;
}

interface Workspace {
  /** Unique workspace identifier */
  id: string;
  /** User ID of the workspace owner */
  ownerId: string;
  /** Workspace name */
  name: string;
  /** Workspace slug identifier (used in URLs) */
  slug: string;
  /** Workspace industry */
  industry: string;
  /** URL to workspace logo */
  logoUrl?: string;
  /** Workspace website URL */
  websiteUrl?: string;
  /** App Store URL */
  appstoreUrl?: string;
  /** Instagram URL */
  instagramUrl?: string;
  plan: Plan;
  planStatus: PlanStatus;
  /** Stripe customer ID if billing is set up */
  stripeCustomerId?: string;
  /** Stripe subscription ID if subscription exists */
  stripeSubscriptionId?: string;
  /** Trial end date in ISO 8601 format, if applicable */
  trialEndsAt?: string;
  /** ISO 8601 timestamp of when the workspace was created */
  createdAt: string;
  /** ISO 8601 timestamp of when the workspace was last updated */
  updatedAt: string;
  /** ISO 4217 currency code (e.g., USD, EUR) */
  currencyCode: string;
  /** ISO 8601 timestamp of last automatic sync (internal use) */
  lastSyncedAt?: string;
  /** ISO 8601 timestamp of last forced sync (internal use) */
  lastForcedSyncAt?: string;
}

type Plan = "starter" | "growth" | "scale" | "agency";

type PlanStatus = "active" | "inactive" | "trial";