AccountCustomer portal

Upload a customer portal logo

POST
/v1/account/portal/logo

Stores an uploaded PNG, JPEG or WebP logo (at most 256 KB) and writes its own address onto the customer-portal builder’s draft logoUrl field (logoDarkUrl with variant: "dark"), seeding the rest of the draft from your live portal the first time it is ever written, same as PATCH /account/portal/draft. Paste a URL instead through that route for an SVG logo - there is no sanitizer here for one. POST /account/portal/publish copies the result onto your live portal, same as any other draft field.

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
dataUrl*string

A data: URL, such as FileReader.readAsDataURL() produces in a browser. The declared mime type in it is ignored - the real type is read from the file’s own bytes

variant?string

dark for the logo drawn on a dark background

Default"light"
Value in"light""dark"

Response Body

Success

application/json
  1. response

Success

portalDraft*

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

curl -X POST "https://example.com/v1/account/portal/logo" \  -H "Content-Type: application/json" \  -d '{    "dataUrl": "string"  }'
{  "portalDraft": {    "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  }}