Clubmate API Documentation

RESTful API for integrating with Clubmate volleyball management platform

Base URL

Production: https://api.clubmatevolleyball.com

All API endpoints are prefixed with /api

Authentication

Most endpoints require authentication using a JWT token in the Authorization header:

Authorization: Bearer {your_jwt_token}

Obtain a token by logging in via POST /api/auth/login

Authentication Routes

POST /api/auth/login
Auth Required: No Description: User login
Request Body:
{
  "email": "user@example.com",
  "password": "yourpassword"
}

Response:
{
  "success": true,
  "token": "jwt_token_here",
  "user": { ... }
}
POST /api/auth/change-password
Auth Required: Yes Description: Change user password
POST /api/auth/register
Auth Required: No Description: Register new user

Health Check

GET /api/health
Auth Required: No Description: API health check
Response:
{
  "success": true,
  "message": "API is running"
}

Club Data Routes

All club-specific routes require authentication and access to the specified club.

GET /api/clubs/:clubId/dashboard
Auth Required: Yes Description: Get dashboard data
GET /api/clubs/:clubId/members
Auth Required: Yes Description: Get all members
POST /api/clubs/:clubId/members
Auth Required: Yes Description: Create new member
GET /api/clubs/:clubId/teams
Auth Required: Yes Description: Get all teams
GET /api/clubs/:clubId/matches
Auth Required: Yes Description: Get matches/fixtures

Financial Routes

GET /api/clubs/:clubId/payments
Auth Required: Yes Description: Get payments
GET /api/clubs/:clubId/payments/stats
Auth Required: Yes Description: Get payment statistics

Error Responses

All endpoints may return the following error responses:

401 Unauthorized:
{
  "error": "Unauthorized",
  "message": "Invalid or expired token"
}

403 Forbidden:
{
  "error": "Forbidden",
  "message": "Access denied"
}

404 Not Found:
{
  "error": "Not Found",
  "message": "Resource not found"
}

500 Internal Server Error:
{
  "error": "Internal server error",
  "message": "Error details"
}

Rate Limiting

API requests are rate-limited to ensure fair usage. Current limits:

  • 100 requests per minute per IP address
  • 1000 requests per hour per authenticated user

Rate limit headers are included in all responses:

X-RateLimit-Limit: 100
X-RateLimit-Remaining: 95
X-RateLimit-Reset: 1640995200

Support

For API support, questions, or to request API access: