All admin endpoints require authentication with an admin role.
Get System Settings
Retrieve current system settings.
Endpoint
curl -X GET 'https://api.ceboelha.com/admin/settings' \
-H 'Authorization: Bearer YOUR_ADMIN_TOKEN' \
-H 'Content-Type: application/json'
Response
Indicates if the request was successful
System settings object
Maintenance mode settings
Whether maintenance mode is active
Message to display during maintenance
Estimated end time (ISO 8601)
Feature flags
Enable/disable achievements feature
Enable/disable news and articles
Enable/disable social features
Enable/disable AI-powered insights
System limits and quotas
max_diary_entries_per_day
Maximum diary entries per user per day
Maximum foods per meal entry
Maximum file upload size in MB
Notification settings
Whether email notifications are enabled
Whether push notifications are enabled
ISO 8601 timestamp of last update
Response Example
{
"success": true,
"data": {
"maintenance": {
"enabled": false,
"message": "System maintenance in progress. We'll be back soon!",
"estimatedEnd": null
},
"features": {
"achievements": true,
"news": true,
"social": false,
"ai_insights": true
},
"limits": {
"max_diary_entries_per_day": 20,
"max_foods_per_meal": 30,
"max_file_upload_size_mb": 5
},
"notifications": {
"email_enabled": true,
"push_enabled": true
},
"updatedAt": "2024-03-01T10:00:00Z"
}
}
Update System Settings
Update system settings (partial update supported).
Endpoint
curl -X PATCH 'https://api.ceboelha.com/admin/settings' \
-H 'Authorization: Bearer YOUR_ADMIN_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"maintenance": {
"enabled": true,
"message": "Scheduled maintenance from 2-4 AM UTC",
"estimatedEnd": "2024-03-02T04:00:00Z"
},
"features": {
"social": true
}
}'
Request Body
All fields are optional. Only include settings you want to update. Nested objects are merged.
Maintenance mode settings
Enable/disable maintenance mode
Message to display during maintenance
Estimated end time (ISO 8601 format)
Feature flags
Enable/disable achievements
Enable/disable news articles
Enable/disable social features
Enable/disable AI insights
System limits
max_diary_entries_per_day
Maximum diary entries per user per day
Maximum file upload size in MB
Notification settings
Enable/disable email notifications
Enable/disable push notifications
Response
Indicates if the request was successful
Updated system settings object
Response Example
{
"success": true,
"data": {
"maintenance": {
"enabled": true,
"message": "Scheduled maintenance from 2-4 AM UTC",
"estimatedEnd": "2024-03-02T04:00:00Z"
},
"features": {
"achievements": true,
"news": true,
"social": true,
"ai_insights": true
},
"limits": {
"max_diary_entries_per_day": 20,
"max_foods_per_meal": 30,
"max_file_upload_size_mb": 5
},
"notifications": {
"email_enabled": true,
"push_enabled": true
},
"updatedAt": "2024-03-01T15:30:00Z"
}
}
Maintenance Mode
When maintenance mode is enabled:
- All non-admin users receive a
503 Service Unavailable response
- The maintenance message is displayed to users
- Admin users can still access all endpoints
- The system automatically disables maintenance mode after
estimatedEnd time (if set)
Maintenance Response Example
{
"success": false,
"error": {
"code": "MAINTENANCE",
"message": "Scheduled maintenance from 2-4 AM UTC",
"estimatedEnd": "2024-03-02T04:00:00Z"
}
}
Feature Flags
Disabling features will:
- achievements: Hide achievements section, stop tracking progress
- news: Hide news/articles section from users
- social: Disable social features (likes, comments, etc.)
- ai_insights: Disable AI-powered insights and recommendations
Notes
- Settings changes are logged in the activity log
- Maintenance mode changes take effect immediately
- Feature flag changes may require users to refresh their app
- Limit changes are validated and enforced on next request
- Only admins can view and modify system settings