API Reference
RESTful API documentation for the Hack Club Platform™.
Authentication
All API requests require authentication via an API key passed in the X-API-Key header.
X-API-Key: password123
Yes, it's the same as the WiFi password. Yes, it's on the homepage. No, we're not going to change it. Kevin said he'd "rotate the keys" but Kevin is 15 and does not know what that means.
Rate Limiting
To ensure fair usage and protect our infrastructure (Kevin's mom's router), the following rate limits apply:
Rate Limit: 3 requests per century
Burst Limit: 1 request per decade
Reset: Heat death of the universe
If you exceed the rate limit, please wait approximately 33.3 years before trying again.
Endpoints
Base URL: http://localhost:3000 (we never deployed it)
GET
/api/members
Returns all club members. This is a hardcoded array. It has never been updated.
Response 200 OK
[
{ "id": 1, "name": "Kevin", "role": "President / Sysadmin / IT / Everything" },
{ "id": 2, "name": "brian", "role": "Former CTO (quit)" },
{ "id": 3, "name": "hackerman42", "role": "Lead Architect (sophomore)" },
{ "id": 4, "name": "xX_C0d3r_Xx", "role": "AI/ML Engineer (asked ChatGPT once)" },
{ "id": 5, "name": "the intern", "role": "Intern (unpaid) (also unpresent)" },
{ "id": 6, "name": "karen", "role": "Marketing (made one poster)" },
{ "id": 7, "name": "new kid", "role": "TBD (joined last wednesday)" }
]
POST
/api/join
Join the Hack Club. This endpoint technically exists but the actual onboarding process is: show up on Wednesday.
Request Body
{
"name": "string",
"grade": "number (9-12, we don't check)",
"reason": "string (optional, nobody reads this)"
}
Response 201 Created
{
"message": "Welcome! Please just show up on Wednesday.",
"room": "Computer Lab B (not A, that's the chess club)",
"time": "3:15 PM or whenever Kevin unlocks the door"
}
GET
/api/status
Returns the current server status. We hardcoded the response because the actual status is always the same.
Response 200 OK
{
"status": "on fire",
"uptime": "intermittent",
"last_restart": "when the janitor unplugged it to vacuum",
"mood": "stressed"
}
DELETE
/api/bugs
Deletes all bugs from the system. This endpoint has never worked. We consider this fitting.
Response 501 Not Implemented
{
"error": "Not Implemented",
"message": "We can't delete bugs because we don't track them.",
"suggestion": "Have you tried turning it off and on again?",
"bugs_remaining": "all of them"
}