Twitter today announced plans to build “the next generation of the Twitter API” that will provide more flexibility and better serve developers. As a first step, the company is launching the Twitter Developer Labs program to let developers preview new features and test new API products before they are finalized. Participating developers will be asked to provide feedback on what they like and don’t like ahead of the broad rollout.
Twitter announced Twitter API version 1.1 in August 2012. The social network and what developers use it for have changed a lot since then. Twitter has added enterprise data APIs and the Ads API, but the main API has remained stale. Furthermore, Twitter has burned developers again and again.
The company now insists it wants to simply its services for developers, make them easier to use, and offer more features to more developers. That’s why Twitter’s first step is to launch the Twitter Developer Labs — so developers can test new API endpoints and be part of the process.
“We know that we have to rebuild trust with some groups of developers, and that we have to maintain trust with everybody building on our platform,” Twitter product manager Ian Cairns told VentureBeat. “And I think that the Labs program is a very clear, concrete example of how we intend to do that. By inviting them to give us feedback on what we’re building, and including their voices in the future of the platform.”
First new features
Twitter plans to “update significant portions of our existing API, and make some foundational changes like new data definitions and endpoint structures.” More specifically, the first new products that will be released in Labs are GET /tweets and GET /users.
After that, Twitter will release new versions of functionality to filter and search Tweets, and to get Tweet engagement and impression metrics. Some examples of early Labs functionality will include:
- Real time streaming and search access to Tweets. Filtering capabilities of the enterprise APIs will come to all developers in Labs.
- Addition of new Twitter features that weren’t supported by the API before, like Poll data.
- Tweet engaging and impression metrics previously available only through enterprise APIs will be available for developers to test in Labs.
“We believe developers help improve Twitter and strengthen the public conversation, and we want to help them succeed with their goals far into the future,” Cairns said in a statement. “Going forward, we want to make it easier for more developers to get started and grow with us, while continuing to provide a useful, open, and free API offering. We’re building the future of our developer platform with a diverse range of developers in mind.”
Diverse developers spans everyone from students to researchers. The program will initially focus on developers who work with conversational data. That includes academics who study Twitter, and analytics companies that build business products.
The Twitter API has been on version 1.1 for years even though it has undergone many changes. Twitter says it chose to maximize backwards compatibility and limit the changes developers had to make. While that allowed many applications to work for years without changes, it also resulted in increasing complexity and a few challenges. Those include deprecated fields and features, holding back new features, and API responses growing in size.
Twitter promises not only to address these challenges with a new Twitter API version, but to also develop a versioning strategy “that’s predictable and more responsive to the needs of our developer community.” That includes “a reasonable timeframe for developers to make any changes,” though the company didn’t commit to a specific amount of time.
Twitter chose path versioning (specify a version as part of the endpoint URL) over header versioning (make a versioned or unversioned call). The company says path versioning is widely adopted, easy to implement for developers, and it’s what Twitter already uses in its existing APIs. After launch, Twitter plans to make a major version change within its Labs program. Twitter will thus increment to a new Labs version after it incorporates developer feedback.
As for complexity, Twitter plans to formalize the behavior of its endpoints and adopt a consistent specification format. Twitter will use OpenAPI specifications to define and expose behavior for each new Labs endpoint. Because OpenAPI uses JSON Schema to specify response objects and data types, Twitter will take inspiration from there as well.
Join Twitter Developer Labs
Due to privacy concerns, anyone who wants to participate in Labs will have to go through Twitter’s developer registration process. That means they will “experience the same level of accountability as with our other public APIs.”
To get started, Twitter is asking developers to follow these steps:
- Visit the Labs page and sign up to receive updates.
- Create a developer account (if you haven’t yet). Access to Labs will require a developer account, even if you have an active app created through the former apps.twitter.com website.
- Review the Labs documentation to learn more about what’s coming (and follow (@TwitterDev).
- Share feedback.
Twitter will release the first endpoints to all eligible developers “in the coming weeks.” Since the endpoints coming to Labs are early previews, they may change before broad release — keep that in mind if you plan to build with them.