U-Watch API Documentation

API Endpoints

User Profiles

POST /api/users

Create or update a user profile

Required fields: userId

Optional fields: name, sex, age, height, weight, medications

GET /api/users?userId=123

Retrieve a user profile by userId

Health Data

POST /api/health-data

Store health data for a user

Required fields: userId

Optional fields: timestamp, heartRate, oxygenSaturation, activityLevel, steps, distance, caloriesBurned, bloodPressureSystolic, bloodPressureDiastolic, bodyTemperature, environmentType, motionType, locationName

GET /api/health-data?userId=123&limit=10

Retrieve health data for a user

Menstrual Tracking

POST /api/menstrual-data

Store menstrual tracking data for a user

Required fields: userId

Optional fields: cycleDate, flowLevel, symptoms, mood, notes

GET /api/menstrual-data?userId=123&limit=10

Retrieve menstrual tracking data for a user

Questionnaire Data

POST /api/questionnaire-data

Store questionnaire responses for a user

Required fields: userId

Optional fields: timestamp, energyLevel, stressLevel, sleepQuality, headache, musclePain, dizziness, nausea, notes

GET /api/questionnaire-data?userId=123&limit=10

Retrieve questionnaire responses for a user

Offline Sync

POST /api/sync

Synchronize offline data

Required fields: userId, queueItems (array of {tableName, data} objects)

Authentication

This API uses simple API key authentication.

Include your API key in the request headers:

X-API-Key: your-api-key-here

Error Handling

All endpoints return JSON responses with the following structure:

// Success response
{
  "success": true,
  "data": [...]
}

// Error response
{
  "error": "Error message"
}