Visão geral

Update branding

POST/api/v1/update_branding
Features

Update visual branding: colors, fonts, logo, theme, the site's call-to-action URL, and the Site source URL the AI reads facts from. Available on all plans including FREE. Pass the values the user stated. To copy another site's look, get its values first: fetch_url with assets: true returns that page's logo, favicon, theme colour, the brand colours it declares in CSS and the fonts it asks for. Use what it reports, or ask the user; never invent hex values.

Price — $0.00001 per call (twice what serving it costs us), charged to the workspace balance, the same as over MCP.

Also reachable by name at POST /api/v1/tools/update_branding.

Input26
Authorizationheaderrequired
Your API key, sent as Authorization: Bearer dbk_YOUR_API_KEY.Sent from your browser straight to the API — never to Docsbook, never stored.
cta_urlstring · body
Call To Action URL — the ONE page this documentation should drive readers to (pricing, demo booking, signup). https:// only. Treat it as the project's conversion goal: reference it where a page naturally ends in a next step, and surface it as a header button via update_navigation header_links with an accent color so it reads as a button rather than a plain link. Pass an empty string to clear it.
average_product_price_centsinteger · body
What ONE conversion is worth, in CENTS (29900 = $299) — the average revenue from a reader who clicks through to cta_url. The analytics card multiplies it by those readers to report Revenue and Revenue per visitor; without it both stay switched off rather than being guessed. Save it whenever the owner states an average price, order value or plan price. Pass 0 to clear it and switch revenue reporting back off.
product_descriptionstring · body
The owner's OWN description of their product — what it is, who it is for, what it does. Briefing for the AGENT only: it is never rendered on the docs site and never shown to readers. Save it whenever the owner explains their product in their own words; it is the one fact about them no crawl can produce. Not a substitute for site_source_url — a price or limit mentioned here is still confirmed there before it reaches a page. Pass an empty string to clear it.
agent_instructionsstring · body
Standing instructions the owner wants the agent to follow on this project — house style, what never to touch, who to ask. Read on every admin turn, under (never over) the safety and tool rules. Save it when the owner states a durable preference about HOW work is done here, as opposed to a one-off request. Pass an empty string to clear it.
support_emailstring · body
Support email — the address the PUBLIC docs chat gives a reader whose question the documentation does not answer. The assistant says plainly that it does not know the answer, then points them here. Save it whenever the owner names a support/contact inbox. Leave it unset rather than guessing: with no address the chat still admits it does not know and still tells the reader to contact support, whereas a made-up support@ sends them somewhere nobody reads. Pass an empty string to clear it.
site_source_urlstring · body
Site source — the product's OWN website, the place to read real facts from (pricing, plan names, limits, contacts) instead of inventing them. http(s). Save it as soon as the owner names their website or you fetch one for this project, so later sessions can look facts up there. NOT the same as cta_url (that is a destination for readers; this is an origin for facts). Pass an empty string to clear it.
logo_urlstring · body
URL for site logo
icon_urlstring · body
URL for favicon
icon_url_darkstring · body
URL for an alternate icon shown only when the site is in dark theme (e.g. a dark/near-monochrome icon that would otherwise sink into a dark header). Optional — unset means icon_url renders unchanged in dark mode too.
custom_namestring · body
Display name for the docs site
accent_colorstring · body
Primary accent color as hex (#3b82f6)
accent_color_darkstring · body
Accent color for dark mode
muted_colorstring · body
Muted/secondary color as hex
muted_color_darkstring · body
base_foregroundstring · body
Main text color as hex
base_foreground_darkstring · body
base_backgroundstring · body
Background color as hex
base_background_darkstring · body
font_familystring · body
Google Font name for HEADINGS (e.g. 'Inter')
content_font_familystring · body
Google Font name for BODY/CONTENT text; falls back to font_family when unset
default_themestring · body
One of: light, dark, system.
theme_toggleboolean · body
Show theme toggle to visitors
background_stylestring · body
Visual background style: clean (no effect), muted (soft neutral wash), bold (shown as 'Premium': an accent haze across the top of the page — a full hero haze on a front page with the sidebar hidden — and an accent-framed Ask docs chat; the most upscale option), or gradient (soft radiant glow tied to the accent color — the old background_glow toggle). One of: clean, muted, bold, gradient.
background_glowboolean · body
Legacy on/off toggle — prefer background_style. true sets it to 'gradient'.
search_button_colorstring · body
Custom background color (hex) for the header search bar button. Pass an empty string to clear it back to the default muted background.
ask_ai_button_colorstring · body
Custom background color (hex) for the header Ask AI button. Pass an empty string to clear it back to the default muted background.
Output3
okboolean
Whether the tool itself succeeded. A tool that ran and refused — an exhausted balance, a plan restriction, a bad argument — answers 200 with ok: false: the call was made and billed, and that refusal is its answer.
resultobject
The tool's own JSON answer, already parsed — not a string to parse a second time.
Show child attributes28
idnumber
repoFullNamestring
'owner/repo', or a Docsbook-hosted placeholder when the site was created from scratch.
customNamestring
null
site_urlstring
The live docs URL — report this verbatim, never build one from repoFullName.
customDomainstring
null
planstring
free | pro | business
visibilitystring
public | private
not_discoverablestring
Present ONLY when visibility is private, i.e. when no crawler and no answer engine can open this site. Says what that rules out — keyword work, SERP meta, crawler-facing sitemap/llms.txt tuning, backlinks, ranking readings, being cited by ChatGPT or Perplexity — and what is worth the run instead. A private SOURCE REPOSITORY is NOT this and does not rule anything out: Docsbook serves indexed public sites from private repositories.
discoverability_blocked_bystring
Alongside not_discoverable: "private" (the owner's choice) or "plan_locked" (the plan lapsed and Docsbook made it private — tell the owner before doing any work).
aiEnabledboolean
hasApiKeyboolean
Whether a REST bearer exists — never the key itself.
hasCustomAiKeyboolean
hasCustomTranslationKeyboolean
hasPasswordboolean
hasSourceOfTruthGraphboolean
Whether the semantic index has ever been built.
ssoobject
{ configured: false } or { issuer, clientId, allowedDomain, configured: true }.
plan_capabilitiesobject
What this plan unlocks.
upgrade_hintstring
null
cta_urlstring
null
cta_hintstring
average_product_price_centsnumber
null
revenue_hintstring
site_source_urlstring
null
site_source_hintstring
subheaderFoldersobject[]
Top-level folder placements, each carrying the placement it resolves to — "subheader_tab" (a tab in the category strip, its pages kept out of the root sidebar tree), "sidebar_tree" (an ordinary folder in the sidebar), "subheader_tab_and_sidebar_tree" (both) or "hidden". Read placement rather than re-deriving it from inSubheader / showInSidebar / hiddenInSidebar.
navigation_placement_hintstring
Present when the project has folder placements: what each one resolves to and why a tab's hiddenInSidebar is not a defect to fix.
publish_mismatch_warningstring
Present only when the live site does not show what was published.
……
Plus every other project setting on this row — branding colors/fonts, navigation, UI toggles, SEO/GEO/AEO flags, access rules, domain, languages — minus secrets.
duration_msinteger
Server-side wall time for the call.
Responses
200The tool ran. Read ok to see whether it succeeded.
401Missing or invalid API key.
Example input
curl -X POST 'https://docsbook.io/api/v1/update_branding' \
  -H 'Authorization: Bearer dbk_YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"default_theme":"light","background_style":"clean"}'
Example output
{
  "ok": true,
  "result": {
    "id": 0,
    "repoFullName": "<repoFullName>",
    "customName": "<customName>",
    "site_url": "<site_url>",
    "customDomain": "<customDomain>",
    "plan": "<plan>",
    "visibility": "<visibility>",
    "not_discoverable": "<not_discoverable>",
    "discoverability_blocked_by": "<discoverability_blocked_by>",
    "aiEnabled": true,
    "hasApiKey": true,
    "hasCustomAiKey": true,
    "hasCustomTranslationKey": true,
    "hasPassword": true,
    "hasSourceOfTruthGraph": true,
    "sso": {},
    "plan_capabilities": {},
    "upgrade_hint": "<upgrade_hint>",
    "cta_url": "<cta_url>",
    "cta_hint": "<cta_hint>",
    "average_product_price_cents": "<average_product_price_cents>",
    "revenue_hint": "<revenue_hint>",
    "site_source_url": "<site_source_url>",
    "site_source_hint": "<site_source_hint>",
    "subheaderFolders": [],
    "navigation_placement_hint": "<navigation_placement_hint>",
    "publish_mismatch_warning": "<publish_mismatch_warning>",
    "…": "<…>"
  },
  "duration_ms": 0
}

Atualizado

Esta página foi útil?