Workspaces Data Structures
All data structures used in the Workspaces API endpoint.
Delete Workspace Response
Response after deleting a workspace
Delete Workspace Response
objectResponse after deleting a workspace
okbooleanrequiredIndicates if the deletion was successful
Example: true
Industry
Workspace industry
Industry
stringWorkspace industry
Update Workspace Request
Request body for updating a workspace. All fields are optional - only provided fields will be updated.
Update Workspace Request
objectRequest body for updating a workspace. All fields are optional - only provided fields will be updated.
namestringWorkspace name. If updated, the slug will be automatically regenerated.
Example: "My Updated Workspace"
industryIndustrywebsiteUrlstring | nullWorkspace website URL. Can be null to remove.
Example: "https://example.com"
appstoreUrlstring | nullApp Store URL. Can be null to remove.
Example: "https://apps.apple.com/app/example"
instagramUrlstring | nullInstagram URL. Can be null to remove.
Example: "https://instagram.com/example"
logoUrlstring | nullURL 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
objectResponse after updating a workspace
okbooleanrequiredIndicates if the update was successful
Example: true
newSlugstringNew workspace slug (only present if name was updated)
Example: "updated-workspace-name"
Workspace
Workspace information
Workspace
objectWorkspace information
idstringrequiredUnique workspace identifier
ownerIdstringrequiredUser ID of the workspace owner
namestringrequiredWorkspace name
slugstringrequiredWorkspace slug identifier (used in URLs)
industrystringrequiredWorkspace industry
logoUrlstring | nullURL to workspace logo
websiteUrlstring | nullWorkspace website URL
appstoreUrlstring | nullApp Store URL
instagramUrlstring | nullInstagram URL
planPlanrequiredplanStatusPlanStatusrequiredstripeCustomerIdstring | nullStripe customer ID if billing is set up
stripeSubscriptionIdstring | nullStripe subscription ID if subscription exists
trialEndsAtstring (date-time) | nullTrial end date in ISO 8601 format, if applicable
createdAtstring (date-time)requiredISO 8601 timestamp of when the workspace was created
updatedAtstring (date-time)requiredISO 8601 timestamp of when the workspace was last updated
currencyCodestringrequiredISO 4217 currency code (e.g., USD, EUR)
lastSyncedAtstring (date-time) | nullISO 8601 timestamp of last automatic sync (internal use)
lastForcedSyncAtstring (date-time) | nullISO 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";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";