{
 "meta": {
  "dataset": "Subscriber history — @haoshangle",
  "channel": "https://tgregister.com/channel/haoshangle",
  "retrieved_at": "2026-09-09T21:20:19.768Z",
  "licence": "CC BY 4.0 — attribute to tgregister.com",
  "n_readings": 26,
  "window": {
   "from": "2026-08-07T11:15:24.503Z",
   "to": "2026-09-06T17:37:40.668Z"
  },
  "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-07T11:15:24.503Z",
   "subscribers": 27990,
   "source": 3
  },
  {
   "ts": "2026-08-07T17:47:49.651Z",
   "subscribers": 27987,
   "source": 4
  },
  {
   "ts": "2026-08-08T14:37:15.862Z",
   "subscribers": 27988,
   "source": 4
  },
  {
   "ts": "2026-08-09T18:11:36.392Z",
   "subscribers": 27989,
   "source": 4
  },
  {
   "ts": "2026-08-11T14:12:34.302Z",
   "subscribers": 27982,
   "source": 4
  },
  {
   "ts": "2026-08-12T11:24:04.163Z",
   "subscribers": 27985,
   "source": 4
  },
  {
   "ts": "2026-08-13T10:24:39.472Z",
   "subscribers": 27976,
   "source": 4
  },
  {
   "ts": "2026-08-14T17:07:18.244Z",
   "subscribers": 27979,
   "source": 4
  },
  {
   "ts": "2026-08-16T07:55:12.782Z",
   "subscribers": 27978,
   "source": 4
  },
  {
   "ts": "2026-08-18T13:08:42.302Z",
   "subscribers": 27972,
   "source": 4
  },
  {
   "ts": "2026-08-19T13:24:19.123Z",
   "subscribers": 27970,
   "source": 4
  },
  {
   "ts": "2026-08-20T11:03:33.094Z",
   "subscribers": 27971,
   "source": 4
  },
  {
   "ts": "2026-08-21T13:58:12.215Z",
   "subscribers": 27968,
   "source": 4
  },
  {
   "ts": "2026-08-23T02:27:53.933Z",
   "subscribers": 27966,
   "source": 4
  },
  {
   "ts": "2026-08-24T19:54:12.033Z",
   "subscribers": 27957,
   "source": 4
  },
  {
   "ts": "2026-08-25T19:28:15.337Z",
   "subscribers": 27953,
   "source": 4
  },
  {
   "ts": "2026-08-26T19:08:02.806Z",
   "subscribers": 27947,
   "source": 4
  },
  {
   "ts": "2026-08-27T18:05:42.968Z",
   "subscribers": 27956,
   "source": 4
  },
  {
   "ts": "2026-08-28T18:53:37.605Z",
   "subscribers": 27950,
   "source": 4
  },
  {
   "ts": "2026-08-29T19:59:06.838Z",
   "subscribers": 27941,
   "source": 4
  },
  {
   "ts": "2026-08-30T20:04:35.013Z",
   "subscribers": 27943,
   "source": 4
  },
  {
   "ts": "2026-08-31T17:13:18.164Z",
   "subscribers": 27941,
   "source": 4
  },
  {
   "ts": "2026-09-01T16:43:22.473Z",
   "subscribers": 27936,
   "source": 4
  },
  {
   "ts": "2026-09-02T21:35:19.768Z",
   "subscribers": 27925,
   "source": 4
  },
  {
   "ts": "2026-09-04T06:16:23.219Z",
   "subscribers": 27927,
   "source": 4
  },
  {
   "ts": "2026-09-06T17:37:40.668Z",
   "subscribers": 27925,
   "source": 4
  }
 ]
}
