Update ai settings
POST
/api/v1/update_ai_settingsFeatures
Configure the AI chatbot. Returns upgrade info for FREE workspaces.
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_ai_settings.
Input4
Your API key, sent as
Authorization: Bearer dbk_YOUR_API_KEY.Sent from your browser straight to the API — never to Docsbook, never stored.Enable or disable the AI chatbot
One of:
openrouter, openai, gemini, anthropic, vercel-ai-gateway.API key for the AI provider
Suggested questions in the AI chat
Output3
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.The tool's own JSON answer, already parsed — not a string to parse a second time.
Show child attributes28
'owner/repo', or a Docsbook-hosted placeholder when the site was created from scratch.
null
The live docs URL — report this verbatim, never build one from repoFullName.
null
free | pro | business
public | private
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.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).Whether a REST bearer exists — never the key itself.
Whether the semantic index has ever been built.
{ configured: false } or { issuer, clientId, allowedDomain, configured: true }.
What this plan unlocks.
null
null
null
null
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.Present when the project has folder placements: what each one resolves to and why a tab's hiddenInSidebar is not a defect to fix.
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.
Server-side wall time for the call.
Limitations
- REQUIRES PRO plan.
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_ai_settings' \
-H 'Authorization: Bearer dbk_YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"ai_provider":"openrouter"}'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
}