01:04:46 After saving this, I first separate the outermost rows. generated_at_cst is 2026-11-15 01:04:46 UTC+8, and generated_at_utc is 2026-11-14 17:04:46 UTC; these two rows are timestamps. The six URLs under sources are references, and errors is an empty array. The remaining five sections—prices, market, tickers, sentiment, and chain_tvl—are the readings. This is just my own data archive, not investment advice. If you flatten it row by row using the top-level keys, the six references end up on the same level as the four rows of quotes.
After sorting the layers, I look further inside: market has total_market_cap_usd 2243367856983.734 and btc_dominance_pct 58.81, while prices has BTC 65177. Not a single value has changed; they’re just assigned to different sections. Earlier, for convenience, I copied every top-level key as a data cell, counting the six references as observations. When I later checked the row count, it never added up.
Now I write the types first, then the values. An empty array still takes up a row; no value goes in that row.
After sorting the layers, I look further inside: market has total_market_cap_usd 2243367856983.734 and btc_dominance_pct 58.81, while prices has BTC 65177. Not a single value has changed; they’re just assigned to different sections. Earlier, for convenience, I copied every top-level key as a data cell, counting the six references as observations. When I later checked the row count, it never added up.
Now I write the types first, then the values. An empty array still takes up a row; no value goes in that row.