Smart contracts need to be completely deterministic to ensure that all nodes in a network execute the same code. Therefore, by design mainstream blockchains, such as Ethereum, does not support input of data from non-deterministic sources such as APIs or websites, as with each API call at different times, the input data retrieved could be different.