Is there a Craft API to talk to?
Yes, but it depends on what sort of API you're talking about and you'll need a Craft plugin no matter what.
At the PHP level, Craft has a service layer API that plugins can utilize.
If you're looking for a web service API where you can configure what gets exposed so that 3rd party apps can consume Craft data, there is the Element API plugin that works with any Craft elements (including plugin elements, like Orders, Products and Variants like in Commerce). Note that this is read-only and is not a REST API.
There currently isn't a native REST API in Craft, but feel free to add your comments to this feature request. It's also possible for a plugin to implement its own REST API using its own controller endpoints and authentication/authorization methods.
As far as consuming 3rd party web endpoints, Craft ships with Guzzle that a plugin can utilize, or it can use any other library it desires (or straight up cURL).