I'm developing an application with a similar idea to something like hotels.com or yell.com - i.e., each 'business' has it's own page:

For example www.website.com/companies/contoso-13443

So, Contoso would have a log in to the back end system.
One of the options would be 'View page analytics'
So in here, i'd like to display how many visits (and maybe a couple of other bits from the data available on google analytics) that particular page has had.

Is there a way of doing this using the Google Analytics API?

ie- set it up on my whole site,
Then allow the logged in site to access a tiny subset (via api, so i can style it / present it in a different format etc…)

Yes - use custom variables. You will have to modify the GA tracking code and add this in based on the customer's pages. If you are looking for a solution without having to learn the GA API, check out embeddedanalytics.com. We have done this with many CMS providers. (if you are interested - inquire via email).