I am working on a small device to display arrival information for stops. So far I have been testing with my raspberry pi and python, but due to size & power I switched to the esp8266 module with arduino. I have been able to use other APIs with the code sample provided below, but don’t get a response when changing the host and URI to work with TfL.

This is very true. However, in general the HTTPS implementation on the ESP8266 is very poor and doesn’t include all the latest protocols and such.

You might be better proxying it through your own (HTTP) server - this has a further benefit in that you can strip down the verbose TfL API JSON into something a little more suitable for such a tiny chip - They’ll eat power if you’re not careful and you want to spend as little time on WiFi/Processing as you can! (Also JSON and C aren’t necessarily the easiest of bed fellows)

The best option might be to use the ESP8266 purely for WiFi, and put it into deep sleep between uses, and then use a low powered chip such as the AT Tiny 85 to power the display or whatever you are planning to do to use this data.