Tenant model
project_id is the tenant boundary for the API. User IDs are supplied by your integration and must be unique within that project.
Main resource families
| Resource | What it represents | Example routes |
|---|---|---|
users | The root record for a person in your ONVY project | POST /users, GET /users/{user_id} |
baselines | Stable user-specific baselines used for personalization | GET /users/{user_id}/baselines |
daily_records | Harmonized daily scores, zones, and logs | GET /users/{user_id}/daily_records/{type} |
facts | Long-term profile and context facts used for AI personalization | GET /users/{user_id}/facts |
activities | Workouts and mindfulness sessions | GET /users/{user_id}/activities |
ai_summaries | Generated summaries, including meal-related outputs | GET /users/{user_id}/ai/summaries |
custom_records | Customer-defined records and record types | GET /users/{user_id}/custom_records |
meals | Nutrition entries and AI meal analysis inputs | GET /users/{user_id}/nutrition/meals |
chat completions | User-scoped conversational AI interactions | POST /users/{user_id}/chat/completions |
Pagination contract
List responses include apagination object:
Rules
- Treat
pageandnext_pageas opaque tokens. - Pass
page={next_page}to request the next result window. - Do not decode or mutate the token client-side.
limitdefaults and maximums can vary by route. Check the endpoint reference.
Naming conventions
- JSON fields use
snake_case - Enums use
PascalCase - Providers use
CAPITALCASE - ONVY-managed IDs are prefixed by type, for example
proj_,score_, orrecmd_