Things every developer should know
There are different API families
The standard (free) Twitter APIs consist of REST APIs and Streaming APIs.
The enterprise (paid subscription) APIs include filtered firehose, historical search and engagement APIs for deeper data analytics, listening and other enterprise business applications.
The premium (pay as you go) APIs consist of reliable and affordable versions of enterprise APIs, allowing your business to grow with your usage.
Additionally, there are some families of APIs (such as the Ads API) which require applications to be whitelisted in order to make use of them.
The API aims to be a RESTful resource
With the exception of the Streaming API and Account Activity webhooks, the Twitter API endpoints attempt to conform to many of the design principles of Representational State Transfer (REST). Twitter APIs use the JSON data format for responses (and in some cases, for requests).
The API is HTTP-based
Most methods to retrieve data from the Twitter API require a GET request. Methods that submit, change or destroy data require a POST. A DELETE request is also accepted for methods that destroy data. API methods that require a particular HTTP method will return an error if not invoked using the correct style. HTTP Response Codes are meaningful.
All connections must be made over TLS 1.2.
There are limits to how many calls and changes can be made in a day
Parameters have certain expectations
Some API methods take optional, or required, parameters. Keep in mind when making requests with parameters:
- Parameter values should be converted to UTF-8 and URL encoded.
- The page parameter begins at 1, not 0.
Where noted, some API methods will return different results based on HTTP headers sent by the client. Where the same behavior can be controlled by both a parameter and an HTTP header, the parameter will take precedence.
There are pagination limits
Clients may access a theoretical maximum of 3,200 statuses via the page and count parameters for the user_timeline REST API methods. Other timeline methods have a theoretical maximum of 800 statuses. Requests for more than the limit will result in a reply with a status code of 200 and an empty result in the format requested. Twitter still maintains a database of all the Tweets sent by a user; however, to ensure performance, a limit is in place on the API calls.
There are Twitter API libraries for almost any language