Skip to main content

API and Product Coverage

This document summarizes what the kagi CLI implements today, which auth path it uses, and which product settings are now manageable from the terminal.

Currently Implemented

Current V1 OpenAPI Endpoints

These endpoints come from Kagi’s current OpenAPI contract at https://kagi.com/api/docs/openapi and use KAGI_API_KEY with Bearer auth:
EndpointCommandStatus
Search API (POST /api/v1/search)kagi search✅ Implemented for query, limit, and filters.region/after/before
Extract APIkagi extract✅ Implemented
Current V1 Search optional fields not exposed by this CLI: workflow, API response format, lens_id, inline lens, timeout, page, search-result extract, safe_search, and explicit personalization rule objects. Subscriber web-product features cover some adjacent workflows, but they are not represented as V1 OpenAPI request fields.

Legacy V0 APIs

These commands use Kagi’s older public API surface with KAGI_API_TOKEN and Bot auth:
EndpointCommandStatus
Universal Summarizerkagi summarize✅ Implemented
FastGPTkagi fastgpt✅ Implemented
Web Enrichment (Teclis)kagi enrich web✅ Implemented
News Enrichment (TinyGem)kagi enrich news✅ Implemented

Subscriber Web Product Features

These features use the subscriber web product with KAGI_SESSION_TOKEN:
FeatureCommandStatus
Base searchkagi search✅ Implemented
Snap-prefixed searchkagi search --snap✅ Implemented
Lens searchkagi search --lens✅ Implemented
Filtered searchkagi search --region/--from-date/--to-date on V1 API or session path; --time/--order/... on session path✅ Implemented
Quick Answerkagi quick✅ Implemented
Web Summarizerkagi summarize --subscriber✅ Implemented
Search result summarize pipelinekagi search --follow✅ Implemented
Assistant prompt + thread managementkagi assistant✅ Implemented
Assistant terminal REPLkagi assistant repl✅ Implemented
Custom assistant managementkagi assistant custom✅ Implemented
Ask questions about a pagekagi ask-page✅ Implemented
Translate (text mode)kagi translate✅ Implemented
Lens settingskagi lens✅ Implemented
Custom bang settingskagi bang custom✅ Implemented
Redirect rule settingskagi redirect✅ Implemented
Local domain preferenceskagi site-pref✅ Implemented locally

Public Product Endpoints

These require no authentication:
EndpointCommandStatus
Kagi Newskagi news✅ Implemented
Small Web feedkagi smallweb✅ Implemented
News categorieskagi news --list-categories✅ Implemented
Chaos indexkagi news --chaos✅ Implemented

Command Coverage Summary

CommandDescriptionAuthStatus
searchBase Kagi searchAPI or Session
search --snapSnap-prefixed searchAPI or Session
search --lensLens-aware searchSession
search with filtersRegion, time, date, order, verbatim, personalization filtersSession
search --templateLightweight result templatesAPI or Session
search --followSearch plus subscriber summaries for top resultsSession
batchParallel search with shared search optionsAPI or Session
batch via stdinParallel search from stdin linesAPI or Session
authCredential managementNone
completionGenerate and install shell completionsNoneImplemented
--profileNamed auth profiles from .kagi.tomlNone
summarizePublic API summarizerAPI
summarize --subscriberWeb summarizerSession
summarize --filterSummarize stdin items as URLs or textAPI or Session
extractExtract page content as markdownAPI
watchSearch diff monitoringAPI or Session
notifyWebhook notifications for search/newsAPI, Session, or None
historyLocal history and statsNone
newsNews feed and metadataNone
quickQuick AnswerSession
assistantAI assistant prompt + thread managementSession
assistant replContinuous Assistant conversationSession
assistant customSaved assistant CRUDSession
ask-pagePage-focused Assistant questionSession
translateKagi Translate text modeSession
fastgptFast answersAPI
enrich webWeb enrichmentAPI
enrich newsNews enrichmentAPI
smallwebSmall Web feedNone
mcpStdio MCP server for search/summarize/quickAPI or Session
site-prefLocal domain preference list/set/removeNone
lensLens CRUD + enable/disableSession
bang customCustom bang CRUDSession
redirectRedirect CRUD + enable/disableSession

Output and Flag Coverage

Human-Readable Formats

CommandFormats
searchjson, toon, compact, pretty, markdown, csv
batchjson, toon, compact, pretty, markdown, csv
quickjson, toon, compact, pretty, markdown
assistantjson, toon, compact, pretty, markdown

Search Options

OptionCommandsStatus
--snapsearch, batch
--lenssearch, batch, quick
--regionsearch, batch
--timesearch, batch
--from-datesearch, batch
--to-datesearch, batch
--ordersearch, batch
--verbatimsearch, batch
--personalized / --no-personalizedsearch, batch, assistant
--templatesearch, batch
--local-cache / --cache-ttlsearch, summarize, quick, fastgpt

Assistant and Settings Options

OptionCommandsStatus
--assistantassistant
--thread-idassistant
--modelassistant, assistant custom
--lensassistant, assistant custom
--web-access / --no-web-accessassistant, assistant custom
thread list/get/delete/exportassistant
custom list/get/create/update/deleteassistant
replassistant
list/get/create/update/deletelens
enable / disablelens, redirect
custom list/get/create/update/deletebang

Live Verification

Live subscriber CRUD and round-trip tests were run against the real product flows for:
  • custom assistants
  • lenses
  • custom bangs
  • redirect rules
  • assistant thread round-trip
After those tests, the account-level settings pages were checked directly to confirm cleanup and no leftover test data.

Not Available

Intentionally Excluded

  • Account-synced domain preference writes are not exposed because Kagi does not document a stable public write API for Personalized Results.
  • Kagi Translate document, image, website, proofread, dictionary, and voice modes are not exposed.
  • Search-time safe-search overrides are not exposed. Safe-search remains an account setting.

Notes

  • Base-search fallback to the session-token path only exists on kagi search and kagi batch, and only when API-first mode was selected.
  • Search filters and lens search remain session-only because they depend on Kagi’s live web-product flow.
  • Settings management currently targets Kagi’s authenticated settings forms, not public API endpoints.