Companies
Update Company
Update product info, brand context, reply tracking, default lists, and default sending identity
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
Keep new contacts out of every list unless something targets them explicitly:
Only the new
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.
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.object | null
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, orboldbuttonStyle:solid(filled, the default) oroutline(transparent fill with a brand-color border)colors: 6-digit hex values forprimary,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 optionallybuttonText(solid button label color; omit to auto-derive a readable color from the button fill)typography: numbers forbaseFontSize,leadFontSize,baseLineHeight,heading1Size,heading2Size,heading3Size,buttonFontSize,buttonFontWeight(400-800),headingFontWeight(300-900, applied to all heading levels; omit for the per-level defaults), andheadingLetterSpacing(px, -2 to 4, negative = tighter tracking); plusheadingFontFamilyas a font-stack string for serif-headline + sans-body pairings (omit so headings inherit the email font)layout: numbers forcontentWidth,containerPaddingX,containerPaddingY,blockSpacing,baseRadius,buttonRadius,sectionPadding,buttonPaddingX,buttonPaddingY,borderedBlockPadding
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
Responses
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.