using System; using System.Globalization; using System.Net.Http; using System.Text.Json; // Print numbers with a dot, whatever the language of the machine CultureInfo.CurrentCulture = CultureInfo.InvariantCulture; // Read NVDA's file (one GET, no key), naming your own project using var http = new HttpClient(); http.DefaultRequestHeaders.UserAgent.ParseAdd( "MyProject/1.0 (+https://example.com)"); using var doc = JsonDocument.Parse(await http.GetStringAsync( "https://tickerinside.com/api/v1/sec/nvda.json")); var stock = doc.RootElement; // How many funds hold it: in their issuers' own files, and in SEC filings Console.WriteLine( $"NVDA held_by {stock.GetProperty("held_by").GetInt32()} (issuer files), " + "held_by_sec_nport " + $"{stock.GetProperty("held_by_sec_nport").GetInt32()} (SEC filings)"); // holders is sorted, largest weight first: [fund, weight %, file date] foreach (var h in stock.GetProperty("holders").EnumerateArray()) { Console.WriteLine( $"{h[0].GetString()} {h[1].GetDouble()} {h[2].GetString()}"); } // The line to print under any figure you quote Console.WriteLine(stock.GetProperty("cite_as").GetString());