API Reference
Welcome to the Eli Health API Reference documentation. This section provides comprehensive documentation of the metadata structures used throughout the Eli Health platform.
Metadata Architecture
The Eli Health platform uses a hybrid storage approach for health measurement data:
Structured Data (Database Columns)
- id: Unique identifier
- type: Record type classification
- userId: User association
- created/updated: Audit timestamps
Flexible Metadata (JSON)
All measurement-specific data is stored in a flexible JSON metadata field:
- Hormone measurements and classifications
- Health scores and interpretations
- Personalized recommendations
- Time-based data (start/end dates, wake times)
- Associated tags and context
Known Issues
The system currently has a confusing pattern where some fields exist in both database columns AND JSON metadata:
startDate/endDatevalue
This requires fallback logic throughout the codebase:
const startDate = record?.metadata?.startDate || record?.startDate;
We are working to standardize this to a single source of truth.
Available APIs
View Interactive API Documentation →
Complete OpenAPI 3.0 specification documenting:
- Record metadata structures for all measurement types
- Reading history endpoints with metadata
- Hormone-specific metadata fields
- Heart rate and other measurement types
Data Access Patterns
Direct API Access
For authenticated users with appropriate permissions:
- Query records with full metadata
- Filter by date ranges and measurement types
- Access personalized health interpretations
BigQuery Access
For analytics and reporting:
- Real-time replicated data from PostgreSQL
- Full record table with metadata JSON
- Requires specific IAM permissions
KPI Service (Recommended)
For most analytics users:
- Curated, aggregated views
- Built-in privacy controls
- No direct database access required
Security Considerations
All metadata fields contain sensitive health information:
- Hormone values and classifications
- Personal health interpretations
- Medical recommendations
Access to these APIs requires:
- Proper authentication (Firebase Auth + JWT)
- Role-based permissions
- Audit logging for compliance
Integration Guidelines
When integrating with Eli Health APIs:
- Use metadata as primary source - Don't rely on column data that may be deprecated
- Handle both patterns - Until standardization is complete, check both locations for data
- Validate data types - Metadata structure varies by record type
- Respect rate limits - APIs are rate-limited for system stability
Support
For API support or questions:
- Technical issues: engineering@eli.health
- Documentation feedback: Create an issue on GitHub