Mycelium Cloud provides comprehensive REST APIs for all cluster management operations.
The Backend APIs are built with Go and provide endpoints for:
- Authentication & Authorization
- Cluster Management
- Deployment Operations
- User Management
- Billing & Resource Tracking
- Monitoring & Metrics
- Development:
http://localhost:8080 - Production: Configure in your deployment
- Cluster API - Cluster operations
- Deployment API - Deployment management
- User API - User operations
- Billing API - Billing information
- Metrics API - Monitoring metrics
Swagger/OpenAPI specifications are available in backend/docs/swagger/
When running locally:
http://localhost:8080/swagger-ui.html
All API requests require authentication via:
- Bearer Token: Include in Authorization header
Authorization: Bearer <token> - API Key: Include in X-API-Key header
X-API-Key: <api-key>
All requests use JSON format:
curl -X POST http://localhost:8080/api/v1/clusters \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"name": "my-cluster"
}'Successful responses (2xx):
{
"success": true,
"data": { ... },
"message": "Operation successful"
}Error responses (4xx, 5xx):
{
"success": false,
"error": "Error description",
"code": "ERROR_CODE"
}API requests are rate-limited per authenticated user:
- Rate Limit: 1000 requests per hour
- Headers:
X-RateLimit-Limit: 1000 X-RateLimit-Remaining: 999 X-RateLimit-Reset: 1234567890
List endpoints support pagination:
GET /api/v1/clusters?page=1&limit=20Response:
{
"success": true,
"data": [...],
"pagination": {
"page": 1,
"limit": 20,
"total": 100,
"pages": 5
}
}| Code | Status | Description |
|---|---|---|
| 200 | OK | Request successful |
| 201 | Created | Resource created |
| 400 | Bad Request | Invalid request |
| 401 | Unauthorized | Auth required |
| 403 | Forbidden | Not authorized |
| 404 | Not Found | Resource not found |
| 429 | Too Many Requests | Rate limited |
| 500 | Server Error | Internal error |
GET /healthGET /metricsGET /api/v1For integration with your applications, client libraries are available:
curl -X POST http://localhost:8080/api/v1/clusters \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "production-cluster",
"nodes": 3
}'curl http://localhost:8080/api/v1/clusters/cluster-id \
-H "Authorization: Bearer $TOKEN"curl http://localhost:8080/api/v1/clusters \
-H "Authorization: Bearer $TOKEN"Setup webhooks to receive notifications about cluster events:
POST /api/v1/webhooks
{
"url": "https://your-domain.com/webhook",
"events": ["cluster.created", "cluster.deleted"]
}Current API version: v1
We maintain backward compatibility within major versions. Breaking changes are announced in release notes.
- Backend source code:
backend/docs/ - API specifications:
backend/docs/swagger/ - API tests:
backend/tests/