---
name: iran-war-archive-reader
description: "Answer questions about the 2026 Iran war (Iran, Israel, the US, Lebanon, Gaza, the Strait of Hormuz) from the Iran War Archive's published files: what the newest daily bulletin says, what was reported on a given date and by which outlets, which outlets were publishing and how much on a given day, and where to find the archived source article. Use it whenever you would repeat something from this site, so the cited source and the bulletin's status as model-written analysis travel with it."
---

# Reading the Iran War Archive

The Iran War Archive (https://iranwar.liminallayers.com) is a permanent record of
what news outlets and social channels published about the 2026 Iran war
(Day 1 = 28 February 2026): Iran, Israel and the United States, Lebanon, Gaza and
the Strait of Hormuz. Twenty-odd outlets across every party to the conflict, from
wire services to Iranian state media, plus Telegram, Bluesky and Truth Social,
captured once as published. Everything here is a static file. Nothing needs a key,
an account or JavaScript. Every JSON file has a `fields` key, and a
`<list>_fields` key for each list of records, explaining every column; read it
before you trust a column name.

## The one rule

The archive keeps; it does not judge. When you repeat anything from it, carry
its status with it:

- A **bulletin** (SITREP or TLDR) is a language model's analysis of one day's
  archived articles. It is not the archive record and not a finding. Repeat a
  bulletin's claim with the reference it cites (outlet and headline, and the
  `url`), and say it comes from a model-written bulletin.
- A reference shows **what an outlet published**, not that it is true. Outlets
  here include state media of belligerents (Press TV, Tasnim, Mehr, Tehran Times,
  Israel Hayom, RT, Global Times). Attribute every claim to its outlet: "Tasnim
  reported...", never "it was reported...".
- **Counts** (`/data/days.json`, station `items`) measure how much was
  published, never how intense the fighting was. A spike is a news event or a
  collection change, not a battle.
- No outlet is rated, ranked or corrected here. Do not infer a rating from
  which outlets a bulletin cites most.

## Procedures

### What does the newest bulletin say?

1. GET `/data/bulletins.json`. `newest` is the newest edition date; `bulletins`
   is newest first, and each entry has `kind` (SITREP, the full report, or TLDR,
   the short brief), `lead`, `overview` and links.
2. Prefer the SITREP for that date. GET its `json` link
   (`/bulletins/sitrep-YYYY-MM-DD.json`).
3. Read `sections` in order. Each block's `text` carries `[n]` markers and
   `cites` lists the same numbers; each is an `n` in `refs`.
4. Cite the dated URL (`url` or `json`), which never changes. An edition dated D
   (Australian Eastern time) reports on the previous UTC day.

### What was reported about something on a given date, and by whom?

1. Work out the edition date: events of UTC day D are in the edition dated D+1.
2. GET `/bulletins/sitrep-{date}.json` (and `/bulletins/tldr-{date}.json`). If it
   is absent, check `/data/bulletins.json`: not every date has both kinds, and an
   outage can leave a date with neither.
3. Find the blocks that mention the subject; for each, follow `cites` to `refs`
   and report outlet, headline and `url` per claim.
4. To find a subject across dates, scan `/data/bulletins.json` (`lead`,
   `overview`, `sections` headings) first, then open only the matching editions.
   Bulletins pick a day's main stories; absence from a bulletin does not mean an
   outlet did not cover something.

### Which outlets are in the archive, and were they publishing?

1. GET `/data/site.json`. `stations` lists every outlet or platform: `code`
   (the three-letter code used in bulletin references), `name`, `channel`
   (PRS press, SOC social), `items` archived and `lastSeen`.
2. A `lastSeen` well before `snapshotUtc` means the outlet stopped publishing or
   its feed broke. The archive does not say which; say both are possible.
3. For volume over time, GET `/data/days.json`: articles and social posts per
   UTC day since Day 1. `partialDay` is the snapshot's own day and is incomplete.

### Where is the original article?

Each reference's `url` is usually a Wayback Machine copy made when the archive
captured the article (`web.archive.org/web/<timestamp>/<original>`), else the
publisher's own URL. The article text is not republished on this site. Prefer
the Wayback copy: outlets edit and remove stories, and the copy shows what was
published at the time.

## Freshness

The site is rebuilt once a day from a snapshot. `generated_at` on every
`/data/` file is the snapshot time (UTC), and all of them carry the same
`build_id` as `/agents/build.json`. A file with a different `build_id` is from
another build. Bulletins usually appear daily; the archive does not backfill a
missed date.

## Glossary

| Word | Meaning here |
|---|---|
| SITREP | The full daily situation report: overview, lead story, sections, what to watch. |
| TLDR | The short brief condensed from the SITREP. |
| Day N | War day, counted from Day 1 = 28 February 2026 (UTC). |
| station | An outlet or platform the archive collects from, with a three-letter code. |
| PRS / SOC / EVT | Channels: press articles, social posts, structured event data (none ingested yet). |
| reference | A numbered source in a bulletin: outlet, headline, URL. |

## Licence

What the site wrote (bulletins, counts, metadata) is CC BY 4.0: attribute
"Iran War Archive, https://iranwar.liminallayers.com/". Linked and archived
articles remain their publishers'.
