💻 ☕️ The unofficial http API for Major League Hacking events
As an example, visit https://mlh-events.now.sh/na-2019 to see all the North American 2019 hackathons.
mlh-events provides a GET
http endpoint which returns an array
. You can request any of the following endpoints at https://mlh-events.now.sh
:
/na-2019
/eu-2019
/na-2018
/eu-2018
/na-2017
/eu-2017
/s2016
/f2015
/s2015
/f2014
/s2014
/f2013
We've chosen JavaScript here since it's approachable and most folks can reason about it:
// print the full response
fetch('https://mlh-events.now.sh/na-2017')
.then(res => res.json())
.then(hackathons => console.log(hackathons));
// [
// {
// "name": "Hack the 6ix 2018",
// "url": "https://hackthe6ix.com/",
// "startDate": "2018-08-24",
// "endDate": "2018-08-26",
// "location": "Toronto,ON",
// "isHighSchool": false,
// "imageUrl": "https://s3.amazonaws.com/assets.mlh.io/events/splashes/000/000/909/thumb/Hackthe6ixcityBackground.jpg?1527782042"
// },
// {
// "name": "HackMTY",
// "url": "https://hackmty.com/",
// "startDate": "2018-08-25",
// "endDate": "2018-08-26",
// "location": "Monterrey,MX",
// "isHighSchool": false,
// "imageUrl": "https://s3.amazonaws.com/assets.mlh.io/events/splashes/000/000/910/thumb/HackMTYsplash-MLH.png?1527782154"
// },
// ...hundreds more hackathons
// ]
Here's an example counting the amount of high-school hackathons in North America's 2017 season:
// print the full response
fetch('https://mlh-events.now.sh/na-2017')
.then(res => res.json())
.then(hackathons => {
const highSchoolHackathons = hackathons.filter(hackathon => hackathon.isHighSchool);
console.log(`There were ${highSchoolHackathons.length} hackathons in "na-2017"`);
});
// There were 12 hackathons in "na-2017"
The API response is an array
of json object
's, where the schema is as follows:
Key | Value Type | Example |
---|---|---|
name |
string |
'HackCU III' |
url |
string |
'https://2017.hackcu.org' |
startDate |
string |
'2017-04-22' |
endDate |
string |
'2017-04-23' |
location |
string |
'Boulder,CO' |
isHighSchool |
boolean |
false |
image |
string |
'https://s3.amazonaws.com/assets.mlh.io/events/splashes/000/000/543/thumb/70991d078d30-hackcusplash.png?1479915080' |
For years, folks have made hacks to hack an API together from the MLH event page. This implementation is different because of several things.
-
The API performs caching daily, so the MLH page receives traffic only once per day, even if our endpoint is hit hundreds of times
-
The deployment url is static and will be there forever thanks to nowjs.
$ yarn
$ npm start
MIT © with ❤️ from Neeraj Aggarwal & Dawson Botsford