Skip to main content
PATCH
Update Company
Update company product info, brand context, reply-tracking settings, the workspace default lists, and account-wide From and Reply-To defaults. A new profile is created when an address does not already have one. From addresses must use a configured, verified sending domain; Reply-To addresses may use any valid mailbox. The current read-only retention period is returned as replyRetentionDays by the company endpoints. Requires the company_profile:manage scope. The sending-identity and reply-tracking fields (senderProfileId, fromEmail, fromName, replyProfileId, replyTo, replyToName, replyTrackingEnabled, replyTrackingDomainMode, forwardReplies) and defaultSubscriberListIds additionally require companies:manage; a request that mixes them with profile fields is rejected as a whole rather than partially applied. Keys that already hold companies:manage satisfy company_profile:manage automatically. The response includes the same read-only emailBranding entitlement as get company. It is derived from the owner’s subscription and cannot be changed by adding a branding field to this request. Omit a field to preserve its value. For nullable profile fields such as description, companyContext, toneVoice and valueProps, send null to clear the value. Arrays and profile objects replace their previous values; emailTheme is a partial update as described below.

Request

string
required
Company ID.
string
Workspace name. Must not be blank.
boolean
default:"false"
Set to true with name and previousCompanyName to rename exact matching company names in editable email footer blocks and saved components. Includes nested footers, draft A/B variants and their localizations. Custom names, body copy, sent or sending campaigns and active A/B tests stay unchanged. Null is not accepted. Omit or pass false to change only company settings.
string
Required when renameMatchingFooters is true. Use the current name from get company. A stale name returns 409 without applying changes. Refresh and confirm the replacement again. Retrying after a successful rename does not repeat footer updates. The name and footer updates commit together; no emails are sent.
string | null
Company logo URL. Send null to clear it.
string | null
Founder name for your company profile and generated copy. Send null to clear it.
object | null
Replacement brand-color data, including optional footerTheme. Read and merge the current object before updating one entry; this field is replaced wholesale. Send null to clear it.
array | null
Replacement testimonial data for your company profile and AI context. Send null to clear it.
string
Preferred generated email length: concise, balanced, or detailed.
Replacement map of social network names to URL strings. Send null to clear it.
string | null
Privacy policy URL. Send null to clear it.
string | null
Terms URL. Send null to clear it.
string | null
Company postal address used in marketing footers. Send null to clear it.
string
Default language for generated email copy, such as en. Must not be blank.
object | null
Replacement product pricing context for generated copy. Send null to clear it.
string | null
Default email font family. Send null to clear the override.
string
Default email text direction: ltr or rtl.
string
Primary brand color as a 6-digit hex value, for example #0ea5e9. Also updates the email theme’s primary color unless emailTheme sets one explicitly.
object | null
Default email theme applied to campaigns, sequences, and transactional email. Partial update: omitted fields keep their current value (or the preset default), and numeric values are clamped to supported ranges. Pass null to reset to the platform default theme. Supported fields:
  • presetId: default, soft, editorial, or bold
  • buttonStyle: solid (filled, the default) or outline (transparent fill with a brand-color border)
  • colors: 6-digit hex values for primary, background (outer canvas), content (inner content card; omit to preserve its current value, or to follow the canvas when no content color is stored), surface (nested cards and tinted tiles), text, mutedText, heading, border, link, and optionally buttonText (solid button label color; omit to auto-derive a readable color from the button fill)
  • typography: numbers for baseFontSize, leadFontSize, baseLineHeight, heading1Size, heading2Size, heading3Size, buttonFontSize, buttonFontWeight (400-800), headingFontWeight (300-900, applied to all heading levels; omit for the per-level defaults), and headingLetterSpacing (px, -2 to 4, negative = tighter tracking); plus headingFontFamily as a font-stack string for serif-headline + sans-body pairings (omit so headings inherit the email font)
  • layout: numbers for contentWidth, containerPaddingX, containerPaddingY, blockSpacing, baseRadius, buttonRadius, sectionPadding, buttonPaddingX, buttonPaddingY, borderedBlockPadding
The auto-appended unsubscribe footer has its own colors stored under brandColors.footerTheme (backgroundColor, companyTextColor, metaTextColor, linkColor, borderColor). When changing them via brandColors, send the merged object - the field is replaced wholesale.
string | null
Short product or company summary.
string | null
Basic product/company knowledge AI should use when writing emails.
string | null
Tone of voice guidance for generated copy.
string | null
Art direction for AI-designed emails: layout, density, which sections belong in an email, imagery, and CTA prominence. toneVoice steers the copy; this steers the design. When empty, the next email generation prefills it with the direction derived from the brand. Send null to clear it - the next generation writes a fresh one.
array | null
Value propositions, usually objects with title and description.
string
Existing sender profile to make the account-wide default, and the profile fromName renames. List IDs with GET /v1/sender-profiles. Mutually exclusive with fromEmail.
string
Account-wide default From address. Its domain must already be configured and verified.
string
Display name of the default From profile. Sent on its own it renames the current default profile without changing its address; with senderProfileId it renames that profile; with fromEmail it names the profile for that address. If the address already carries several display names, the request is rejected - pass senderProfileId to say which one to rename.
string
Existing reply profile to make the account-wide default, and the profile replyToName renames. Mutually exclusive with replyTo.
string
Account-wide default Reply-To address.
string
Display name of the default Reply-To profile. Sent on its own it renames the current default profile without changing its address; with replyProfileId it renames that profile; with replyTo it names the profile for that address.
boolean
Enable or disable inbound reply capture for this company.
string
Reply domain mode: sequenzy for the managed inbound domain or custom for a configured custom domain.
boolean
Enable or disable forwarding captured replies to the configured mailbox.
array | null
Which lists new contacts join when something creates a subscriber without explicit list targeting - forms, API writes, events, tag actions, imports, live ingestion from integrations without their own list targeting, and payment-provider backfills. PostHog history imports are an exception and create contacts without list memberships.The three states are different and none is a synonym for another:
  • null: every current and future list, including private lists
  • []: no list at all
  • populated array: exactly those lists
Unknown IDs, and IDs belonging to another company, are rejected rather than skipped - the whole request fails so you never end up defaulting to fewer lists than you asked for. Accepts at most 100 lists.Changing this affects only later writes. Nobody is moved or removed from a list retroactively, so a list already filled by an integration backfill still needs remove subscribers from a list.In the dashboard the same setting lives under Contacts -> Lists -> Default Lists.
Keep new contacts out of every list unless something targets them explicitly:

Responses

Only the new renameMatchingFooters: true option additionally requires emails:write, templates:write, campaigns:write, sequences:write, transactional:write and ab_tests:write. Personal keys also require workspace owner or admin access. Ordinary company updates keep their existing permissions.