' Excel for Windows. Needs VBA-JSON 2.3.1: import its JsonConverter.bas ' and tick Tools > References > Microsoft Scripting Runtime Sub EtfOwnership() ' Read NVDA's file (one GET, no key), naming your own project Dim http As Object ' ServerXMLHTTP does not read the proxy set in Windows: behind a ' company proxy, create MSXML2.XMLHTTP.6.0 instead Set http = CreateObject("MSXML2.ServerXMLHTTP.6.0") http.Open "GET", "https://tickerinside.com/api/v1/sec/nvda.json", False http.setRequestHeader "User-Agent", "MyProject/1.0 (+https://example.com)" http.send If http.Status <> 200 Then Err.Raise 513, , "HTTP " & http.Status ' The etf_ownership block holds the figure Dim stock As Object, own As Object Set stock = JsonConverter.ParseJson(http.responseText) Set own = stock("etf_ownership") ' pct_lower_bound is null when no figure is published, and refused says ' why If IsNull(own("pct_lower_bound")) Then Debug.Print "NVDA etf_ownership: no figure published, refused " _ & own("refused") Exit Sub End If Debug.Print "NVDA etf_ownership: at least " & own("pct_lower_bound") _ & "% of its shares held by covered US ETFs, basis " & own("basis") ' The shares counted, and the date of the count of shares outstanding Debug.Print "shares_held " & Format(own("shares_held"), "#,##0") _ & " shares_outstanding " & Format(own("shares_outstanding"), "#,##0") _ & " as of " & own("shares_outstanding_as_of") ' The oldest and the newest holdings file behind the figure Debug.Print "holdings dated " & own("holdings_dates")("oldest") & " to " _ & own("holdings_dates")("newest") ' The line to print under the figure Debug.Print own("cite_as") End Sub