According to the docs (https://docs.0x.org/0x-swap-api/advanced-topics/slippage-protection#response-changes), when enableSlippageProtection is not false, the buyAmount & price returned will factor slippage in its routing. So, the buyAmount is the final amount of token that I will receive after the slippage has been considered and the expected slippage reduced. But in the next line it is mentioned that, the Final Expected Amount for the asset is calculated as (buyAmount * expectedSlippage ). The expected slippage is returned when the enableSlippageProtection is not false. This would mean that the buyAmount returned already considers the slippage.