DotHack
DotHack is AINative's hackathon operations platform. It provides a complete backend API for creating, managing, and running hackathons with AI-powered features like semantic search, smart judging recommendations, and real-time leaderboards.
Base URL
https://dothack.ainative.studio
API Documentation (Swagger): https://dothack.ainative.studio/v1/docs
Authentication
DotHack uses AINative Authentication. If you have an AINative account, you can use it immediately - no separate registration required.
Login with AINative credentials
curl -X POST https://dothack.ainative.studio/api/v1/auth/login \
-H "Content-Type: application/json" \
-d '{
"email": "you@example.com",
"password": "your-ainative-password"
}'
Response:
{
"tokens": {
"access_token": "eyJhbG...",
"refresh_token": "eyJhbG...",
"token_type": "bearer"
},
"user": {
"id": "user-uuid",
"email": "you@example.com",
"name": "Your Name"
}
}
Using your token
Include the access token in all subsequent requests:
curl https://dothack.ainative.studio/api/v1/hackathons \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
API Key authentication
For server-to-server integrations, use your AINative API key:
curl https://dothack.ainative.studio/api/v1/hackathons \
-H "X-API-Key: YOUR_AINATIVE_API_KEY"
Core Concepts
| Concept | Description |
|---|---|
| Hackathon | The main event entity with schedule, tracks, and prizes |
| Track | Categories within a hackathon (e.g., "AI/ML", "Web3") |
| Participant | A user with a role: organizer, builder, judge, or mentor |
| Team | Group of builders working on a submission |
| Submission | A team's project entry with files and metadata |
| Rubric | Scoring criteria used by judges |
| Prize | Awards for winning submissions |
API Modules
| Module | Endpoints | Description |
|---|---|---|
| Authentication | 3 | Login, refresh tokens, get current user |
| Hackathons | 4 | Create, read, update, list hackathons |
| Tracks | 5 | Manage hackathon categories |
| Prizes | 5 | Configure awards and prizes |
| Participants | 4 | Join hackathons, manage roles |
| Teams | 6 | Create teams, manage members |
| Submissions | 6 | Submit projects, upload files |
| Judging | 5 | Score submissions, view leaderboard |
| Search | 2 | Semantic search across hackathons |
| Dashboard | 4 | Role-based analytics dashboards |
| Analytics | 2 | Statistics and data export |
Quick Start
1. Login
# Get your access token
TOKEN=$(curl -s -X POST https://dothack.ainative.studio/api/v1/auth/login \
-H "Content-Type: application/json" \
-d '{"email":"you@example.com","password":"your-password"}' \
| jq -r '.tokens.access_token')
2. Create a hackathon
curl -X POST https://dothack.ainative.studio/api/v1/hackathons \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "AI Innovation Challenge 2026",
"description": "Build the future with AI",
"start_date": "2026-07-01T00:00:00Z",
"end_date": "2026-07-03T00:00:00Z",
"status": "DRAFT"
}'
3. Add tracks and prizes
# Add a track
curl -X POST https://dothack.ainative.studio/api/v1/hackathons/{hackathon_id}/tracks \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"name": "AI/ML", "description": "Machine learning and AI projects"}'
# Add a prize
curl -X POST https://dothack.ainative.studio/api/v1/hackathons/{hackathon_id}/prizes \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"name": "Grand Prize", "amount": 5000, "currency": "USD"}'
4. Participants join and build
# Join as a builder
curl -X POST https://dothack.ainative.studio/api/v1/hackathons/{hackathon_id}/join \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"role": "builder"}'
# Create a team
curl -X POST https://dothack.ainative.studio/api/v1/hackathons/{hackathon_id}/teams \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"name": "Team Awesome", "description": "We build cool things"}'
Tech Stack
- API: Python FastAPI
- Database: ZeroDB (tables, vectors, files, events)
- Auth: AINative Studio
- Search: Semantic search via ZeroDB Embeddings API
- Real-time: Go WebSocket service for live leaderboards
- Hosting: Railway