Web APIs hub

The Data and developer hub encourages third-party developers to access Wikimedia data sets and use our APIs. Wikimedia has developed a number of repositories of free and open datasets, and has made its APIs freely available. However, these APIs and their documentation are currently scattered across several projects, with no central location for people to learn about and build upon them. This is a new area of focus within the broad How to contribute ecosystem – these developers are not developing, or even running, the MediaWiki software – so the information will be presented separately from the accretion of information about MediaWiki hacking on mediawiki.org, possibly on a separate dev.wikimedia.org site.
 * Not for MediaWiki hackers

The prototype is at API:Data and developer hub. This is far from the final appearance, we want this to have a different appearance and navigation than other pages on mediawiki.org.

Goals

 * 1) To inspire developers everywhere to integrate Wikimedia data in their projects.
 * 2) To invite new and experienced developers to try Wikimedia APIs in a friendly environment.
 * 3) To become the central resource of Wikimedia API documentation.

See also the ongoing list of requirements (under discussion).

Areas of focus

 * Project showcase, examples
 * Sandbox & widgets
 * Data sets
 * OAuth
 * APIs
 * Documentation
 * Related news and announcements
 * Community Help

Get involved

 * Phabricator board where we're tracking tasks: tag/dev.wikimedia.org
 * IRC channel: irc://irc.freenode.net/wikimedia-ddh
 * Live notes: https://etherpad.wikimedia.org/p/wddh

Progress and plans
March 2015 we have a landing page and some articles.

In April we will:
 * write more articles (see /Contributing)
 * work on technical and design aspects to fulfill the . Your ideas and help are welcome (see the Get Involved section below).

Structure
https://github.com/jgonera/wddh has a non-MediaWiki implementation along these lines

The hub as currently proposed would be divided into three sections:
 * Inspire: where cool projects are showcased; links to more detailed project description pages
 * Explore: where users can play with the API(s) in functional sandboxes
 * Build: where all the static official documentation and pointers to data sets reside

Personas
These represent the users we want to make happy first (T92941)
 * Ankita, mobile developer willing to use Wikimedia data to enhance mobile apps.
 * Alberto, data scientist employed at an organization gathering and releasing data that could be synced with Wikimedia's.
 * Reetta, cultural activist working on mass-upload activities for public institutions.
 * Yanhui, academic researcher needing a massive data set to sustain his thesis.

Inspire

 * A curated collection of projects created using data from Wikimedia projects.
 * Means of submitting a project to be considered for showcase.

Build

 * Documentation at different technical levels.
 * An organized list of APIs and datasets available.

Community

 * Way of requesting new datasets and/or APIs.
 * Related news, features, and announcements.
 * A way for the community to get in touch with WMF folks for help on projects.

Technical infrastructure

 * Possibility to customize the UI in order to provide a pleasant user experience.
 * Possibility to create and edit content comfortably, including the homepage, tutorials, project showcases, code examples and screenshots.
 * Possibility to export API documentation from source code in repositories.
 * Possibility to integrate API sandboxes.
 * Possibility to search all the content at once.
 * Possibility to translate manual documentation (not the strict API docs)

Internal resources for developers
The following is a list of resources housed across multiple locations to help developers build using Wikimedia data. Feel free to add to the list below.

Documentation

 * https://www.mediawiki.org/wiki/API
 * /w/api.php output (self-documenting MediaWiki entry point on every wiki)
 * https://meta.wikimedia.org/wiki/Research:Data
 * https://meta.wikimedia.org/wiki/Research:Data#API
 * http://gdash.wikimedia.org/
 * https://www.mediawiki.org/wiki/How_to_contribute
 * https://www.mediawiki.org/wiki/API:Client_code/Gold_standard (best practices for web API client library development)
 * https://doc.wikimedia.org/ (automatically-generated PHP, JavaScript and CSS documentation)
 * generated CSS Living style guide documentation currently at http://tools.wmflabs.org/styleguide/
 * various text files and sample HTML in

API Sandbox

 * https://www.mediawiki.org/wiki/Extension:ApiSandbox
 * https://en.wikipedia.org/wiki/Special:ApiSandbox
 * https://www.wikidata.org/wiki/Special:ApiSandbox

Existing APIs

 * Recent changes stream ✅ Data and developer hub article
 * The MediaWiki web API. It's self-documenting (Special:APIHelp) and has a sandbox. Most Wikimedia APIs are implemented as API actions or query submodules of the MediaWiki web API, including:
 * Wikidata API
 * Echo API
 * Flow API
 * Upload API
 * Commons API (but also has a specialized API at https://tools.wmflabs.org/magnus-toolserver/commonsapi.php)
 * Mobile (content) API
 * GeoData API
 * RESTBase (new). It's self-documenting (enwiki starting point) with a built-in sandbox
 * Parsoid API


 * Language API (?)
 * Account Creation API (new?, was part of abandoned Extension:SignupAPI)

Other Internal(ish) Projects

 * http://stats.wikimedia.org/EN/TablesWikipediaEN.htm#editdistribution
 * http://infodisiac.com/
 * http://seealso.org/
 * API:Client code (third-party client libraries for the MediaWiki web API)
 * API:Client code/Evaluations Features, maintenance status, documentation.

Data Sets

 * https://www.quora.com/Data/Where-can-I-find-large-datasets-open-to-the-public (big list)
 * http://www.reddit.com/r/datasets (another big list)
 * https://www.google.com/publicdata/directory
 * http://www.findthedata.org/
 * http://www.data.gov/
 * http://data.gov.uk/
 * https://www.opensciencedatacloud.org/publicdata/
 * http://www.pewinternet.org/datasets/
 * https://nycopendata.socrata.com/
 * http://www.quandl.com/

Programmable Web

 * http://www.programmableweb.com/

Twitter

 * https://engineering.twitter.com/
 * http://twitter.github.io/
 * https://dev.twitter.com/
 * https://dev.twitter.com/docs
 * https://dev.twitter.com/docs/api/1.1
 * https://dev.twitter.com/docs/streaming-apis

Google

 * https://developers.google.com
 * https://developers.google.com/products/
 * https://developers.google.com/apis-explorer/
 * https://developers.google.com/oauthplayground/
 * https://developers.google.com/maps/
 * https://developers.google.com/maps/documentation/javascript/tutorial
 * https://developers.google.com/maps/documentation/javascript/examples/map-simple
 * https://www.google.com/drive/using-drive/

Facebook

 * https://developers.facebook.com/
 * https://developers.facebook.com/docs/
 * https://developers.facebook.com/docs/graph-api/
 * https://developers.facebook.com/docs/reference/apis/

Evernote

 * http://dev.evernote.com/
 * http://dev.evernote.com/doc/
 * http://dev.evernote.com/doc/reference/
 * http://dev.evernote.com/doc/articles/authentication.php

LinkedIn

 * https://developer.linkedin.com/
 * https://developer.linkedin.com/documents/authentication
 * https://developer.linkedin.com/rest

GitHub

 * http://developer.github.com/
 * http://developer.github.com/v3/
 * http://developer.github.com/guides/

Amazon

 * https://developer.amazon.com/
 * http://aws.amazon.com/
 * http://aws.amazon.com/documentation/

Dropbox

 * https://www.dropbox.com/developers
 * https://www.dropbox.com/developers/sync
 * https://www.dropbox.com/developers/datastore
 * https://www.dropbox.com/developers/core
 * https://www.dropbox.com/developers/dropins/chooser/js
 * https://www.dropbox.com/developers/dropins/saver

Instagram

 * http://instagram.com/developer/
 * http://instagram.com/developer/authentication/

Stripe

 * https://stripe.com/docs
 * https://stripe.com/docs/api/curl
 * https://readme.io may be based off this?

Paypal

 * https://developer.paypal.com/
 * https://developer.paypal.com/docs/
 * https://developer.paypal.com/docs/api/

Tumblr

 * http://developers.tumblr.com/
 * http://www.tumblr.com/docs/en/api/v2

Last.fm

 * http://www.last.fm/api
 * http://www.last.fm/api/intro

Twillio

 * https://www.twilio.com/
 * https://www.twilio.com/docs
 * https://www.twilio.com/docs/api
 * https://www.twilio.com/docs/quickstart

Vimeo

 * http://developer.vimeo.com/
 * http://developer.vimeo.com/apis
 * http://developer.vimeo.com/apis/simple

Pinterest

 * http://developers.pinterest.com/
 * http://developers.pinterest.com/api_docs/

The Guardian

 * Developer hub
 * API explorer/sandbox
 * App showcase

New York Times

 * Developer network
 * App gallery
 * API console/sandbox
 * API docs

Mendeley

 * Developer portal
 * API docs

Flickr

 * https://www.flickr.com/services/api/
 * https://www.flickr.com/services/developer/
 * https://www.flickr.com/services/apps/about/
 * https://www.flickr.com/services/apps/create/

Best in Class human readable API documentation
SoundCloud

LA Metro

Open Street Maps (writing style, but not layout or design)

Sandbox Examples

 * Swagger
 * Redis