> This page is for Audio Decisions.

> 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.

# Limits

**A request takes one audio file of 5 seconds to 5 minutes and up to 25,000,000 bytes, up to 20 `noul`, `choice` and `score` questions and up to 5 `span` questions. Each organization can send 60 requests per minute.** Each table below names the error a request outside that limit returns. See [Errors](/audio-decisions/docs/errors#codes) for what each code means.

## Audio

<table>
  <thead>
    <tr>
      <th width="25%">
        Limit
      </th>

      <th>
        Value
      </th>

      <th width="30%">
        Outside the limit
      </th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>
        Duration
      </td>

      <td>
        5 seconds to 5 minutes
      </td>

      <td>
        `audio_too_short`

         or 

        `audio_too_long`
      </td>
    </tr>

    <tr>
      <td>
        Request size
      </td>

      <td>
        25,000,000 bytes, the 

        `request`

         and 

        `file`

         parts together
      </td>

      <td>
        `payload_too_large`
      </td>
    </tr>

    <tr>
      <td>
        Format
      </td>

      <td>
        MP3 or WAV
      </td>

      <td>
        `audio_format_unsupported`
      </td>
    </tr>

    <tr>
      <td>
        Files
      </td>

      <td>
        1 per request
      </td>

      <td>
        `message_invalid`
      </td>
    </tr>
  </tbody>
</table>

To evaluate a recording longer than 5 minutes, split it into files of 5 minutes or less and send one request per file. Keep every part at least 5 seconds long.

### Which limit a file reaches first

Uncompressed WAV usually reaches the size limit before 5 minutes. The `request` part adds little, so the size of the audio file decides which limit applies:

<table>
  <thead>
    <tr>
      <th width="40%">
        Audio
      </th>

      <th>
        Size of 5 minutes
      </th>

      <th>
        Longest file that fits
      </th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>
        WAV, 16-bit, 48 kHz stereo
      </td>

      <td>
        57.6 MB
      </td>

      <td>
        About 2 min 10 s
      </td>
    </tr>

    <tr>
      <td>
        WAV, 16-bit, 44.1 kHz stereo
      </td>

      <td>
        52.9 MB
      </td>

      <td>
        About 2 min 20 s
      </td>
    </tr>

    <tr>
      <td>
        WAV, 16-bit, 48 kHz mono
      </td>

      <td>
        28.8 MB
      </td>

      <td>
        About 4 min 20 s
      </td>
    </tr>

    <tr>
      <td>
        WAV, 16-bit, 44.1 kHz mono
      </td>

      <td>
        26.5 MB
      </td>

      <td>
        About 4 min 40 s
      </td>
    </tr>

    <tr>
      <td>
        WAV, 16-bit, 24 kHz mono
      </td>

      <td>
        14.4 MB
      </td>

      <td>
        5 minutes
      </td>
    </tr>

    <tr>
      <td>
        WAV, 16-bit, 16 kHz mono
      </td>

      <td>
        9.6 MB
      </td>

      <td>
        5 minutes
      </td>
    </tr>

    <tr>
      <td>
        MP3, 128 kbps
      </td>

      <td>
        4.8 MB
      </td>

      <td>
        5 minutes
      </td>
    </tr>
  </tbody>
</table>

To fit a longer WAV file under the size limit, convert it to 16 kHz mono. The model hears audio as one channel at 16 kHz, so a higher sample rate or a second channel does not improve answers, and 5 minutes of 16 kHz mono WAV fits in 9.6 MB:

#### Shell

```bash
ffmpeg -i call.wav -ac 1 -ar 16000 -sample_fmt s16 call_mono.wav
```

## Questions and context

<table>
  <thead>
    <tr>
      <th width="25%">
        Limit
      </th>

      <th>
        Value
      </th>

      <th width="30%">
        Outside the limit
      </th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>
        Questions
      </td>

      <td>
        1 to 25 per request: up to 20 

        `noul`

        , 

        `choice`

         and 

        `score`

         questions together, and up to 5 

        `span`

         questions
      </td>

      <td>
        `message_invalid`
      </td>
    </tr>

    <tr>
      <td>
        Question ID
      </td>

      <td>
        1 to 256 characters
      </td>

      <td>
        `message_invalid`
      </td>
    </tr>

    <tr>
      <td>
        `instructions`
      </td>

      <td>
        1 to 500 characters
      </td>

      <td>
        `question_invalid`
      </td>
    </tr>

    <tr>
      <td>
        `noul`

         criteria
      </td>

      <td>
        `true`

         and 

        `false`

         of 1 to 300 characters each
      </td>

      <td>
        `question_invalid`
      </td>
    </tr>

    <tr>
      <td>
        `choice`

         options
      </td>

      <td>
        2 to 20 per question, each with a unique 

        `name`

         of 1 to 50 characters and an optional 

        `description`

         of 1 to 100 characters
      </td>

      <td>
        `question_invalid`
      </td>
    </tr>

    <tr>
      <td>
        `score`

         levels
      </td>

      <td>
        2 to 10 per question, each unique and 1 to 150 characters
      </td>

      <td>
        `question_invalid`
      </td>
    </tr>

    <tr>
      <td>
        `context`
      </td>

      <td>
        Up to 1,000 characters
      </td>

      <td>
        `message_invalid`
      </td>
    </tr>
  </tbody>
</table>

## Rate limits

<table>
  <thead>
    <tr>
      <th width="25%">
        Limit
      </th>

      <th>
        Value
      </th>

      <th width="30%">
        Outside the limit
      </th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>
        Requests
      </td>

      <td>
        60 per minute per organization
      </td>

      <td>
        `429 Too Many Requests`
      </td>
    </tr>
  </tbody>
</table>

The limit counts requests to every Audio Decisions endpoint over a sliding 60-second window, and every API key in an organization shares it. A `429` carries a `Retry-After` header with the number of seconds to wait before retrying. See [Handling errors](/audio-decisions/docs/errors#handling-errors).

## Next steps

#### [Errors](/audio-decisions/docs/errors)

Learn what each error code means and which requests to retry.