> This page is for Expression Measurement.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://dev.hume.ai/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://dev.hume.ai/_mcp/server.

# Upload audio

POST https://api.cloud.hume.ai/v1/expression/audio/file
Content-Type: multipart/form-data

Send the audio as the `file` part and, to change the defaults, settings as a JSON `config` part. The response holds every utterance found in the audio and every measurement taken, the same results a realtime session would stream for the same audio.

## How measurements are produced

The server detects when speech starts and stops. Each continuous stretch of speech is an **utterance**, listed in `utterances` with its span in the audio.

- **During speech:** a measurement is taken every `measurement_timer_ms` milliseconds of speech, with `trigger` set to `interval`.
- **When speech ends:** a final measurement is taken with `trigger` set to `speech_ended`, unless the previous measurement ended less than one second earlier. Every utterance gets at least one measurement, and audio that ends during speech ends the utterance.
- **Span:** each measurement covers the most recent 10 seconds of the utterance, or the whole utterance if it is shorter, so consecutive measurements can overlap. `audio_start_ms` and `audio_end_ms` give the span, counted from the start of the audio.

## Limits

| Limit | Value |
|---|---|
| Request size | 25MB, the whole multipart body |
| Audio format | 16-bit PCM, 16 kHz, mono, as a WAV file or headerless samples |

The server does not convert audio, so send it in the format above.

- **Too large:** a request over the size limit is rejected with `audio_too_long`.
- **Unsupported formats:** MP3, FLAC, Ogg, MP4 or M4A, and RIFF files other than WAV, are rejected with `unsupported_media_type`. Convert them before sending.
- **Wrong WAV format:** a WAV file at another sample rate, channel count or sample format, one that uses the extensible WAV header, or one that is truncated or malformed is rejected with `audio_decode_failed`.
- **Anything else** is read as headerless samples rather than rejected, so check the format before sending. An empty file, or one with an odd number of bytes, is rejected with `audio_decode_failed`.

Reference: https://dev.hume.ai/expression-measurement/reference/audio/measure

## Authentication

- `X-Hume-Api-Key` header (required) — API Key authentication via header

## Request

### Body (multipart/form-data)

This endpoint expects a multipart form containing a file.

- `config` (AudioFileConfig, optional)
- `file` (file, required) — The audio, as 16-bit PCM at 16 kHz, mono: either a WAV file or the headerless little-endian samples. A WAV file at another sample rate, channel count or sample format is rejected rather than converted.

## Response

### 200

Every utterance and measurement in the audio.

- `request_id` (string, required) — Identifies this request in Hume's records. Quote it when contacting support.
- `run_id` (string, required) — Identifies the run this request was recorded as. Pass it to the run endpoints to look the run up.
- `received` (AudioFileResponseReceived, required) — What the server took from the request.
- `utterances` (list of AudioFileUtterance, required) — Every utterance found, in order.
- `measurements` (list of AudioFileMeasurement, required) — Every measurement, in order. `utterance_id` says which utterance each belongs to.

## Errors

### 400 Bad Request Error

Something in the request needs correcting: a malformed body or parameter, or a value the endpoint does not accept. `code` says which.

- `type` (enum, required)
  - Allowed values: `error`
- `code` (enum, required) — Identifies what went wrong. The HTTP status carried with it says how the request failed. Some of these names are also error codes of the realtime API, where they name the same kind of problem. **`400 Bad Request`**, something in the request needs correcting. - `message_invalid`: the multipart body could not be read, is missing its `file` part, or carries a part with another name. Audio takes exactly one `file` part; video takes one or more. File endpoints only. - `config_invalid`: the `config` part is not valid JSON, names a field the endpoint does not recognize, holds a value outside its range, or appears more than once. File endpoints only. - `audio_decode_failed`: the audio could not be decoded: a WAV file that is truncated or malformed, or at another sample rate, channel count or sample format, or with the extensible WAV header, or a file that is empty or is not a whole number of 16-bit samples. Audio only. - `image_decode_failed`: an image could not be decoded. Video only. - `invalid_request`: a query parameter has a value the endpoint does not accept, or `cursor` is not one the endpoint issued. Run endpoints only. **`403 Forbidden`** - `forbidden`: your organization is not permitted to use this endpoint. Contact support. File endpoints only. **`404 Not Found`** - `not_found`: no run with this ID exists in your organization, or no endpoint exists at this path. **`405 Method Not Allowed`** - `method_not_allowed`: the endpoint does not accept this HTTP method. The `Allow` header lists the methods it does accept. **`413 Content Too Large`**, the request exceeds a size limit. - `audio_too_long`: the request body is over the size limit. Audio only. - `image_too_large`: the request body or one image is over the size limit, or an image has more pixels than the endpoint accepts. Video only. **`415 Unsupported Media Type`**, the media is in a format the endpoint does not accept. - `unsupported_media_type`: the audio is in a format the server recognizes but does not accept, such as MP3 or FLAC, or an image is not a JPEG. File endpoints only. **`500 Internal Server Error`** - `internal_error`: the server failed while serving the request. Retry it; if it keeps failing, contact support, quoting the `request_id`. **`503 Service Unavailable`** - `server_busy`: the service is too busy to serve the request now. Retry it after the number of seconds in the `Retry-After` header.
  - Allowed values: `message_invalid`, `config_invalid`, `audio_decode_failed`, `image_decode_failed`, `invalid_request`, `forbidden`, `not_found`, `method_not_allowed`, `audio_too_long`, `image_too_large`, `unsupported_media_type`, `internal_error`, `server_busy`
- `message` (string, required) — What went wrong, for a person. Its wording may change; switch on `code`.
- `request_id` (string, required) — Identifies the request in Hume's records. Quote it when contacting support.

### 401 Unauthorized Error

The request carried no valid credential. Check the API key or access token you sent.

- `message` (string, required) — What went wrong, for a person.
- `request_id` (string, optional) — Identifies the request. Sent only when an API key was rejected.

### 403 Forbidden Error

Your organization is not permitted to use this endpoint. Contact support.

- `type` (enum, required)
  - Allowed values: `error`
- `code` (enum, required) — Identifies what went wrong. The HTTP status carried with it says how the request failed. Some of these names are also error codes of the realtime API, where they name the same kind of problem. **`400 Bad Request`**, something in the request needs correcting. - `message_invalid`: the multipart body could not be read, is missing its `file` part, or carries a part with another name. Audio takes exactly one `file` part; video takes one or more. File endpoints only. - `config_invalid`: the `config` part is not valid JSON, names a field the endpoint does not recognize, holds a value outside its range, or appears more than once. File endpoints only. - `audio_decode_failed`: the audio could not be decoded: a WAV file that is truncated or malformed, or at another sample rate, channel count or sample format, or with the extensible WAV header, or a file that is empty or is not a whole number of 16-bit samples. Audio only. - `image_decode_failed`: an image could not be decoded. Video only. - `invalid_request`: a query parameter has a value the endpoint does not accept, or `cursor` is not one the endpoint issued. Run endpoints only. **`403 Forbidden`** - `forbidden`: your organization is not permitted to use this endpoint. Contact support. File endpoints only. **`404 Not Found`** - `not_found`: no run with this ID exists in your organization, or no endpoint exists at this path. **`405 Method Not Allowed`** - `method_not_allowed`: the endpoint does not accept this HTTP method. The `Allow` header lists the methods it does accept. **`413 Content Too Large`**, the request exceeds a size limit. - `audio_too_long`: the request body is over the size limit. Audio only. - `image_too_large`: the request body or one image is over the size limit, or an image has more pixels than the endpoint accepts. Video only. **`415 Unsupported Media Type`**, the media is in a format the endpoint does not accept. - `unsupported_media_type`: the audio is in a format the server recognizes but does not accept, such as MP3 or FLAC, or an image is not a JPEG. File endpoints only. **`500 Internal Server Error`** - `internal_error`: the server failed while serving the request. Retry it; if it keeps failing, contact support, quoting the `request_id`. **`503 Service Unavailable`** - `server_busy`: the service is too busy to serve the request now. Retry it after the number of seconds in the `Retry-After` header.
  - Allowed values: `message_invalid`, `config_invalid`, `audio_decode_failed`, `image_decode_failed`, `invalid_request`, `forbidden`, `not_found`, `method_not_allowed`, `audio_too_long`, `image_too_large`, `unsupported_media_type`, `internal_error`, `server_busy`
- `message` (string, required) — What went wrong, for a person. Its wording may change; switch on `code`.
- `request_id` (string, required) — Identifies the request in Hume's records. Quote it when contacting support.

### 405 Method Not Allowed Error

The endpoint does not accept this HTTP method. The `Allow` header lists the methods it does accept.

- `type` (enum, required)
  - Allowed values: `error`
- `code` (enum, required) — Identifies what went wrong. The HTTP status carried with it says how the request failed. Some of these names are also error codes of the realtime API, where they name the same kind of problem. **`400 Bad Request`**, something in the request needs correcting. - `message_invalid`: the multipart body could not be read, is missing its `file` part, or carries a part with another name. Audio takes exactly one `file` part; video takes one or more. File endpoints only. - `config_invalid`: the `config` part is not valid JSON, names a field the endpoint does not recognize, holds a value outside its range, or appears more than once. File endpoints only. - `audio_decode_failed`: the audio could not be decoded: a WAV file that is truncated or malformed, or at another sample rate, channel count or sample format, or with the extensible WAV header, or a file that is empty or is not a whole number of 16-bit samples. Audio only. - `image_decode_failed`: an image could not be decoded. Video only. - `invalid_request`: a query parameter has a value the endpoint does not accept, or `cursor` is not one the endpoint issued. Run endpoints only. **`403 Forbidden`** - `forbidden`: your organization is not permitted to use this endpoint. Contact support. File endpoints only. **`404 Not Found`** - `not_found`: no run with this ID exists in your organization, or no endpoint exists at this path. **`405 Method Not Allowed`** - `method_not_allowed`: the endpoint does not accept this HTTP method. The `Allow` header lists the methods it does accept. **`413 Content Too Large`**, the request exceeds a size limit. - `audio_too_long`: the request body is over the size limit. Audio only. - `image_too_large`: the request body or one image is over the size limit, or an image has more pixels than the endpoint accepts. Video only. **`415 Unsupported Media Type`**, the media is in a format the endpoint does not accept. - `unsupported_media_type`: the audio is in a format the server recognizes but does not accept, such as MP3 or FLAC, or an image is not a JPEG. File endpoints only. **`500 Internal Server Error`** - `internal_error`: the server failed while serving the request. Retry it; if it keeps failing, contact support, quoting the `request_id`. **`503 Service Unavailable`** - `server_busy`: the service is too busy to serve the request now. Retry it after the number of seconds in the `Retry-After` header.
  - Allowed values: `message_invalid`, `config_invalid`, `audio_decode_failed`, `image_decode_failed`, `invalid_request`, `forbidden`, `not_found`, `method_not_allowed`, `audio_too_long`, `image_too_large`, `unsupported_media_type`, `internal_error`, `server_busy`
- `message` (string, required) — What went wrong, for a person. Its wording may change; switch on `code`.
- `request_id` (string, required) — Identifies the request in Hume's records. Quote it when contacting support.

### 413 Content Too Large Error

The request exceeds a size limit. `code` says which.

- `type` (enum, required)
  - Allowed values: `error`
- `code` (enum, required) — Identifies what went wrong. The HTTP status carried with it says how the request failed. Some of these names are also error codes of the realtime API, where they name the same kind of problem. **`400 Bad Request`**, something in the request needs correcting. - `message_invalid`: the multipart body could not be read, is missing its `file` part, or carries a part with another name. Audio takes exactly one `file` part; video takes one or more. File endpoints only. - `config_invalid`: the `config` part is not valid JSON, names a field the endpoint does not recognize, holds a value outside its range, or appears more than once. File endpoints only. - `audio_decode_failed`: the audio could not be decoded: a WAV file that is truncated or malformed, or at another sample rate, channel count or sample format, or with the extensible WAV header, or a file that is empty or is not a whole number of 16-bit samples. Audio only. - `image_decode_failed`: an image could not be decoded. Video only. - `invalid_request`: a query parameter has a value the endpoint does not accept, or `cursor` is not one the endpoint issued. Run endpoints only. **`403 Forbidden`** - `forbidden`: your organization is not permitted to use this endpoint. Contact support. File endpoints only. **`404 Not Found`** - `not_found`: no run with this ID exists in your organization, or no endpoint exists at this path. **`405 Method Not Allowed`** - `method_not_allowed`: the endpoint does not accept this HTTP method. The `Allow` header lists the methods it does accept. **`413 Content Too Large`**, the request exceeds a size limit. - `audio_too_long`: the request body is over the size limit. Audio only. - `image_too_large`: the request body or one image is over the size limit, or an image has more pixels than the endpoint accepts. Video only. **`415 Unsupported Media Type`**, the media is in a format the endpoint does not accept. - `unsupported_media_type`: the audio is in a format the server recognizes but does not accept, such as MP3 or FLAC, or an image is not a JPEG. File endpoints only. **`500 Internal Server Error`** - `internal_error`: the server failed while serving the request. Retry it; if it keeps failing, contact support, quoting the `request_id`. **`503 Service Unavailable`** - `server_busy`: the service is too busy to serve the request now. Retry it after the number of seconds in the `Retry-After` header.
  - Allowed values: `message_invalid`, `config_invalid`, `audio_decode_failed`, `image_decode_failed`, `invalid_request`, `forbidden`, `not_found`, `method_not_allowed`, `audio_too_long`, `image_too_large`, `unsupported_media_type`, `internal_error`, `server_busy`
- `message` (string, required) — What went wrong, for a person. Its wording may change; switch on `code`.
- `request_id` (string, required) — Identifies the request in Hume's records. Quote it when contacting support.

### 415 Unsupported Media Type Error

The media is in a format the endpoint does not accept.

- `type` (enum, required)
  - Allowed values: `error`
- `code` (enum, required) — Identifies what went wrong. The HTTP status carried with it says how the request failed. Some of these names are also error codes of the realtime API, where they name the same kind of problem. **`400 Bad Request`**, something in the request needs correcting. - `message_invalid`: the multipart body could not be read, is missing its `file` part, or carries a part with another name. Audio takes exactly one `file` part; video takes one or more. File endpoints only. - `config_invalid`: the `config` part is not valid JSON, names a field the endpoint does not recognize, holds a value outside its range, or appears more than once. File endpoints only. - `audio_decode_failed`: the audio could not be decoded: a WAV file that is truncated or malformed, or at another sample rate, channel count or sample format, or with the extensible WAV header, or a file that is empty or is not a whole number of 16-bit samples. Audio only. - `image_decode_failed`: an image could not be decoded. Video only. - `invalid_request`: a query parameter has a value the endpoint does not accept, or `cursor` is not one the endpoint issued. Run endpoints only. **`403 Forbidden`** - `forbidden`: your organization is not permitted to use this endpoint. Contact support. File endpoints only. **`404 Not Found`** - `not_found`: no run with this ID exists in your organization, or no endpoint exists at this path. **`405 Method Not Allowed`** - `method_not_allowed`: the endpoint does not accept this HTTP method. The `Allow` header lists the methods it does accept. **`413 Content Too Large`**, the request exceeds a size limit. - `audio_too_long`: the request body is over the size limit. Audio only. - `image_too_large`: the request body or one image is over the size limit, or an image has more pixels than the endpoint accepts. Video only. **`415 Unsupported Media Type`**, the media is in a format the endpoint does not accept. - `unsupported_media_type`: the audio is in a format the server recognizes but does not accept, such as MP3 or FLAC, or an image is not a JPEG. File endpoints only. **`500 Internal Server Error`** - `internal_error`: the server failed while serving the request. Retry it; if it keeps failing, contact support, quoting the `request_id`. **`503 Service Unavailable`** - `server_busy`: the service is too busy to serve the request now. Retry it after the number of seconds in the `Retry-After` header.
  - Allowed values: `message_invalid`, `config_invalid`, `audio_decode_failed`, `image_decode_failed`, `invalid_request`, `forbidden`, `not_found`, `method_not_allowed`, `audio_too_long`, `image_too_large`, `unsupported_media_type`, `internal_error`, `server_busy`
- `message` (string, required) — What went wrong, for a person. Its wording may change; switch on `code`.
- `request_id` (string, required) — Identifies the request in Hume's records. Quote it when contacting support.

### 500 Internal Server Error

The server failed while serving the request. Retry it; if it keeps failing, contact support, quoting the `request_id`.

- `type` (enum, required)
  - Allowed values: `error`
- `code` (enum, required) — Identifies what went wrong. The HTTP status carried with it says how the request failed. Some of these names are also error codes of the realtime API, where they name the same kind of problem. **`400 Bad Request`**, something in the request needs correcting. - `message_invalid`: the multipart body could not be read, is missing its `file` part, or carries a part with another name. Audio takes exactly one `file` part; video takes one or more. File endpoints only. - `config_invalid`: the `config` part is not valid JSON, names a field the endpoint does not recognize, holds a value outside its range, or appears more than once. File endpoints only. - `audio_decode_failed`: the audio could not be decoded: a WAV file that is truncated or malformed, or at another sample rate, channel count or sample format, or with the extensible WAV header, or a file that is empty or is not a whole number of 16-bit samples. Audio only. - `image_decode_failed`: an image could not be decoded. Video only. - `invalid_request`: a query parameter has a value the endpoint does not accept, or `cursor` is not one the endpoint issued. Run endpoints only. **`403 Forbidden`** - `forbidden`: your organization is not permitted to use this endpoint. Contact support. File endpoints only. **`404 Not Found`** - `not_found`: no run with this ID exists in your organization, or no endpoint exists at this path. **`405 Method Not Allowed`** - `method_not_allowed`: the endpoint does not accept this HTTP method. The `Allow` header lists the methods it does accept. **`413 Content Too Large`**, the request exceeds a size limit. - `audio_too_long`: the request body is over the size limit. Audio only. - `image_too_large`: the request body or one image is over the size limit, or an image has more pixels than the endpoint accepts. Video only. **`415 Unsupported Media Type`**, the media is in a format the endpoint does not accept. - `unsupported_media_type`: the audio is in a format the server recognizes but does not accept, such as MP3 or FLAC, or an image is not a JPEG. File endpoints only. **`500 Internal Server Error`** - `internal_error`: the server failed while serving the request. Retry it; if it keeps failing, contact support, quoting the `request_id`. **`503 Service Unavailable`** - `server_busy`: the service is too busy to serve the request now. Retry it after the number of seconds in the `Retry-After` header.
  - Allowed values: `message_invalid`, `config_invalid`, `audio_decode_failed`, `image_decode_failed`, `invalid_request`, `forbidden`, `not_found`, `method_not_allowed`, `audio_too_long`, `image_too_large`, `unsupported_media_type`, `internal_error`, `server_busy`
- `message` (string, required) — What went wrong, for a person. Its wording may change; switch on `code`.
- `request_id` (string, required) — Identifies the request in Hume's records. Quote it when contacting support.

### 503 Service Unavailable Error

The service is too busy to serve the request now. Retry it after the number of seconds in the `Retry-After` header.

- `type` (enum, required)
  - Allowed values: `error`
- `code` (enum, required) — Identifies what went wrong. The HTTP status carried with it says how the request failed. Some of these names are also error codes of the realtime API, where they name the same kind of problem. **`400 Bad Request`**, something in the request needs correcting. - `message_invalid`: the multipart body could not be read, is missing its `file` part, or carries a part with another name. Audio takes exactly one `file` part; video takes one or more. File endpoints only. - `config_invalid`: the `config` part is not valid JSON, names a field the endpoint does not recognize, holds a value outside its range, or appears more than once. File endpoints only. - `audio_decode_failed`: the audio could not be decoded: a WAV file that is truncated or malformed, or at another sample rate, channel count or sample format, or with the extensible WAV header, or a file that is empty or is not a whole number of 16-bit samples. Audio only. - `image_decode_failed`: an image could not be decoded. Video only. - `invalid_request`: a query parameter has a value the endpoint does not accept, or `cursor` is not one the endpoint issued. Run endpoints only. **`403 Forbidden`** - `forbidden`: your organization is not permitted to use this endpoint. Contact support. File endpoints only. **`404 Not Found`** - `not_found`: no run with this ID exists in your organization, or no endpoint exists at this path. **`405 Method Not Allowed`** - `method_not_allowed`: the endpoint does not accept this HTTP method. The `Allow` header lists the methods it does accept. **`413 Content Too Large`**, the request exceeds a size limit. - `audio_too_long`: the request body is over the size limit. Audio only. - `image_too_large`: the request body or one image is over the size limit, or an image has more pixels than the endpoint accepts. Video only. **`415 Unsupported Media Type`**, the media is in a format the endpoint does not accept. - `unsupported_media_type`: the audio is in a format the server recognizes but does not accept, such as MP3 or FLAC, or an image is not a JPEG. File endpoints only. **`500 Internal Server Error`** - `internal_error`: the server failed while serving the request. Retry it; if it keeps failing, contact support, quoting the `request_id`. **`503 Service Unavailable`** - `server_busy`: the service is too busy to serve the request now. Retry it after the number of seconds in the `Retry-After` header.
  - Allowed values: `message_invalid`, `config_invalid`, `audio_decode_failed`, `image_decode_failed`, `invalid_request`, `forbidden`, `not_found`, `method_not_allowed`, `audio_too_long`, `image_too_large`, `unsupported_media_type`, `internal_error`, `server_busy`
- `message` (string, required) — What went wrong, for a person. Its wording may change; switch on `code`.
- `request_id` (string, required) — Identifies the request in Hume's records. Quote it when contacting support.

## Types

### AudioFileResponseReceived

What the server took from the request.

- `audio_duration_ms` (integer, required) — The duration of the audio, in milliseconds.

### AudioFileUtterance

An utterance: one continuous stretch of speech, with its full extent in the audio.

- `utterance_id` (integer, required) — Identifies the utterance within the run, counting from 0.
- `audio_start_ms` (integer, required) — Where the utterance started, in milliseconds from the start of the audio.
- `audio_end_ms` (integer, required) — Where the utterance ended, in milliseconds from the start of the audio.

### AudioFileMeasurement

Expression measurements for a window of an utterance. The window spans `audio_start_ms` to `audio_end_ms` and covers up to the most recent 10 seconds of the utterance. An interval measurement taken as speech stops can end shortly after the utterance does. Consecutive measurements of an utterance overlap, except interval measurements at a `measurement_timer_ms` of 10000, which meet end to end.

- `measurement_id` (integer, required) — Sequential identifier of the measurement within the run, starting at 0.
- `utterance_id` (integer, required) — The utterance this measurement belongs to.
- `audio_start_ms` (integer, required) — Start of the window measured, in milliseconds from the start of the audio. Never earlier than the start of the utterance.
- `audio_end_ms` (integer, required) — End of the window measured, in milliseconds from the start of the audio.
- `trigger` (enum, required) — Why the measurement was produced. - `interval`: the measurement interval (`measurement_timer_ms`) elapsed while speech continued. - `speech_ended`: the utterance ended, or the audio ended while speech was in progress. A final measurement is skipped when the previous one ended less than one second earlier, so the last measurement of an utterance may carry the trigger `interval`. Where an utterance ended is reported separately: as an `utterance.end` message in a realtime session, and in `utterances` in an audio file response.
  - Allowed values: `interval`, `speech_ended`
- `expressions` (list of AudioExpressionScore, required) — Expressions detected in the speech, such as `joy`, `anger` and `chuckling`, in descending order of probability. Scores with equal probability are ordered by the model's underlying score, then by name. Only expressions judged present are included, each against a threshold set for that expression, so the array may be empty. `probability` is the measured chance that the expression is truly present.
- `voice_attributes` (list of VoiceAttributeScore, required) — Qualities of the voice and the audio, such as `husky`, `fast` and `background music`, in descending order of probability. Scores with equal probability are ordered by the model's underlying score, then by name. Only scores of 0.725 or above are included, so the array may be empty. `probability` is calibrated: the expected intensity a human rater would give the quality.

### AudioExpressionScore

A scored expression detected in the speech.

- `name` (string, required) — The name of an expression that can be detected in speech; see the [full list of audio expressions](/expression-measurement/docs/audio/measurements#expressions). Names are lowercase and may contain spaces and punctuation. New names may be added over time; treat a name you do not recognize as a new prediction.
- `probability` (double, required) — The probability that this expression is present, rounded to four decimal places.

### VoiceAttributeScore

A scored quality of the voice or the audio.

- `name` (string, required) — The name of a quality of the voice or the audio, such as a manner of speaking, a vocal timbre or a background sound; see the [full list of voice attributes](/expression-measurement/docs/audio/measurements#voice-attributes). Names are lowercase and may contain spaces and punctuation. New names may be added over time; treat a name you do not recognize as a new prediction.
- `probability` (double, required) — The probability that this quality is present, rounded to four decimal places.

## Examples

**Request**

```json
{
  "file": "<file: string>"
}
```

**Response**

```json
{
  "request_id": "3f9a1c07e2b84d56a0c7e19b5d2f8a64",
  "run_id": "01926f3c-d33c-7c9f-9c91-4502d80834d5",
  "received": {
    "audio_duration_ms": 5000
  },
  "utterances": [
    {
      "utterance_id": 0,
      "audio_start_ms": 98,
      "audio_end_ms": 4510
    }
  ],
  "measurements": [
    {
      "measurement_id": 0,
      "utterance_id": 0,
      "audio_start_ms": 98,
      "audio_end_ms": 3098,
      "trigger": "interval",
      "expressions": [
        {
          "name": "interest",
          "probability": 0.4286
        },
        {
          "name": "curiosity",
          "probability": 0.308
        },
        {
          "name": "satisfaction",
          "probability": 0.2771
        },
        {
          "name": "joy",
          "probability": 0.2538
        }
      ],
      "voice_attributes": [
        {
          "name": "clear",
          "probability": 0.9612
        },
        {
          "name": "calm",
          "probability": 0.9148
        },
        {
          "name": "background noise",
          "probability": 0.8731
        }
      ]
    },
    {
      "measurement_id": 1,
      "utterance_id": 0,
      "audio_start_ms": 98,
      "audio_end_ms": 4510,
      "trigger": "speech_ended",
      "expressions": [
        {
          "name": "amusement",
          "probability": 0.5
        },
        {
          "name": "joy",
          "probability": 0.3593
        },
        {
          "name": "chuckling",
          "probability": 0.2028
        }
      ],
      "voice_attributes": [
        {
          "name": "cheerful",
          "probability": 0.9275
        },
        {
          "name": "bright",
          "probability": 0.8864
        }
      ]
    }
  ]
}
```