curl examples assume export WM_KEY="wm_…". With an OAuth token, replace -H "X-WorldMonitor-Key: $WM_KEY" with -H "Authorization: Bearer $TOKEN".
These three Pro-gated tools read the durable history store that the conflict, military, and energy seeders append to after each run. They share one record shape — id, domain, resource, country, category, title, summary, sourceUrl, occurredAt, ingestedAt, score — so a client can hold a single parser for all three.
The store begins at the day history capture was activated and deepens from there; there is no deep backfill. An empty result for an early window means that window is not covered yet, not that nothing happened. Every response also carries
upstreamUnavailable: when it is true, records is empty because the lookup failed, never because nothing matched.search_intel_history
Semantic search over the stored history, ranked by similarity to a free-text query. The route embeds your query with the same model the stored vectors were written under, so phrasing close to how an analyst would describe the event ranks best. Optional domain, country, and an occurredAt window narrow the candidate set before ranking. Each record carries a cosine-similarity score in [-1, 1]; higher is closer.
Parameters:
- API endpoint:
POST /api/intelligence/v1/search-intel-history - Access:
subscription— requires a Pro subscription. RPC tool: nosummaryargument (usejmespathto trim the response). - Kind: live RPC — embeds the query, then ranks the history store. Edge-runtime timeout: 12.0s.
- Cost note: every call spends one embeddings round-trip, so the route is rate-limited fail-closed. Prefer one well-phrased query over several near-duplicates.
get_intel_timeline
Reverse-chronological read of the stored history for one scope. Pure index read — no embedding and no ranking — so ordering is by occurredAt alone and every record’s score is 0.
At least one of domain or country is required. Those are the two indexed scopes on the store; an unscoped read has no index to serve it and is rejected rather than run as a table scan. The rule is enforced inside the tool body, not by the input schema (required is empty), so schema-validating clients will not pre-catch it — the server rejects the call with a JSON-RPC -32602 Invalid params error and error.data.violations naming both fields. Supplying both narrows to their intersection.
Parameters:
- API endpoint:
GET /api/intelligence/v1/get-intel-timeline - Access:
subscription— requires a Pro subscription. RPC tool: nosummaryargument (usejmespathto trim the response). - Kind: live RPC — one store read, no embedding. Edge-runtime timeout: 8.0s.
get_similar_events
Historical precedents for a situation you describe. Same vector search as search_intel_history over a longer input: situation is a description of a developing situation rather than a search phrase, and a sentence or two of context ranks better than a keyword. The result set is deliberately small because it is read as a precedent list, not scrolled.
Leaving country unset is usually the right choice — a precedent elsewhere is still a precedent. Read an empty list as weak evidence that the situation is novel, not as proof of it: the store only holds what the three seeders have published since capture was activated.
Parameters:
- API endpoint:
POST /api/intelligence/v1/get-similar-events - Access:
subscription— requires a Pro subscription. RPC tool: nosummaryargument (usejmespathto trim the response). - Kind: live RPC — embeds the situation text, then ranks the history store. Edge-runtime timeout: 12.0s.
- Cost note: embeddings-backed like
search_intel_history, so the same fail-closed rate policy applies.
