AccountCustomer portal

Update the customer portal draft

PATCH
/v1/account/portal/draft

The customer-portal builder’s own draft (design §4): every field PATCH /account/portal accepts, plus the builder’s own appearance, content and access fields. Written only here, never to your live portal - POST /account/portal/publish copies it across when you are ready. Send only what changes; null clears a field, putting it back on its default. Live and sandbox keep their own draft, same as the live portal.

Authorization

apiKey
headerAuthorizationBearer <token>

An API key from the Developers page. rhq_test_ keys reach the sandbox, rhq_live_ keys the live side.

Request Body

application/json
  1. body
enabled?|

Turning this off answers the same 404 as an address no reseller holds

brandName?|null
logoUrl?|null
logoDarkUrl?|null
accentColor?|null
supportEmail?|null
emailFromName?|null
termsUrl?|null
privacyUrl?|null
selfSignup?boolean|null
allow?array<>|null
products?array<>|null
theme?|null
fontPair?|null
headline?|null
intro?|null
banner?|null
productOrder?array<>|null
termsMode?|null
termsText?|null
privacyMode?|null
privacyText?|null
faq?array<>|null
pricesBeforeSignIn?boolean|null
requireEmailVerification?boolean|null

Response Body

The portal builder’s own draft: what Publish will copy onto your live portal. Edited by PATCH /account/portal/draft, and only ever reaches customers once you publish it

application/json
  1. response

The portal builder’s own draft: what Publish will copy onto your live portal. Edited by PATCH /account/portal/draft, and only ever reaches customers once you publish it

enabled*boolean

Whether the portal and storefront answer at all. On until turned off

brandName*|

Shown to customers instead of your account name. Null, your account name

logoUrl*|

https only

logoDarkUrl*|

The logo on a dark background, https only. Null, logoUrl on both

accentColor*|

#rrggbb, rendered as a CSS custom property

supportEmail*|

Where customers are told to write. Null, your billing email

emailFromName*|

The from-name on mail to your customers. Null, your brand name

termsUrl*string|null
privacyUrl*string|null
selfSignup*boolean

Whether a storefront visitor may open an account unasked. Off until turned on

allow*array<>

What your customers may do in the portal. Empty means read-only

products*array<>

The product lines your customers may browse. Empty means none

theme*string

auto forces nothing and follows the visitor’s own device, which is what happens with no field at all. light/dark force the portal, next split issue - this field is persisted and shown in the builder’s own preview now

Value in"light""dark""auto"
fontPair*string

geist is today’s faces, unchanged. Default geist

Value in"geist""classic""mono"
headline*|

The storefront home page’s own heading. Null, the builder’s computed default

intro*|

One or two sentences under the headline. Null, the builder’s computed default

banner*|

A short announcement above the products. Null means none, same as today

productOrder*array<>

The order your product lines are drawn in, filtered to whichever are in products. Default is domains, numbers, licences, filtered the same way - today’s order

termsMode*string

Whether Terms is a link to your own page or a page written here. Default link

Value in"link""write"
termsText*|

Your own words, shown when termsMode is write. Null until you write some

privacyMode*string

Whether Privacy is a link to your own page or a page written here. Default link

Value in"link""write"
privacyText*|

Your own words, shown when privacyMode is write. Null until you write some

faq*array<>

Questions and answers at the foot of the storefront home page. Empty means none

pricesBeforeSignIn*boolean

Whether a visitor sees prices before signing in. Default true, today’s real behaviour with no field at all. Not yet wired into the real pricing gate

requireEmailVerification*boolean

Whether a customer must confirm their email before they can sign in. Default true, today’s real behaviour with no field at all. Not yet wired into the real sign-in gate

curl -X PATCH "https://example.com/v1/account/portal/draft" \  -H "Content-Type: application/json" \  -d '{}'
{  "enabled": true,  "brandName": "Northwind",  "logoUrl": "https://northwind.example/logo.svg",  "logoDarkUrl": "https://northwind.example/logo-white.svg",  "accentColor": "#1d4ed8",  "supportEmail": "[email protected]",  "emailFromName": "Northwind Support",  "termsUrl": "https://northwind.example/terms",  "privacyUrl": "https://northwind.example/privacy",  "selfSignup": true,  "allow": [    "domains.nameservers"  ],  "products": [    "domains"  ],  "theme": "light",  "fontPair": "geist",  "headline": "Find your domain",  "intro": "Search a name across every ending we sell.",  "banner": "string",  "productOrder": [    "domains"  ],  "termsMode": "link",  "termsText": "string",  "privacyMode": "link",  "privacyText": "string",  "faq": [    {      "question": "string",      "answer": "string"    }  ],  "pricesBeforeSignIn": true,  "requireEmailVerification": true}