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