All data served by the Kagi News API — and consumed by the open-source front-end — is typed in TypeScript inDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/kagisearch/kite-public/llms.txt
Use this file to discover all available pages before exploring further.
src/lib/types.ts. This page documents every type and every field so you can build confidently on top of the Kagi News data, whether you are customizing the front-end or building an entirely new client.
Optional fields that are not applicable for a given story are omitted (returned as null or absent) in API responses. You should always treat optional fields as potentially null or undefined.
Story
TheStory type is the central data structure. It represents one cluster of articles about a single real-world event, enriched with AI-generated analysis.
Unique identifier for the story, assigned by the server. May be absent on legacy records.
Sequential cluster number within its category for the current batch. Used for ordering and internal references.
The number of distinct publisher domains that contributed articles to this cluster. A higher value indicates broader multi-source coverage.
The total number of article titles considered when forming this cluster. Reflects how widely the event was reported.
ISO 639 language code of the original source articles (e.g.,
"en", "fr", "de").The language code actually used for the text content of this story in the current response. Set when the user has requested a specific language.
The name of the category this story belongs to (e.g.,
"Technology", "World News").AI-generated headline for the story.
One-paragraph plain-language summary of the event.
A surprising or lesser-known fact related to the story topic.
Bullet-point list of the most important facts about the event.
A representative quotation from a key figure or source.
Name of the person being quoted.
Role or title of the quoted person (e.g., “Prime Minister of Canada”).
URL to the original source where the quote appeared.
Domain of the source where the quote appeared (e.g.,
"reuters.com").Primary geographic location of the event (e.g.,
"Geneva, Switzerland").Array of distinct viewpoints from different sources. Each
Perspective has a text summary and a sources array of {name, url} pairs. See Perspective.A single emoji that visually represents the story topic.
Broader geopolitical framing for the event.
Relevant historical context that helps explain the current event.
How countries, international bodies, or notable figures have responded.
Human cost, displacement, or humanitarian consequences, if applicable.
Market, trade, or macroeconomic effects of the event.
Chronological sequence of key developments. Each entry is a
TimelineEvent. See TimelineEvent.Expected next steps, likely developments, or open questions.
Notable individuals or organizations involved in the event.
Technical specifics relevant to technology or science stories.
Narrative business analysis of the event.
Bullet-point business analysis.
Practical steps a reader might take in response to the story.
Why the event matters to the scientific community.
Travel-related warnings or advisories for travel stories.
Key attractions or features for destination-focused stories.
Food culture context for culinary stories.
Key stats for sports or performance stories.
Current standings summary for sports categories.
Practical tips for do-it-yourself stories.
Design thinking or principles relevant to the story.
How the event affects user experience in products or services.
Game mechanics described for gaming-related stories.
Broad industry effects of the event.
Specific effects on the gaming industry.
Detailed technical specs for product or engineering stories.
Question-and-answer pairs for deeper understanding. Each entry has
question and answer string fields. See QnA.Primary illustration image. Contains
url (string), caption (string), and optional credit (string).Secondary illustration image. Same shape as
primary_image.Metadata about each publisher domain that contributed to this story. See Domain.
Article
AnArticle is a single source article included within a story cluster.
The original headline of the article as published by the source.
Full URL to the article on the publisher’s website.
The publisher domain (e.g.,
"bbc.com").Publication date of the article (ISO 8601 string).
URL of the article’s lead image, if available.
Caption for the article image, if available.
Domain
TheDomain type carries publisher metadata for a domain that appears in a story.
The domain name (e.g.,
"reuters.com").URL to the domain’s favicon, used for source attribution icons in the UI.
true if the publisher is known to require a subscription to read full articles.Category
ACategory is a named grouping of stories, backed by one or more RSS feeds.
The internal name of the category (e.g.,
"Technology").URL-safe slug identifier for the category (e.g.,
"technology"). Used in API paths and routing.Localized display name shown in the UI for the user’s selected language.
List of RSS/Atom feed URLs backing this category. Present for community categories; may be absent for core categories.
BatchInfo
BatchInfo describes a single daily batch — the immutable snapshot of all news for one day.
UUID that uniquely identifies this batch.
ISO 8601 timestamp of when the batch was published (always 12:00 PM UTC for live batches).
The language code for which this batch record applies.
The number of categories included in this batch.
The total number of story clusters across all categories.
The total number of source articles across all clusters.
The Chaos Index score for this batch: a value from 0 to 100 reflecting global news intensity.
A short human-readable description explaining the Chaos Index score for this day.
ISO 8601 timestamp of the most recent Chaos Index calculation.
Perspective
APerspective represents one distinct viewpoint on a story, drawn from a particular source or group of sources.
A summary of the perspective in plain language.
Array of source attributions. Each entry contains:
name(string) — display name of the source outleturl(string) — URL to the specific article expressing this perspective
TimelineEvent
ATimelineEvent is one entry in a story’s chronological timeline.
Human-readable date label (e.g.,
"March 14, 2025").ISO 8601 date string for programmatic use (e.g.,
"2025-03-14").Description of what happened at this point in the timeline.
QnA
AQnA is a single question-and-answer pair from a story’s suggested_qna section.
A suggested question a reader might have about the story.
The AI-generated answer to the question.
OnThisDayEvent
OnThisDayEvent represents a historical event, notable person, or anniversary surfaced in the “On This Day” section of a batch.
The year in which the historical event occurred (as a string, e.g.,
"1969").Description of the historical event or person.
Numeric year used for sorting entries chronologically.
Classifies the entry:
event for historical occurrences, person for an individual’s birthday or anniversary, people for a group.URL of an image associated with the event or person.
Minimal Story Example
The following JSON shows a trimmed but structurally complete story object. In real API responses, optionalnull fields are typically omitted entirely.