To provide an API means that you are providing a(n) server-side endpoint that your application, or a programmer, can hit with some sort of request (typically a HTTP request).
How you implement that is up to you. Most people these days try to provide some sort of HTTP endpoint that has a well-structured URL scheme (i.e. www.mysite.com/users/statistics) that, depending on the HTTP operation you are trying to perform, will behave differently. This is typically known as a RESTful API (what is and isn’t considered RESTful is always a hot topic for debate, but it is what people call these types of APIs). Check out http://www.ibm.com/developerworks/webservices/library/ws-restful/ for a good intro to this.
To answers your questions directly:
- You are able to control who can use your API, and how often they can use it.
- Technically, yes, things hitting your backend service will be considered API calls.
- You will need to describe your current architecture before anyone can give a decent comment as to what you will need to do to “provide” an API.
- There are a multitude of things you can do to control access to an API – ranging from basic authentication, through to issuing API keys/tokens. Take a look at http://www.slideshare.net/rnewton/making-sense-of-api-access-control for a decent explanation.
Hope that helps!
solved What does it mean to provide an API