The Iran-Israel conflict generated 607.9 million engagements on X in Q1 2026 from just the top 50 creators. We tracked 22 war-related topics to find who actually drives the conversation and how to pull this data yourself.
GitHub repo: JoeVezzani/iran-war-creators
The Scale of the Conversation
Across 22 topics -- from "Iran" and "Israel" to "Strait of Hormuz" and "Airstrikes" -- the top 50 creators alone generated 607.9M engagements. Engagement peaked on February 28, coinciding with Strait of Hormuz escalations and nuclear deal negotiations.
The Top 10 Creators
| Rank | Creator | Engagements | Topics Covered |
|---|---|---|---|
| 1 | @MarioNawfal | 161.4M | 19 of 22 |
| 2 | @netanyahu | 28.5M | 2 |
| 3 | @RyanRozbiani | 22.3M | 10 |
| 4 | @A_K_Mandhan | 20.5M | 7 |
| 5 | @BRICSinfo | 20.3M | 11 |
| 6 | @jacksonhinklle | 20.3M | 15 |
| 7 | @rebelliousdogra | 19.8M | 7 |
| 8 | @KobeissiLetter | 18.8M | 7 |
| 9 | @MOSSADil | 18.7M | 16 |
| 10 | @Osint613 | 14.4M | 17 |
@MarioNawfal's dominance is remarkable -- 161.4M engagements across 19 of 22 topics. More than the next five creators combined. His breadth of coverage is what separates him.
@Osint613 covers 17 topics with the broadest intelligence coverage. @MOSSADil covers 16. Citizen journalists and independent accounts consistently outperform legacy media on engagement.
Pull This Data Yourself
Track any geopolitical topic in real time with the LunarCrush API:
const API_KEY = process.env.LUNARCRUSH_API_KEY;
async function getTopicData(keyword) {
const res = await fetch(
`https://lunarcrush.com/api4/public/topic/${encodeURIComponent(keyword)}/v1`,
{ headers: { Authorization: `Bearer ${API_KEY}` } }
);
return res.json();
}
async function getTopicPosts(keyword) {
const res = await fetch(
`https://lunarcrush.com/api4/public/topic/${encodeURIComponent(keyword)}/posts/v1`,
{ headers: { Authorization: `Bearer ${API_KEY}` } }
);
return res.json();
}
// Track multiple war-related topics
async function scanConflict() {
const topics = [
"iran", "israel", "strait of hormuz", "airstrikes",
"ceasefire", "nuclear deal", "oil prices", "sanctions"
];
for (const topic of topics) {
const data = await getTopicData(topic);
console.log(
`${topic.padEnd(20)} | ` +
`${(data.data?.num_posts || 0).toLocaleString().padStart(8)} mentions | ` +
`${(data.data?.interactions || 0).toLocaleString().padStart(12)} engagements | ` +
`sentiment: ${data.data?.sentiment || 'N/A'}%`
);
}
}
scanConflict();
Track Top Creators on Any Topic
async function getTopCreators(topic) {
const res = await fetch(
`https://lunarcrush.com/api4/public/topic/${encodeURIComponent(topic)}/creators/v1`,
{ headers: { Authorization: `Bearer ${API_KEY}` } }
);
return res.json();
}
async function main() {
const creators = await getTopCreators("iran");
console.log(`
Top Creators for "Iran":
`);
for (const c of (creators.data || []).slice(0, 10)) {
console.log(
` @${(c.screen_name || '').padEnd(20)} | ` +
`${(c.interactions || 0).toLocaleString().padStart(12)} eng | ` +
`${(c.followers_count || 0).toLocaleString().padStart(10)} followers`
);
}
}
main();
Build a Sentiment Alert for Geopolitical Events
const fs = require("fs");
const STATE_FILE = "./conflict_state.json";
function loadState() {
try { return JSON.parse(fs.readFileSync(STATE_FILE)); }
catch { return {}; }
}
function saveState(state) {
fs.writeFileSync(STATE_FILE, JSON.stringify(state, null, 2));
}
async function checkConflictShifts() {
const state = loadState();
const topics = ["iran", "israel", "oil", "ceasefire", "strait of hormuz"];
for (const topic of topics) {
const data = await getTopicData(topic);
const current = data.data?.sentiment || 0;
const previous = state[topic]?.sentiment;
if (previous && Math.abs(current - previous) > 10) {
const dir = current > previous ? "UP" : "DOWN";
console.log(
`ALERT: "${topic}" sentiment shifted ${dir} ` +
`(${previous}% -> ${current}%)`
);
}
state[topic] = {
sentiment: current,
mentions: data.data?.num_posts || 0,
timestamp: new Date().toISOString()
};
}
saveState(state);
}
checkConflictShifts();
Run on a cron during active conflict periods. When sentiment shifts 10+ points, you know something just happened.
Why Social Data Matters for Geopolitics
Oil hit $114/barrel during the Strait of Hormuz situation. X produced 92,066 mentions of oil in 24 hours -- more than Reddit (22K), YouTube (46K), TikTok (44K), and all news sources (1.3K) combined.
For traders, researchers, and prediction market participants, social data is the fastest signal for geopolitical events. The conversation happens on X before it hits Bloomberg.
Try It
- API key: lunarcrush.com/developers
- API docs: lunarcrush.com/developers/api
- MCP server (use with Claude): lunarcrush.com/products/lunarcrush-mcpserver
- Full analysis with heatmaps: lunarcrush.com/blog/iran-war-creators-2026
I'm building a bunch of small projects like this. Follow along if you're into this kind of thing.
Top comments (0)