Web APIs hub

build.wikimedia.org aims to become a hub for developers and researchers interested in Wikimedia data and the APIs to interact with it.

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.

Currently we are developing a prototype. We are still discussing the technologies to be used in the final implementation, including the specific use of MediaWiki. Your ideas and help are welcome.

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 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

 * GitHub Repo: https://github.com/jgonera/wddh (temporary)
 * Prototype: http://juliuszgonera.com/wddh/ (temporary)
 * IRC channel: irc://irc.freenode.net/wikimedia-ddh
 * Live notes: https://etherpad.wikimedia.org/p/wddh
 * Phabricator board where we're tracking tasks: http://fab.wmflabs.org/project/board/60/

Structure
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 in a functional sandbox
 * "Build": where all the static official documentation and pointers to data sets reside

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)

See the discussion.

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

 * rcStream API (new)
 * Content API (new)
 * Echo API
 * Flow API
 * GeoData API
 * Parsoid API
 * Wikidata API
 * Upload API
 * Commons API


 * MediaWiki API
 * Mobile (content) API
 * Language API
 * Account Creation API (new)

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

 * http://developers.google.com
 * https://developers.google.com/products/
 * http://developers.google.com/apis-explorer/
 * https://developers.google.com/oauthplayground/
 * https://developers.google.com/maps/
 * http://www.google.com/drive/apps.html#fusiontables

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

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