인증
Bearer 토큰으로 API 키를 전송하세요. 키는 반드시 reseller.view 권한을 가지고 있어야 하며, 권한이 없는 키는 404가 아닌 403으로 거부됩니다.
조직 ID가 들어가는 위치
이 엔드포인트는 org_id을(를) 쿼리 매개변수로 사용합니다. 생략하면 테넌트 하위 트리 전체가 호출 대상이 되며, 값을 전달하면 특정 조직으로 호출 범위를 좁힐 수 있습니다.
조직 ID는 대시보드의 API 키 화면에서 키 바로 옆에 있습니다. 이는 실행하는 모든 호출에서 동일한 ID입니다.
무료 체험하기
대괄호 안에 있는 모든 내용을 사용자 지정 값으로 바꾸고, 키 플레이스홀더는 대시보드의 키로 바꾸세요.
curl -X GET https://api.zinndigital.com/v1/reseller/brand \
-H "Authorization: Bearer zdk_live_…"로그인하셨나요? 대시보드의 API 콘솔이 실제 조직 ID와 본인의 키를 자동으로 채우고 라이브 API를 대상으로 요청을 실행하므로 실제 응답을 확인할 수 있습니다. API 콘솔에서 이 엔드포인트를 여세요
상세 정보
Your brand as your clients see it — the name on their panel, the logo, the accent colour and the help links. Requires `reseller.view`. ⛔ A brand you have not set up yet is a **200 with `configured: false`**, never a 404: the screen renders an empty form either way, and a 404 would make the app decide what "no brand" means. `entitled` reports whether white-label is on your plan at all.
매개변수
| 이름 | 유형 | 필수 | 설명 |
|---|---|---|---|
org_id (query) | Uuid | 아니요 | The organization this call acts on. Optional for a caller with exactly one direct membership; **required** for anyone with more than one — which is every reseller and every agen… |
응답
| 이름 | 유형 | 필수 | 설명 |
|---|---|---|---|
configured | boolean | 예 | Whether a brand row exists yet. False renders an empty form, not a 404. |
entitled | boolean | 예 | Whether white-label is on this org's plan at all. |
name | string | 예 | — |
logo_url | string | 예 | — |
primary_colour | string | 예 | — |
support_url | string | 예 | — |
status_url | string | 예 | — |
panel_hostname | string | 예 | Read-only here — provisioned on `/v1/reseller/brand/panel-hostname`, because a hostname you merely typed is a link to nowhere on every client's screen. |
panel_hostname_active | boolean | 예 | Whether the edge is actually **serving** it. ⛔ Measured, not the edge's status word: a custom hostname can be `active` with a valid certificate and still answer 522, so the engi… |
panel_hostname_status | string | 예 | The edge's own status word, for display. Never branch on it. |
panel_hostname_records | BrandDnsRecord[] | 예 | — |
sending_domain | string | 예 | Read-only here — provisioned on `/v1/reseller/brand/sending-domain`, because an unverified domain does not deliver. |
sending_domain_verified | boolean | 예 | Read-only. The mail provider's answer, not a setting. |
sending_domain_status | string | 예 | The provider's own status word, for display. Never branch on it. |
sending_domain_records | BrandDnsRecord[] | 예 | — |
palette | object | 아니요 | Named design-system colour tokens, `{token: "#rrggbb"}`, over the closed set in `palette_tokens`. ⛔ Hex only, and that is a security boundary rather than a formatting rule: a CS… |
font_source | string<catalogue, google, > | 아니요 | `catalogue` for one of `font_catalogue`, `google` for a family we self-host. |
font_key | string | 아니요 | The catalogue key when `font_source` is `catalogue`. |
font_google_family | string | 아니요 | A Google family NAME, never a URL. ⛔ We fetch the family once, server-side, and serve the woff2 files from our own origin — so your clients never make a request to Google and th… |
nav_position | string<side, top, > | 아니요 | — |
density | string<comfortable, compact, > | 아니요 | — |
corner_radius | string<soft, square, > | 아니요 | — |
colour_scheme | string<system, light, dark, > | 아니요 | The scheme a client's **first** visit lands on. ⛔ A default, never a lock — the panel's own theme toggle still works, because removing a visitor's dark mode is an accessibility… |
favicon_sha256 | string | 아니요 | A favicon distinct from the panel logo. Upload it with `POST /v1/branding/logo` and `purpose=favicon`. Empty falls back to the logo — a 32px render of a wordmark beats somebody… |
favicon_url | string | 아니요 | — |
email_logo_sha256 | string | 아니요 | The mark used in transactional mail (`purpose=email`). Separate because the constraints differ: mail clients render on a light background whatever the reader's theme, block SVG,… |
email_logo_url | string | 아니요 | — |
dns_nameservers | string[] | 아니요 | Your **own** authoritative nameservers, so a client typing them into a registrar never reads ours. Empty means ours. ⛔ At least two, or none — registrars refuse a single nameser… |
font_catalogue | object[] | 아니요 | The typefaces you may pick, served **with** the value so a new one appears in your picker on deploy rather than when somebody remembers to update the app too. |
layout_options | object | 아니요 | The allowed values for each layout choice, keyed by field name. |
palette_tokens | string[] | 아니요 | The colour tokens `palette` may name. |
accent_contrast | BrandAccentContrast | 아니요 | How readable your accent colour is, and the ink we will paint on it. ⚠️ **Reported, never enforced.** A legitimate corporate colour can be mid-grey, and refusing to save it woul… |
이 엔드포인트가 반환할 수 있는 오류
401 · 403 · 404 · 429