A Chainlink alternative? How APIs work in Web3