{
 "meta": {
  "dataset": "Subscriber history — @FirmVPN",
  "channel": "https://tgregister.com/channel/FirmVPN",
  "retrieved_at": "2026-09-02T05:35:51.421Z",
  "licence": "CC BY 4.0 — attribute to tgregister.com",
  "n_readings": 25,
  "window": {
   "from": "2026-08-07T18:59:07.220Z",
   "to": "2026-09-01T07:44:29.882Z"
  },
  "columns": {
   "ts": "when this reading was taken, UTC",
   "subscribers": "the count read (or, for source 3, carried over) — see source below",
   "source": {
    "0": "sweep.py — t.me/<name> profile page",
    "1": "promote.py — Bot API getChat",
    "2": "resolve.py — MTProto",
    "3": "spromote.py — t.me/s/<name> post preview (figure carried over from an earlier profile read, not the preview’s own rounded header)",
    "4": "remeasure.py — t.me/<name> profile page, re-read on a schedule"
   }
  },
  "note": "Snapshots are written only when a reading changes: a gap in ts means \"no change observed between readings\", never \"not measured\" and never \"interpolated\". Readings from different sources are separate lineages that do not confirm one another — subtracting across them can attribute a change to a period nothing was actually read in. Full method: https://tgregister.com/methodology#measuring"
 },
 "rows": [
  {
   "ts": "2026-08-07T18:59:07.220Z",
   "subscribers": 21422,
   "source": 0
  },
  {
   "ts": "2026-08-07T19:00:44.362Z",
   "subscribers": 21422,
   "source": 3
  },
  {
   "ts": "2026-08-08T18:18:16.257Z",
   "subscribers": 21396,
   "source": 4
  },
  {
   "ts": "2026-08-09T16:01:53.465Z",
   "subscribers": 21358,
   "source": 4
  },
  {
   "ts": "2026-08-10T16:32:37.630Z",
   "subscribers": 21332,
   "source": 4
  },
  {
   "ts": "2026-08-11T14:42:34.250Z",
   "subscribers": 21277,
   "source": 4
  },
  {
   "ts": "2026-08-12T12:58:07.261Z",
   "subscribers": 21255,
   "source": 4
  },
  {
   "ts": "2026-08-13T13:04:57.704Z",
   "subscribers": 21220,
   "source": 4
  },
  {
   "ts": "2026-08-14T19:33:19.517Z",
   "subscribers": 21186,
   "source": 4
  },
  {
   "ts": "2026-08-16T08:23:22.976Z",
   "subscribers": 21152,
   "source": 4
  },
  {
   "ts": "2026-08-17T16:29:08.958Z",
   "subscribers": 21100,
   "source": 4
  },
  {
   "ts": "2026-08-18T14:48:56.651Z",
   "subscribers": 21091,
   "source": 4
  },
  {
   "ts": "2026-08-19T12:14:27.074Z",
   "subscribers": 21062,
   "source": 4
  },
  {
   "ts": "2026-08-20T14:46:39.526Z",
   "subscribers": 21027,
   "source": 4
  },
  {
   "ts": "2026-08-21T13:05:12.203Z",
   "subscribers": 21006,
   "source": 4
  },
  {
   "ts": "2026-08-23T03:13:32.282Z",
   "subscribers": 20962,
   "source": 4
  },
  {
   "ts": "2026-08-24T16:45:23.451Z",
   "subscribers": 20924,
   "source": 4
  },
  {
   "ts": "2026-08-25T13:32:18.626Z",
   "subscribers": 20901,
   "source": 4
  },
  {
   "ts": "2026-08-26T15:25:00.652Z",
   "subscribers": 20863,
   "source": 4
  },
  {
   "ts": "2026-08-27T14:25:11.638Z",
   "subscribers": 20841,
   "source": 4
  },
  {
   "ts": "2026-08-28T12:27:44.079Z",
   "subscribers": 20822,
   "source": 4
  },
  {
   "ts": "2026-08-29T12:43:51.559Z",
   "subscribers": 20793,
   "source": 4
  },
  {
   "ts": "2026-08-30T09:44:36.332Z",
   "subscribers": 20775,
   "source": 4
  },
  {
   "ts": "2026-08-31T10:24:29.423Z",
   "subscribers": 20738,
   "source": 4
  },
  {
   "ts": "2026-09-01T07:44:29.882Z",
   "subscribers": 20722,
   "source": 4
  }
 ]
}
