Table of Contents
Overview
We also make it easy for you to obtain a snapshot of Current cohort data. On the “User Data” section of your Cohort’s page (the same page where you can manage Participations), you will find a list of files. The most recent file is at the top of the list. If the list is empty or outdated, you may enqueue the creation of a new file with the “Refresh CSVs” button. You may generate as many snapshots as you like, but we enforce a 2-hour wait between consecutive dumps.
File Structure
A CSV data dump contains multiple files that work together to represent the complete dataset:
annotation_items.csv: Individual food items within annotationsannotations.csv: Collections of annotation items linked to dishescohorts.csv: Groups of userscomments.csv: User, collaborator, chatbot and system comments on dishesdishes.csv: User meal recordsfood_lists.csv: Collections of foodsfood_nutrients.csv: Nutrient information for foodsfoods.csv: Individual food itemsinfo.txt: Database metadataintakes.csv: User meal consumption recordsnutrients.csv: Nutrient definitionsorganizations.csv: Organization owning the cohortparticipations.csv: User-cohort associationsproduct_nutrients.csv: Nutrient information for productsproducts.csv: Product informationusers.csv: User information
Data Relationships
The data is organized in a relational structure where:
- Users belong to cohorts through participations
- Users create dishes
- Dishes are linked to annotations
- Annotations contain annotation items
- Annotation items reference either foods or products
- Foods belong to food lists
- Both foods and products have associated nutrients
For a more detailed description of each object and their role see the Glossary.
File Descriptions
Columns marked as legacy are deprecated and will be removed in future version of data exports.
Columns marked as internal use are not intended to be used by collaborators and might be removed in future version of data exports.
annotation_items.csv
An annotation item is a single item in an annotation. It can be a food, a product, and it has a consumed quantity and unit of measure (either grams or ml).
Columns
| Column | Type | Description | Notes |
|---|---|---|---|
| id | uuid | Unique identifier | Primary key |
| consumed_quantity | decimal | Quantity in grams or ml | |
| consumed_unit_id | string | ID of the unit of measure | Foreign key (e.g., g) |
| created_at | datetime | Creation timestamp | |
| updated_at | datetime | Last update timestamp | |
| annotation_id | uuid | Associated annotation ID | Foreign key |
| food_id | uuid | Associated food ID | Foreign key, optional |
| product_id | uuid | Associated product ID | Foreign key, optional |
| consumed_kcal | decimal | Calculated kcal | |
| name_from_ai_* | text | AI-detected name | Available in en, fr, de, nl |
| name_from_user_* | text | User-provided name | Available in en, fr, de, nl |
| properties_* | text | AI-detected properties | Available in en, fr, de, nl |
annotations.csv
An annotation is a collection of annotation items. It also links a dish to a participation.
Columns
| Column | Type | Description | Notes |
|---|---|---|---|
| id | uuid | Unique identifier | Primary key |
| dish_id | uuid | Associated dish ID | Foreign key |
| created_at | datetime | Creation timestamp | |
| updated_at | datetime | Last update timestamp | |
| status | text | Annotation status | See status values below |
| participation_id | uuid | Associated participation ID | Foreign key |
| favorited_at | datetime | When the annotation was favorited | Null if not favorited |
| parent_annotation_id | uuid | Parent annotation in a “Quick pick” | Foreign key, optional |
Status Values
initial: Initial state when annotation is createdawaiting_segmentation_service: Awaiting segmentation serviceawaiting_llm_service: Awaiting LLM serviceannotatable: Annotatableinfo_asked: Info asked by collaborator to the userrequires_human_intervention: Requires collaborator intervention for annotationannotated: Manually annotated by collaborator
cohorts.csv
A cohort is a group of users.
Columns
| Column | Type | Description | Notes |
|---|---|---|---|
| id | uuid | Unique identifier | Primary key |
| name | text | Cohort name | |
| info | text | Cohort description | |
| public | boolean | Whether the cohort is open | Used for trial cohorts |
| created_at | datetime | Creation timestamp | |
| updated_at | datetime | Last update timestamp | |
| organization_id | uuid | Associated organization ID | Foreign key, internal use |
comments.csv
A comment is associated with a dish and can be posted either by a user, a collaborator, the chatbot, or the system. Comments sent by the system are either welcome messages or kcal verification requests (when dish analysis reported a kcal sum higher that threshold).
Columns
| Column | Type | Description | Notes |
|---|---|---|---|
| id | uuid | Unique identifier | Primary key |
| message | text | Comment content | |
| user_id | uuid | Associated user ID | Foreign key, optional |
| collaborator_id | uuid | Associated collaborator ID | Foreign key, optional |
| created_at | datetime | Creation timestamp | |
| updated_at | datetime | Last update timestamp | |
| silent | boolean | Whether comment is silent | No notification sent to the user |
| annotation_id | uuid | Associated annotation ID | Foreign key |
| bot | boolean | Whether from chatbot | |
| welcome | boolean | Whether welcome message | |
| kcal_verification | boolean | Whether kcal verification request | |
| llm_content_policy_violation_at | datetime | Set when comment violated LLM policy | Null otherwise; internal use |
dishes.csv
A dish is a meal consumed by a user, it can be associated with an image or described by text.
Columns
| Column | Type | Description | Notes |
|---|---|---|---|
| id | uuid | Unique identifier | Primary key |
| user_id | uuid | Associated user ID | Foreign key |
| created_at | datetime | Creation timestamp | |
| updated_at | datetime | Last update timestamp | |
| description | text | Text description | Used when no image for dish captured as text |
| llm_content_policy_violation_at | datetime | Set when content violated policy | Null otherwise; internal use |
food_lists.csv
A food list is a collection of foods.
Columns
| Column | Type | Description | Notes |
|---|---|---|---|
| id | uuid | Unique identifier | Primary key |
| country_id | string | Associated country code | Foreign key (e.g., ch, fr) |
| name | text | Food list name | |
| source | text | Data source | |
| version | text | Version number | |
| metadata | json | Additional metadata | |
| editable | boolean | Whether list is editable | Official lists are not editable |
| created_at | datetime | Creation timestamp | |
| updated_at | datetime | Last update timestamp | |
| cname | text | Canonical name | Internal use |
| retired_at | datetime | Retirement date | Null if active |
food_nutrients.csv
A food nutrient is a nutrient associated with a food.
Columns
| Column | Type | Description | Notes |
|---|---|---|---|
| id | uuid | Unique identifier | Primary key |
| food_id | uuid | Associated food ID | Foreign key |
| nutrient_id | string | Associated nutrient ID | Foreign key (e.g., energy_kcal) |
| per_hundred | decimal | Quantity per 100 grams or ml | |
| created_at | datetime | Creation timestamp | |
| updated_at | datetime | Last update timestamp |
foods.csv
A food is a single item in a food list.
Columns
| Column | Type | Description | Notes |
|---|---|---|---|
| id | uuid | Unique identifier | Primary key |
| unit_id | string | Associated unit ID | Foreign key (e.g., g, ml) |
| fa_ps_ratio | decimal | FA/PS ratio | |
| id_v1 | integer | Previous version ID | Legacy |
| created_at | datetime | Creation timestamp | |
| updated_at | datetime | Last update timestamp | |
| portion_quantity | decimal | Standard portion size | |
| food_list_id | uuid | Associated food list ID | Foreign key |
| metadata | json | Additional metadata | |
| properties | json | AI-generated properties | |
| name_* | text | Food name | Available in en, fr, de, nl |
info.txt
A text file containing information about the database.
Content
- Cohort: name of the cohort
- Source: name of the source of the data
- Author: name of the author of the data
- Generated: date and time of the export
intakes.csv
An intake is a single intake of a dish by a user. It records the date and time of consumption, the timezone, and the associated annotation.
Columns
| Column | Type | Description | Notes |
|---|---|---|---|
| id | uuid | Unique identifier | Primary key |
| consumed_at | datetime | Consumption timestamp | |
| timezone | text | Timezone | |
| created_at | datetime | Creation timestamp | |
| updated_at | datetime | Last update timestamp | |
| annotation_id | uuid | Associated annotation ID | Foreign key |
nutrients.csv
A nutrient is a component of food that can be measured.
Columns
| Column | Type | Description | Notes |
|---|---|---|---|
| id | string | Unique identifier | Primary key (e.g., energy_kcal) |
| unit_id | string | Associated unit ID | Foreign key (e.g., g, mg, kcal) |
| created_at | datetime | Creation timestamp | |
| updated_at | datetime | Last update timestamp | |
| name_* | text | Nutrient name | Available in en, fr, de, nl |
organizations.csv
An organization owns one or more cohorts.
Columns
| Column | Type | Description | Notes |
|---|---|---|---|
| id | uuid | Unique identifier | Primary key |
| name | text | Organization name | |
| address | text | Postal address | |
| main_collaborator_id | uuid | Main collaborator | Foreign key, internal use |
| created_at | datetime | Creation timestamp | |
| updated_at | datetime | Last update timestamp |
participations.csv
A participation associates a user to a cohort.
Columns
| Column | Type | Description | Notes |
|---|---|---|---|
| id | uuid | Unique identifier | Primary key |
| user_id | uuid | Associated user ID | Foreign key, null until joined |
| cohort_id | uuid | Associated cohort ID | Foreign key |
| key | text | Mobile app access key | |
| created_at | datetime | Creation timestamp | |
| updated_at | datetime | Last update timestamp | |
| associated_at | datetime | User association date | |
| started_at | datetime | Validity start date | |
| ended_at | datetime | Validity end date |
product_nutrients.csv
A product nutrient is a nutrient associated with a product.
Columns
| Column | Type | Description | Notes |
|---|---|---|---|
| id | uuid | Unique identifier | Primary key |
| product_id | uuid | Associated product ID | Foreign key |
| nutrient_id | string | Associated nutrient ID | Foreign key (e.g., energy_kcal) |
| per_hundred | decimal | Quantity per 100 grams or ml | |
| created_at | datetime | Creation timestamp | |
| updated_at | datetime | Last update timestamp |
products.csv
A product is a packaged food item with a barcode.
Columns
| Column | Type | Description | Notes |
|---|---|---|---|
| id | uuid | Unique identifier | Primary key |
| barcode | text | Product barcode | |
| created_at | datetime | Creation timestamp | |
| updated_at | datetime | Last update timestamp | |
| fetched_at | datetime | Last source update timestamp | |
| image_url | text | Product image URL | |
| unit_id | string | Associated unit ID | Foreign key (e.g., g, ml) |
| portion_quantity | decimal | Standard portion size | |
| source | text | Data source | |
| status | text | Product status | See status values below |
| name_* | text | Product name | Available in en, fr, de, nl |
Status Values
initial: Initial state when product is createdcomplete: All data is availableincomplete: Some data is missing
users.csv
A user is a user of the app.
Authentication-related columns (email, encrypted password, reset and unlock tokens, auth tokens, provider, etc.) are deliberately excluded from the dump.
Columns
| Column | Type | Description | Notes |
|---|---|---|---|
| id | uuid | Unique identifier | Primary key |
| created_at | datetime | Creation timestamp | |
| updated_at | datetime | Last update timestamp | |
| anonymous | boolean | Anonymous user | Legacy |
| note | text | Collaborator notes | |
| locale | text | User’s language | e.g., en, fr, de |