Have a look at the Invoke-Credential help. The "Credential" parameter is a named parameter and the cmdlet does not accept pipelined input for it.
This should accomplish what you're trying to do:
Invoke-WebRequest -Credential (Get-Credential) -Uri https://api.tidepool.org/auth/login -Method Post
I think this, too, will work (the credential is passed as an object and the object has a property named 'credential' (which matches the name of the cmdlets parameter) with an appropriate value.
[PSCustomObject]@{Credential = (Get-Credential)} | Invoke-WebRequest -Uri https://api.tidepool.org/auth/login -Method Post