---
title: "Predict Raw Multiple"
method: POST
path: "/predict/{molecule}/raw/multiple"
---

# Predict Raw Multiple

`POST /predict/{molecule}/raw/multiple`

## Request

- Base URL: `https://api.respiq.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.respiq.com/predict/{molecule}/raw/multiple`
- Auth: HTTP bearer

Predict from every run of one sampling session.

A breath test is sampled several times and each run writes its own AVS CSV.
Send them all: each is scored on its own, runs that fail the quality checks
are left out, and `concentration` is the mean over the runs that passed.
`files` in the response lists every uploaded file in request order, so
several molecules can be scored from the same batch and lined up by index.

    curl -X POST http://localhost:8080/predict/h2/raw/multiple
      -H "Authorization: Bearer <token>"
      -F "files=@AVSExtra_2026-06-01_17-10-17_AVS_Run_1.csv"
      -F "files=@AVSExtra_2026-06-01_17-10-17_AVS_Run_2.csv"

## Path parameters

- `molecule` string, required

## Request body `multipart/form-data`

- BodyPredictRawMultiplePredictMoleculeRawMultiplePost
  - `files` string[], required

## Response `200`

Successful Response

- BatchPredictionResponse: Prediction for a set of files sampled in the same test. `concentration` is the mean over the files that passed the quality checks. `files` always holds one entry per uploaded file, valid or not, in request order — callers scoring several molecules from the same batch rely on that order to line the responses up.
  - `molecule` string, required
  - `concentration` number, required
  - `unit` string, required
  - `files_total` integer, required
  - `files_used` integer, required
  - `files` FilePrediction[], required
    - `index` integer, required
    - `filename` string, nullable
    - `valid` boolean, required
    - `reasons` string[]
    - `concentration` number, nullable
    - `quality` FileQuality, required: Measurements the quality verdict was based on. Both are None when the file carried nothing measurable, so a caller can tell a bad reading from a missing one.
      - `mean_intensity` number, nullable
      - `nan_count` integer, nullable
      - `mean_intensity_by_wavelength` ImportantWavelengths, required
        - `483.4` number, nullable
        - `656.3` number, nullable
        - `431.2` number, nullable
        - `810.3` number, nullable
        - `821.5` number, nullable

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/respiq/apis/respiq-prediction-api.md) - [All operations](https://skmtc.dev/respiq/apis/respiq-prediction-api/llms.txt) - [OpenAPI document](https://skmtc.dev/respiq/apis/respiq-prediction-api/revisions/64131f9fd4c3?raw)
