{"service": "prism", "version": "1.0", "envelope": ["ok", "feature", "subject", "data", "window", "meta", "error"], "transports": {"rest": "/v1/<feature>", "mcp": "/mcp", "openapi": "/v1/openapi.json"}, "features": [{"feature": "analysis.history", "tool": "historical_analysis", "group": "analysis", "summary": "One explicit-window title-matched research count series and saved history_id.", "endpoint": "/v1/analysis.history", "credits": 1, "parameters": [{"name": "subject_phrases", "type": "array", "nullable": false, "schema": {"items": {"type": "string"}, "type": "array"}, "required": true, "default": null}, {"name": "outcome_phrases", "type": "array", "nullable": true, "schema": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}]}, "required": false, "default": null}, {"name": "first_year", "type": "integer", "nullable": false, "schema": {"type": "integer"}, "required": false, "default": 2017}, {"name": "last_year", "type": "integer", "nullable": false, "schema": {"type": "integer"}, "required": false, "default": 2025}, {"name": "query_seconds", "type": "integer", "nullable": false, "schema": {"type": "integer"}, "required": false, "default": 20}]}, {"feature": "analysis.scenarios", "tool": "trend_scenarios", "group": "analysis", "summary": "Conditional count extrapolation with chronological no-change/drift backtests.", "endpoint": "/v1/analysis.scenarios", "credits": 1, "parameters": [{"name": "history_id", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}, {"name": "observations", "type": "array", "nullable": true, "schema": {"anyOf": [{"items": {"additionalProperties": true, "type": "object"}, "type": "array"}, {"type": "null"}]}, "required": false, "default": null}, {"name": "horizon", "type": "integer", "nullable": false, "schema": {"type": "integer"}, "required": false, "default": 3}]}, {"feature": "analysis.timeline", "tool": "deep_timeline", "group": "analysis", "summary": "Ultra research: Prism reads a subject month by month and writes the insight.", "endpoint": "/v1/analysis.timeline", "credits": 30, "parameters": [{"name": "term", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": true, "default": null}, {"name": "scope", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}, {"name": "months", "type": "integer", "nullable": false, "schema": {"type": "integer"}, "required": false, "default": 12}, {"name": "until", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}, {"name": "per_month", "type": "integer", "nullable": false, "schema": {"type": "integer"}, "required": false, "default": 6}]}, {"feature": "compose.article", "tool": "write_article", "group": "compose", "summary": "Write a complete researched article from a title, or from a topic.", "endpoint": "/v1/compose.article", "credits": 50, "parameters": [{"name": "title", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}, {"name": "topic", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}, {"name": "angle", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}, {"name": "max_sections", "type": "integer", "nullable": false, "schema": {"type": "integer"}, "required": false, "default": 5}, {"name": "sections", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}, {"name": "background", "type": "boolean", "nullable": false, "schema": {"type": "boolean"}, "required": false, "default": true}, {"name": "requester", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}, {"name": "salt", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}, {"name": "emphasise", "type": "boolean", "nullable": false, "schema": {"type": "boolean"}, "required": false, "default": true}, {"name": "model", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}]}, {"feature": "compose.chart", "tool": "make_chart", "group": "compose", "summary": "Render data as a chart image hosted on fliarbi.com, ready to embed.", "endpoint": "/v1/compose.chart", "credits": 1, "parameters": [{"name": "kind", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": "bars"}, {"name": "title", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}, {"name": "points", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}, {"name": "subtitle", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}, {"name": "source", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}, {"name": "highlight", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}, {"name": "slug", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}, {"name": "topic", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}, {"name": "card", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}]}, {"feature": "compose.context", "tool": "research_context", "group": "compose", "summary": "The raw material a writer would need on one subject, from both corpora.", "endpoint": "/v1/compose.context", "credits": 8, "parameters": [{"name": "topic", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": true, "default": null}, {"name": "claim", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}, {"name": "limit", "type": "integer", "nullable": false, "schema": {"type": "integer"}, "required": false, "default": 14}]}, {"feature": "compose.continue", "tool": "continue_paragraph", "group": "compose", "summary": "Continue a draft with the next paragraph, plus three alternatives.", "endpoint": "/v1/compose.continue", "credits": 8, "parameters": [{"name": "draft", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": true, "default": null}, {"name": "topic", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}, {"name": "limit", "type": "integer", "nullable": false, "schema": {"type": "integer"}, "required": false, "default": 14}, {"name": "with_news", "type": "boolean", "nullable": false, "schema": {"type": "boolean"}, "required": false, "default": true}]}, {"feature": "compose.emphasise", "tool": "emphasise_text", "group": "compose", "summary": "Add bold and italic to prose that is already written and checked.", "endpoint": "/v1/compose.emphasise", "credits": 8, "parameters": [{"name": "text", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": true, "default": null}]}, {"feature": "compose.quick_story", "tool": "quick_story", "group": "compose", "summary": "A short story-article from the few most relevant papers, in minutes.", "endpoint": "/v1/compose.quick_story", "credits": 20, "parameters": [{"name": "subject", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": true, "default": null}, {"name": "slug", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}, {"name": "k", "type": "integer", "nullable": false, "schema": {"type": "integer"}, "required": false, "default": 12}, {"name": "background", "type": "boolean", "nullable": false, "schema": {"type": "boolean"}, "required": false, "default": false}]}, {"feature": "compose.report_check", "tool": "check_report", "group": "compose", "summary": "Render an HTML report in a real browser and list what a reader would see broken, before you hand it over.", "endpoint": "/v1/compose.report_check", "credits": 1, "parameters": [{"name": "html", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": true, "default": null}]}, {"feature": "compose.section", "tool": "write_section", "group": "compose", "summary": "Write one whole section, ready to insert — the \"one click to add\" call.", "endpoint": "/v1/compose.section", "credits": 12, "parameters": [{"name": "topic", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": true, "default": null}, {"name": "section", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": true, "default": null}, {"name": "angle", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}, {"name": "background", "type": "boolean", "nullable": false, "schema": {"type": "boolean"}, "required": false, "default": false}, {"name": "packet_id", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}]}, {"feature": "compose.sections", "tool": "suggest_sections", "group": "compose", "summary": "Which sections this topic can support, ranked by evidence strength.", "endpoint": "/v1/compose.sections", "credits": 8, "parameters": [{"name": "topic", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": true, "default": null}, {"name": "packet_id", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}]}, {"feature": "compose.titles", "tool": "suggest_titles", "group": "compose", "summary": "Titles the evidence can actually deliver on.", "endpoint": "/v1/compose.titles", "credits": 8, "parameters": [{"name": "topic", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": true, "default": null}, {"name": "packet_id", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}]}, {"feature": "drive.plan", "tool": "drive_plan", "group": "drive", "summary": "See how Prism would approach a brief, without running it.", "endpoint": "/v1/drive.plan", "credits": 5, "parameters": [{"name": "brief", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": true, "default": null}, {"name": "model", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}]}, {"feature": "news.activities", "tool": "news_activities", "group": "news", "summary": "Areas of activity: what an entity DOES, not only what its coverage is tagged with.", "endpoint": "/v1/news.activities", "credits": 2, "parameters": [{"name": "term", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": true, "default": null}, {"name": "domain", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}, {"name": "since", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}, {"name": "until", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}, {"name": "limit", "type": "integer", "nullable": false, "schema": {"type": "integer"}, "required": false, "default": 12}]}, {"feature": "news.article", "tool": "get_article", "group": "news", "summary": "One article by its Prism id: the record, plus everything scored on it.", "endpoint": "/v1/news.article", "credits": 1, "parameters": [{"name": "target_id", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": true, "default": null}]}, {"feature": "news.compare", "tool": "compare_terms", "group": "news", "summary": "Two to four terms, the same measurements, one window — Prism's \"X vs Y\".", "endpoint": "/v1/news.compare", "credits": 8, "parameters": [{"name": "terms", "type": "array", "nullable": false, "schema": {"items": {"type": "string"}, "type": "array"}, "required": true, "default": null}, {"name": "granularity", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": "monthly"}, {"name": "since", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}, {"name": "until", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}]}, {"feature": "news.critical", "tool": "critical_news", "group": "news", "summary": "The coverage that matters, not the coverage that is newest.", "endpoint": "/v1/news.critical", "credits": 5, "parameters": [{"name": "term", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": true, "default": null}, {"name": "limit", "type": "integer", "nullable": false, "schema": {"type": "integer"}, "required": false, "default": 10}, {"name": "days", "type": "integer", "nullable": false, "schema": {"type": "integer"}, "required": false, "default": 120}, {"name": "match", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": "auto"}]}, {"feature": "news.drill", "tool": "news_drill", "group": "news", "summary": "Drill into one section of an entity, in the same scope: e.g. term='reliance industries',", "endpoint": "/v1/news.drill", "credits": 3, "parameters": [{"name": "term", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": true, "default": null}, {"name": "scope", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": true, "default": null}, {"name": "since", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}, {"name": "until", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}, {"name": "limit", "type": "integer", "nullable": false, "schema": {"type": "integer"}, "required": false, "default": 10}]}, {"feature": "news.entities", "tool": "news_entities", "group": "news", "summary": "The organisations, people and places that appear alongside a term.", "endpoint": "/v1/news.entities", "credits": 2, "parameters": [{"name": "term", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": true, "default": null}, {"name": "kind", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": "all"}, {"name": "since", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}, {"name": "until", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}, {"name": "limit", "type": "integer", "nullable": false, "schema": {"type": "integer"}, "required": false, "default": 10}]}, {"feature": "news.factors", "tool": "news_factors", "group": "news", "summary": "Causes and impacts of a topic, extracted from what the coverage says.", "endpoint": "/v1/news.factors", "credits": 8, "parameters": [{"name": "topic", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": true, "default": null}]}, {"feature": "news.geography", "tool": "news_geography", "group": "news", "summary": "Where coverage of a term is placed — country, state or city.", "endpoint": "/v1/news.geography", "credits": 2, "parameters": [{"name": "term", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": true, "default": null}, {"name": "level", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": "country"}, {"name": "since", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}, {"name": "until", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}, {"name": "limit", "type": "integer", "nullable": false, "schema": {"type": "integer"}, "required": false, "default": 15}]}, {"feature": "news.overview", "tool": "prism_overview", "group": "news", "summary": "Everything Prism renders for one term, in one call.", "endpoint": "/v1/news.overview", "credits": 20, "parameters": [{"name": "term", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": true, "default": null}, {"name": "since", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}, {"name": "until", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}, {"name": "granularity", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": "monthly"}]}, {"feature": "news.recent", "tool": "recent_news", "group": "news", "summary": "The latest coverage of a term, as readable articles.", "endpoint": "/v1/news.recent", "credits": 12, "parameters": [{"name": "term", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": true, "default": null}, {"name": "limit", "type": "integer", "nullable": false, "schema": {"type": "integer"}, "required": false, "default": 10}, {"name": "since", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}, {"name": "until", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}, {"name": "country", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}, {"name": "min_priority", "type": "integer", "nullable": false, "schema": {"type": "integer"}, "required": false, "default": 0}, {"name": "match", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": "auto"}]}, {"feature": "news.resolve", "tool": "resolve_term", "group": "news", "summary": "What is this term, and does Prism hold enough to report on it?", "endpoint": "/v1/news.resolve", "credits": 1, "parameters": [{"name": "term", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": true, "default": null}]}, {"feature": "news.sentiment", "tool": "news_sentiment", "group": "news", "summary": "Tone over time, measured against the corpus baseline.", "endpoint": "/v1/news.sentiment", "credits": 2, "parameters": [{"name": "term", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": true, "default": null}, {"name": "granularity", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": "monthly"}, {"name": "since", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}, {"name": "until", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}]}, {"feature": "news.sources", "tool": "news_sources", "group": "news", "summary": "Who publishes this, how concentrated that is, and which organisations it names.", "endpoint": "/v1/news.sources", "credits": 2, "parameters": [{"name": "term", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": true, "default": null}, {"name": "since", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}, {"name": "until", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}, {"name": "limit", "type": "integer", "nullable": false, "schema": {"type": "integer"}, "required": false, "default": 15}, {"name": "sample", "type": "integer", "nullable": false, "schema": {"type": "integer"}, "required": false, "default": 300}]}, {"feature": "news.themes", "tool": "news_themes", "group": "news", "summary": "What a term is ABOUT, across the label systems Prism scores.", "endpoint": "/v1/news.themes", "credits": 12, "parameters": [{"name": "term", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": true, "default": null}, {"name": "since", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}, {"name": "until", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}, {"name": "limit", "type": "integer", "nullable": false, "schema": {"type": "integer"}, "required": false, "default": 12}]}, {"feature": "news.trending", "tool": "trending_topics", "group": "news", "summary": "What is rising right now across the whole corpus.", "endpoint": "/v1/news.trending", "credits": 1, "parameters": [{"name": "days", "type": "integer", "nullable": false, "schema": {"type": "integer"}, "required": false, "default": 14}, {"name": "limit", "type": "integer", "nullable": false, "schema": {"type": "integer"}, "required": false, "default": 20}, {"name": "by", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": "subcats"}, {"name": "category", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}, {"name": "country", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}, {"name": "min_articles", "type": "integer", "nullable": false, "schema": {"type": "integer"}, "required": false, "default": 40}]}, {"feature": "news.trends", "tool": "news_trends", "group": "news", "summary": "Coverage of a term over time: volume, critical volume, and tone together.", "endpoint": "/v1/news.trends", "credits": 1, "parameters": [{"name": "term", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": true, "default": null}, {"name": "granularity", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": "monthly"}, {"name": "since", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}, {"name": "until", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}, {"name": "country", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}]}, {"feature": "research.audit", "tool": "research_audit", "group": "research", "summary": "Fact-check a whole draft before publishing: the tool for \"check this article\".", "endpoint": "/v1/research.audit", "credits": 20, "parameters": [{"name": "text", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": true, "default": null}, {"name": "deep", "type": "integer", "nullable": false, "schema": {"type": "integer"}, "required": false, "default": 0}, {"name": "max_claims", "type": "integer", "nullable": false, "schema": {"type": "integer"}, "required": false, "default": 30}]}, {"feature": "research.brief", "tool": "research_brief", "group": "research", "summary": "A structured brief on a subject, assembled from measurements.", "endpoint": "/v1/research.brief", "credits": 20, "parameters": [{"name": "topic", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": true, "default": null}, {"name": "geo", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}]}, {"feature": "research.browse", "tool": "browse_research", "group": "research", "summary": "Browse papers on a subject, filtered by how they frame what they found.", "endpoint": "/v1/research.browse", "credits": 8, "parameters": [{"name": "term", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": true, "default": null}, {"name": "orientation", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}, {"name": "contribution", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}, {"name": "geo", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}, {"name": "geo_mode", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": "about"}, {"name": "since", "type": "integer", "nullable": false, "schema": {"type": "integer"}, "required": false, "default": 0}, {"name": "until", "type": "integer", "nullable": false, "schema": {"type": "integer"}, "required": false, "default": 0}, {"name": "sort", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": "recent"}, {"name": "limit", "type": "integer", "nullable": false, "schema": {"type": "integer"}, "required": false, "default": 20}, {"name": "expand", "type": "boolean", "nullable": false, "schema": {"type": "boolean"}, "required": false, "default": false}, {"name": "min_citations", "type": "integer", "nullable": false, "schema": {"type": "integer"}, "required": false, "default": 0}]}, {"feature": "research.citations", "tool": "get_citations", "group": "research", "summary": "Ready-to-paste citations for the best sources behind a claim.", "endpoint": "/v1/research.citations", "credits": 20, "parameters": [{"name": "claim", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": true, "default": null}, {"name": "style", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": "apa"}, {"name": "limit", "type": "integer", "nullable": false, "schema": {"type": "integer"}, "required": false, "default": 8}, {"name": "only_supporting", "type": "boolean", "nullable": false, "schema": {"type": "boolean"}, "required": false, "default": false}]}, {"feature": "research.claims", "tool": "extract_claims", "group": "research", "summary": "Find the factual claims in a piece of writing.", "endpoint": "/v1/research.claims", "credits": 5, "parameters": [{"name": "text", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": true, "default": null}, {"name": "max_claims", "type": "integer", "nullable": false, "schema": {"type": "integer"}, "required": false, "default": 30}]}, {"feature": "research.compare", "tool": "compare_claims", "group": "research", "summary": "Measure two claims the same way and put them side by side.", "endpoint": "/v1/research.compare", "credits": 50, "parameters": [{"name": "claim_a", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": true, "default": null}, {"name": "claim_b", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": true, "default": null}, {"name": "read", "type": "boolean", "nullable": false, "schema": {"type": "boolean"}, "required": false, "default": true}]}, {"feature": "research.counter_evidence", "tool": "find_counter_evidence", "group": "research", "summary": "Find what disagrees with a claim, and say how mixed the evidence is.", "endpoint": "/v1/research.counter_evidence", "credits": 5, "parameters": [{"name": "claim", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": true, "default": null}, {"name": "limit", "type": "integer", "nullable": false, "schema": {"type": "integer"}, "required": false, "default": 16}]}, {"feature": "research.disease", "tool": "disease_profile", "group": "research", "summary": "A disease profile from the extracted health-claims corpus: risk factors (and the share of each from", "endpoint": "/v1/research.disease", "credits": 1, "parameters": [{"name": "disease", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": true, "default": null}, {"name": "since_year", "type": "integer", "nullable": false, "schema": {"type": "integer"}, "required": false, "default": 2015}, {"name": "limit", "type": "integer", "nullable": false, "schema": {"type": "integer"}, "required": false, "default": 12}]}, {"feature": "research.evidence", "tool": "find_evidence", "group": "research", "summary": "Find the research evidence for one claim, ranked and read.", "endpoint": "/v1/research.evidence", "credits": 20, "parameters": [{"name": "claim", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": true, "default": null}, {"name": "limit", "type": "integer", "nullable": false, "schema": {"type": "integer"}, "required": false, "default": 16}, {"name": "read", "type": "boolean", "nullable": false, "schema": {"type": "boolean"}, "required": false, "default": true}, {"name": "geo", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}]}, {"feature": "research.evidence_card", "tool": "evidence_card", "group": "research", "summary": "The single strongest piece of evidence for a claim, as a card.", "endpoint": "/v1/research.evidence_card", "credits": 8, "parameters": [{"name": "claim", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": true, "default": null}, {"name": "style", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": "source_card"}]}, {"feature": "research.gaps", "tool": "research_gaps", "group": "research", "summary": "Which parts of a broad claim the literature covers, and which it does not.", "endpoint": "/v1/research.gaps", "credits": 8, "parameters": [{"name": "claim", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": true, "default": null}]}, {"feature": "research.geography", "tool": "global_comparison", "group": "research", "summary": "Where this claim is studied, reported and patented, by country.", "endpoint": "/v1/research.geography", "credits": 5, "parameters": [{"name": "claim", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": true, "default": null}, {"name": "country", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}]}, {"feature": "research.improve", "tool": "improve_claim", "group": "research", "summary": "Rewrite a sentence so it says what the evidence supports.", "endpoint": "/v1/research.improve", "credits": 12, "parameters": [{"name": "claim", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": true, "default": null}]}, {"feature": "research.library_gaps", "tool": "library_gaps", "group": "research", "summary": "What a reference library is missing.", "endpoint": "/v1/research.library_gaps", "credits": 3, "parameters": [{"name": "items", "type": "array", "nullable": false, "schema": {"items": {"type": "string"}, "type": "array"}, "required": true, "default": null}, {"name": "subject", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}, {"name": "limit", "type": "integer", "nullable": false, "schema": {"type": "integer"}, "required": false, "default": 12}]}, {"feature": "research.missing", "tool": "whats_missing", "group": "research", "summary": "Topics the literature on this subject covers that the draft does not.", "endpoint": "/v1/research.missing", "credits": 8, "parameters": [{"name": "text", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": true, "default": null}, {"name": "subject", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}, {"name": "limit", "type": "integer", "nullable": false, "schema": {"type": "integer"}, "required": false, "default": 12}]}, {"feature": "research.packet", "tool": "research_packet", "group": "research", "summary": "Bounded title-matched OpenAlex evidence sample, quotes and reusable packet_id.", "endpoint": "/v1/research.packet", "credits": 5, "parameters": [{"name": "claim", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": true, "default": null}, {"name": "subject_phrases", "type": "array", "nullable": false, "schema": {"items": {"type": "string"}, "type": "array"}, "required": true, "default": null}, {"name": "outcome_phrases", "type": "array", "nullable": true, "schema": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}]}, "required": false, "default": null}, {"name": "first_year", "type": "integer", "nullable": false, "schema": {"type": "integer"}, "required": false, "default": 2020}, {"name": "last_year", "type": "integer", "nullable": false, "schema": {"type": "integer"}, "required": false, "default": 2025}, {"name": "limit", "type": "integer", "nullable": false, "schema": {"type": "integer"}, "required": false, "default": 8}, {"name": "read", "type": "boolean", "nullable": false, "schema": {"type": "boolean"}, "required": false, "default": true}, {"name": "query_seconds", "type": "integer", "nullable": false, "schema": {"type": "integer"}, "required": false, "default": 15}]}, {"feature": "research.packet_read", "tool": "research_packet_read", "group": "research", "summary": "Read bounded pages of original abstracts from a saved evidence packet.", "endpoint": "/v1/research.packet_read", "credits": 1, "parameters": [{"name": "packet_id", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": true, "default": null}, {"name": "offset", "type": "integer", "nullable": false, "schema": {"type": "integer"}, "required": false, "default": 0}, {"name": "limit", "type": "integer", "nullable": false, "schema": {"type": "integer"}, "required": false, "default": 3}, {"name": "chars_per_source", "type": "integer", "nullable": false, "schema": {"type": "integer"}, "required": false, "default": 6000}]}, {"feature": "research.plan", "tool": "research_plan", "group": "research", "summary": "Fast research checklist and next calls; no retrieval or generated facts.", "endpoint": "/v1/research.plan", "credits": 5, "parameters": [{"name": "question", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": true, "default": null}, {"name": "subject_phrases", "type": "array", "nullable": true, "schema": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}]}, "required": false, "default": null}, {"name": "outcome_phrases", "type": "array", "nullable": true, "schema": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}]}, "required": false, "default": null}]}, {"feature": "research.radar", "tool": "research_radar", "group": "research", "summary": "What has changed lately in the research on a subject.", "endpoint": "/v1/research.radar", "credits": 12, "parameters": [{"name": "topic", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": true, "default": null}, {"name": "since_year", "type": "integer", "nullable": false, "schema": {"type": "integer"}, "required": false, "default": 0}, {"name": "geo", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}]}, {"feature": "research.search", "tool": "search_research", "group": "research", "summary": "Search the research corpus directly and get documents back.", "endpoint": "/v1/research.search", "credits": 5, "parameters": [{"name": "query_text", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": true, "default": null}, {"name": "limit", "type": "integer", "nullable": false, "schema": {"type": "integer"}, "required": false, "default": 20}, {"name": "want_recent", "type": "boolean", "nullable": false, "schema": {"type": "boolean"}, "required": false, "default": false}, {"name": "domain", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}]}, {"feature": "research.source_ranking", "tool": "rank_sources", "group": "research", "summary": "Rank the available sources for a claim by how much weight each carries.", "endpoint": "/v1/research.source_ranking", "credits": 3, "parameters": [{"name": "claim", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": true, "default": null}, {"name": "limit", "type": "integer", "nullable": false, "schema": {"type": "integer"}, "required": false, "default": 12}]}, {"feature": "research.stance_trends", "tool": "stance_trends", "group": "research", "summary": "How the framing of a literature has moved, year by year.", "endpoint": "/v1/research.stance_trends", "credits": 5, "parameters": [{"name": "term", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": true, "default": null}, {"name": "geo", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": ""}, {"name": "geo_mode", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": false, "default": "about"}, {"name": "since", "type": "integer", "nullable": false, "schema": {"type": "integer"}, "required": false, "default": 0}, {"name": "until", "type": "integer", "nullable": false, "schema": {"type": "integer"}, "required": false, "default": 0}, {"name": "expand", "type": "boolean", "nullable": false, "schema": {"type": "boolean"}, "required": false, "default": false}]}, {"feature": "research.statistics", "tool": "find_statistics", "group": "research", "summary": "Find numbers a writer can use, each with the sentence it came from.", "endpoint": "/v1/research.statistics", "credits": 5, "parameters": [{"name": "claim", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": true, "default": null}, {"name": "limit", "type": "integer", "nullable": false, "schema": {"type": "integer"}, "required": false, "default": 8}, {"name": "include_trend", "type": "boolean", "nullable": false, "schema": {"type": "boolean"}, "required": false, "default": true}, {"name": "include_context", "type": "boolean", "nullable": false, "schema": {"type": "boolean"}, "required": false, "default": true}]}, {"feature": "research.table", "tool": "research_table", "group": "research", "summary": "Answer one research question across many rows — the spreadsheet case.", "endpoint": "/v1/research.table", "credits": 30, "parameters": [{"name": "rows", "type": "array", "nullable": false, "schema": {"items": {"type": "string"}, "type": "array"}, "required": true, "default": null}, {"name": "question", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": true, "default": null}]}, {"feature": "system.features", "tool": "list_features", "group": "system", "summary": "Every feature this server exposes, with its parameters and endpoint.", "endpoint": "/v1/system.features", "credits": 0, "parameters": []}, {"feature": "system.freshness", "tool": "freshness_status", "group": "system", "summary": "Measured news ingestion tail, its age, and the default report cutoff.", "endpoint": "/v1/system.freshness", "credits": 0, "parameters": []}, {"feature": "system.resolve", "tool": "resolve_vocabulary", "group": "system", "summary": "What the corpora call this term — the first step of every query.", "endpoint": "/v1/system.resolve", "credits": 1, "parameters": [{"name": "term", "type": "string", "nullable": false, "schema": {"type": "string"}, "required": true, "default": null}, {"name": "k", "type": "integer", "nullable": false, "schema": {"type": "integer"}, "required": false, "default": 6}, {"name": "min_similarity", "type": "number", "nullable": false, "schema": {"type": "number"}, "required": false, "default": 0.45}]}]}