Scripts/Get-CoinbaseAllProductVolume.ps1
Function Get-CoinbaseAllProductVolume { <# .SYNOPSIS Gets 30 day and 24 hour volume for all products and market types .DESCRIPTION Gets 30 day and 24 hour volume for all products and market types .EXAMPLE Get-CoinbaseAllProductVolume .NOTES N/A .LINK N/A #> [CmdletBinding ()] Param () BEGIN { Function Show-Output ($Values) { [PSCustomObject]@{ Name = $Values.Display_Name Id = $Values.Id BaseCurrency = $Values.Base_Currency QuoteCurrency = $Values.Quote_currency MarketTypes = $MarketType SpotVolume24Hour = $Values.Spot_Volume_24Hour SpotVolume30Day = $Values.Spot_Volume_30Day RFQVolume24Hour = $Values.RFQ_Volume_24Hour RFQVolume30Day = $Values.RFQ_Volume_30Day ConversionVolume24Hour = $Values.Conversion_Volume_24Hour ConversionVolume30Day = $Values.Conversion_Volume_30Day Status = $Status } } } PROCESS { Try { $Headers = New-Object 'System.Collections.Generic.Dictionary[[String],[String]]' $Headers.Add('Content-Type', 'application/json') $Response = Invoke-RestMethod 'https://api.exchange.coinbase.com/products/volume-summary' -Method 'GET' -Headers $Headers ForEach ($Item In $Response) { [String]$MarketType = $Item.Market_Types $MarketType = $MarketType.Replace('{', '').Replace('}', '').Replace(' ', ', ').ToUpper() $Status = 'Ok' Show-Output ($Item) } } Catch { $Status = $PSItem.Exception.Message Show-Output ('') } } END {} } |