Profile Branding

Set the logo, display name, and primary color that render on the UniPost-hosted Connect page. This is how you make the OAuth onboarding flow look like your product instead of UniPost.

Where the fields appear

The hosted Connect page at app.unipost.dev/connect/{platform} reads these three values at render time — there’s no cache layer, so a PATCH is live on the very next page load. See the white-label guide for the full setup flow that combines branding with platform credentials and Connect sessions.

Plan packaging matters here: Basic and up can brand the hosted Connect page; only Growth and Team can hide the Powered by UniPost footer.

FieldWhere it appears on the Connect page
branding_logo_urlTop-left mark
branding_display_namePage title + tab name
branding_primary_colorPrimary button and accent color
branding_hide_powered_byHides the footer attribution (Growth / Team only)

Update branding

PATCH is partial — send only the fields you want to change. Each field accepts an empty string to unset (falls back to UniPost defaults).

SDK support for profile branding management is coming soon. For now, configure this endpoint from the dashboard or call the REST route directly.

Field validation

FieldRuleReason
branding_logo_urlHTTPS only; common image MIME types; ≤ 2 KB URL lengthThe Connect page runs on HTTPS; mixed content would be blocked by the browser
branding_display_name≤ 60 charactersKeeps the browser title + meta description readable across devices
branding_primary_color6-digit hex e.g. #10b981Matches the color-mix() and other CSS variables in the Connect page stylesheet

A bad value returns 422 VALIDATION_ERROR with a human-readable message naming the offending field. No partial updates happen on validation failure — the entire PATCH is atomic.

Read current branding

Branding fields come back on the standard profile read endpoint alongside id, name, workspace_id, and timestamps.

Null values mean the field has never been set for this profile and the hosted Connect page will use UniPost’s default appearance for that slot.

Multiple profiles per workspace

Branding is scoped per profile, not per workspace. If your workspace has multiple profiles (e.g., separate brands under one parent company), each profile can carry its own logo / name / color. Connect sessions created against a given profile use that profile’s branding.

Errors

StatusCodeWhen
401UNAUTHORIZED / unauthorizedMissing or invalid API key
404NOT_FOUND / not_foundProfile does not belong to the caller’s workspace
422VALIDATION_ERROR / validation_errorA field failed validation (URL scheme, length, or hex format)

Public API errors also include a lowercase error.normalized_code alias and a top-level request_id for tracing.