I think I have finally cracked it. For those that stumble across this thread.
rest_listen_uri = http://0.0.0.0:12900/
rest_transport_uri = http://externalip:12900/
web_listen_uri = http://127.0.0.1:9000/
As Jochen mentioned the GrayLog server in this case needs to access itself via Public IP in this case. As I am working with an EC2 I set an inbound rule on port 12900 from the servers own external source IP.
Now test locally from the servers commandline:
Finally - login to GrayLog > System > Nodes > API browser - working!