> ## Documentation Index
> Fetch the complete documentation index at: https://foreverbetter.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Ingest data

> Upload biomarker, wearable, genetic, or behavioral source files.

Use `POST /imports/file` to register source data for analysis.

## Supported categories

| Category     | Common payloads                                               |
| ------------ | ------------------------------------------------------------- |
| `biomarkers` | CSV, JSON, or text lab panels                                 |
| `wearables`  | CSV/JSON exports, daily summaries, synced provider data       |
| `genetics`   | VCF, VCF.GZ, SNP-array text exports encoded as text or base64 |
| `behavioral` | Notes, protocols, intake context                              |

## Payload shape

```json theme={null}
{
  "user_id": "customer_001",
  "organization_id": "org_001",
  "category": "biomarkers",
  "filename": "labs.csv",
  "content_type": "text/csv",
  "text": "marker,value,unit\nApoB,88,mg/dL"
}
```

Use `data_base64` instead of `text` for binary or compressed uploads. Include
`collected_at` dates in payload rows whenever you have them; repeat uploads
then become longitudinal trends automatically.

## Round-trip every upload

```bash theme={null}
# List uploads for a user, filterable by category and date
curl -s "$HEALTH_API/sources?user_id=customer_001&category=biomarkers" \
  -H "authorization: Bearer $TOKEN"

# Inspect one upload with its normalized observations
curl -s "$HEALTH_API/sources/<source_id>" \
  -H "authorization: Bearer $TOKEN"
```

## Large genetics files

Full WGS files are processed asynchronously. Upload the source, start
`POST /genetics/analyze`, and poll the returned job.
