While the accepted answer provides info on the UI options, it does not address the API subquestion. Want to add two cents on that topic + ask if anyone can contribute further clarity. Hope my answer (and any followups) can help shed additional light on this topics, as this seems to be not clearly documented in the Salesforce developer documentation.
In my experience, programatically you get access to the full list of apps by doing a SOQL query (
SELECT Name FROM ConnectedApplication), but the result will lack a lot of details about each app, no info on permissions granted, app author, etc.
You can also lookup ConnectedApp elements via the Metadata SOAP API, but there the result will only include the apps you have created (third party apps and Salesforce internal apps are not listed). This API gives all the details about your created Connected Apps, but will not at all return all other kinds of Connected Apps. If anyone can point to where/if the other types of Connected Apps can be listed, using the Metadata API, I would appreciate to learn that bit.
The OP also mentioned the use of the REST API, but I am not aware of what call can be used there, would appreciate if the OP could elaborate with details there.
EDIT: To be precise, the Metadata SOAP API request for listing the ConnectedApps did in previous occasions return third party apps as well, but currently it does not (I have a dev account on Salesforce cloud). No clue why this changed recently (couple of days ago). Also no clue if this is just a problem on my instance or globally, nor which behaviour is the expected one for this API.