There is an API which can give this which is not yet published on Open Data. Can I ask what you’re trying to achieve by doing this?
Just a small caveat for this is that you will very likely get a lot more lines/services than you (or a customer) would reasonably expect, as there will almost always be services which show up at a stop (say) once a day or once a week which may seem a bit abnormal. e.g. the T2 stopping at Canterbury station, which is normally only serviced by the T3, or the T7 stopping at Central Station due to special events.