Skip to main content

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

ConceptDescription
HackathonThe main event entity with schedule, tracks, and prizes
TrackCategories within a hackathon (e.g., "AI/ML", "Web3")
ParticipantA user with a role: organizer, builder, judge, or mentor
TeamGroup of builders working on a submission
SubmissionA team's project entry with files and metadata
RubricScoring criteria used by judges
PrizeAwards for winning submissions

API Modules

ModuleEndpointsDescription
Authentication3Login, refresh tokens, get current user
Hackathons4Create, read, update, list hackathons
Tracks5Manage hackathon categories
Prizes5Configure awards and prizes
Participants4Join hackathons, manage roles
Teams6Create teams, manage members
Submissions6Submit projects, upload files
Judging5Score submissions, view leaderboard
Search2Semantic search across hackathons
Dashboard4Role-based analytics dashboards
Analytics2Statistics 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