Is there an Oracle rdbms monitoring API? We have about a thousand customers with our application installed out of which 500 have an oracle database.

Monitoring the database is only one of the requirements.

Installing Oracle Enterprise Manager will give me all the info I need for my databases but no information for the other important metrics (we got some synchronization going on through database link) and a number of process which should be up and running outside of the db.

So my question boils down to this: Is there an oracle rdbms API I could use to integrate the oracle metrics we need in our monitoring tool?
All of the internal database information is obtained from the system data dictionary.  Static metadata can be found in the data dictionary views (e.g. DBA_DB_LINKS for database links) or their underlying tables (obj$ etc.).  Runtime stats can be obtained through the dynamic system ('v$') views (e.g. V$DBLINK).  You may need to look at the documentation for the views to find out how to get the metrics you want.  A bit of google-fu may also turn up code snippets showing how to use the views.

Anything external to the database will have to be monitored through its own logging or diagnostic facilities.  Again, I can't really answer specifics without knowing what processes you actually need to monitor.

Enterprise Manager has a plug-in API which you can use to add external data feeds.  This page has links to the documentation describing how to do this.