An Application Programming Interface (API) is a set of calls that enable software to communicate with each other. APIs help developers to understand the correct way of calling a procedure and interfacing with the software and/or the Operating System. The format or syntax for calling these functions is provided in the developer documentation for the software and released as part of a Software Development Kit (SDK). Before delving into the API, it is important to be familiar with the Twitter Developer Policies and the OAuth authentication protocol before using it them in an app.
The Twitter API has four main objects −
The detailed documentation of each of these above-mentioned objects is available on the following link – https://dev.twitter.com/overview/api. This website is a huge repository of a lot of Twitter libraries containing code from Java to Objective-C, spanning almost all device form factors.
There are different APIs within Twitter which includes −
The most important of them being REST API and Streaming API. The REST API provides read and write access to Twitter data and supports most of the functionality when used along with OAuth. The Streaming API allows for real time streaming of public data in the user’s feed.
Each third-party client is provided with an API key that is unique to it. An important thing to note is that if the application is mimicking Twitter’s full functionality; the API allows only 100,000 tokens to be registered i.e. the third-party client can support only 100,000 registered users. This is done to ensure the quality of service by the API. This is also the reason why most of the thirdparty clients need to be purchased to use them.
It presents an interesting paradox as the core service and the official application themselves are free while most of the third-party clients need to be purchased. Due to the above-mentioned token limit, purchasing the applications ensures that only legitimate users access Twitter via the third-party application. The pricing is justified by adding a lot of additional and power user functionality which is often not found in the official web or mobile apps.