Skip to main content
These endpoints help you understand the shape of a knowledge base: which pages churn, which are central, how pages connect, which pages are related but not linked, and how well search finds the right page.

Change velocity

Analyze git history for a period: which pages change most, which don’t change at all, which are suddenly busy, and which have a single author.
string
default:"30d"
Window as a number followed by d (days), w (weeks), or m (months, counted as 30 days).
integer
default:"20"
Maximum entries in hot_spots.
string
Only analyze pages under this prefix.
Only markdown files are counted. Returns 500 if git log fails, for example when versioning is off.
string
Period used.
integer
File changes (one per commit per file) in the period.
object[]
Most changed pages, descending.
object[]
Every page with no changes in the period, each with path and days_since_change.
object[]
Pages whose change rate over the last 7 days is more than three times their average for the period.
string[]
Pages changed in the period by only one author.

Graph analytics

Summarize the wiki link graph: size, connected components, orphans, and the highest PageRank pages.
integer
default:"20"
Number of pages in top_pages.
integer
Pages in the link graph.
integer
Wiki links.
integer
Disconnected subgraphs.
integer
Pages in the largest component.
string[]
Pages with no incoming links.
object[]
Highest PageRank pages, each with path, pagerank, in_degree, and out_degree.

Centrality

Return PageRank, betweenness, and degree for every page, highest PageRank first.
integer
Maximum pages. Omit to return all.
object[]

Communities

Group pages into topic clusters with Louvain community detection. Links are treated as undirected.
object[]
Clusters, each with a numeric id and its pages.

Shortest path

Return the shortest chain of wiki links from one page to another, following link direction.
string
required
Start page.
string
required
End page.
Returns 400 if either parameter is missing, and 404 if a page isn’t in the graph or no path exists.
string[]
Pages from from to to, inclusive.

Graph walk

Return one page’s immediate neighborhood: outgoing links, backlinks, and pages in the same folder or with a shared tag.
string
required
Page path.
boolean
default:"true"
Set to false to skip folder and tag siblings, which requires scanning every page.
Returns 404 if the page does not exist.
string
Page path.
Wiki link targets in the page, as written.
Pages that link here.
object[]
Each with path, relation (sibling_dir or sibling_tag), and shared_tag for tag siblings.
number
Incoming links divided by pages in the graph.
integer
Length of links_in.
integer
Length of links_out.
Find pages that are semantically close to a page but not yet linked to or from it. Use this to discover missing wiki links.
string
required
Page path.
integer
default:"10"
Maximum suggestions.
Returns 400 if path is missing, 404 if the page does not exist, and 503 if vector search is off. suggestions is null when nothing qualifies.
object[]

Similar pages

Rank pages by how similar their frontmatter is, using Gower distance over the fields in a similarity profile. Query by a page, or by an inline set of field values for a case that isn’t in the knowledge base yet.
.kiwi/config.toml
string
Page to find neighbors of. Required unless vector is set.
string
JSON object of field values. Combined with path, it overrides that page’s values.
string
Profile name. Optional when only one profile is configured.
integer
default:"5"
Number of neighbors.
Returns 400 when neither path nor vector is given, the profile is unknown, k isn’t a positive integer, or vector isn’t a JSON object.
string
Profile used.
string
Page queried, if any.
object
Field values compared against.
string[]
Profile fields.
integer
Pages considered.
boolean
true if the candidate set hit its cap.
object[]
Most similar first.

Embeddings

Return the stored text chunks and embedding vectors for a page.
string
required
Page path.
Returns 400 if path is missing, 404 if the page has no embeddings, and 503 if vector search is off.
string
Page path.
integer
Vector length.
object[]
Each with chunk_idx, text, and vector.

Search evaluation

Score full-text, semantic, and hybrid search against questions with known answers. Reports hit rate, MRR, precision, and nDCG at top_k. Same as kiwifs eval.
string
Golden set name. Loads <set>.topics and <set>.qrels from .kiwi/eval/. Use either set or queries.
object[]
Inline questions.
string | string[]
Path prefixes hidden from retrieval before ranking. Use this for leave-one-out evaluation.
integer
default:"5"
Cutoff for every metric.
Returns 400 when both or neither of set and queries are given or the set can’t be loaded, and 500 if every search failed.
integer
Cutoff used.
string[]
Prefixes excluded, if any.
object
Full-text search metrics. semantic and hybrid have the same shape; hybrid only has data when vector search is on.
object
Semantic search metrics.
object
Hybrid (reciprocal rank fusion) metrics.
object[]
Per question: question, relevant, and for each engine its rank (fts_rank, semantic_rank, hybrid_rank; 0 means not found), hits, and nDCG.
object[]
Questions that couldn’t be scored, each with question and reason.
integer
Failed searches.

MCP equivalents

kiwi_velocity, kiwi_graph_analytics, kiwi_graph_centrality, kiwi_graph_communities, kiwi_graph_path, kiwi_graph_walk, kiwi_suggestions, kiwi_similar, kiwi_embeddings, and kiwi_eval. The kiwi_eligible task-ranking tool is MCP-only; there is no REST endpoint for it.

Analytics and health

Page views, failed searches, and health checks.

Search

Full-text, semantic, and hybrid search.
Last modified on October 19, 2026