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

# Quick start

> Get to your first successful API call for each Velma-2 model in about 5 minutes.

This guide gets you from zero to a real transcription response. You'll send an audio file to the Multilingual Transcription batch API and get a full transcript back.

## Prerequisites

<Steps>
  <Step title="Get an API key">
    [Create a free account](https://www.modulate-developer-apis.com/web/signup-request) and create an API key from the API Key Tab.
  </Step>

  <Step title="Get an API key">
    [Create a free account](https://platform.modulate.ai/signup-request) and create an API key from the API Key Tab.
  </Step>

  <Step title="Set up your Python environment">
    All examples use Python 3.8+. Create a virtual environment and install dependencies:

    ```bash theme={null}
    mkdir modulate-quickstart && cd modulate-quickstart

    python3 -m venv .venv
    source .venv/bin/activate          # macOS / Linux
    # .venv\Scripts\activate           # Windows
    ```

    Create `requirements.txt` in your project root:

    ```text requirements.txt theme={null}
    requests>=2.31.0
    requests-toolbelt>=1.0.0
    websockets>=12.0
    python-dotenv>=1.0.0
    urllib3<2.0
    ```

    Install requirements:

    ```bash theme={null}
    pip install -r requirements.txt
    ```
  </Step>

  <Step title="Store your API key">
    Set your key as an environment variable — never hard-code credentials.

    ```bash theme={null}
    export MODULATE_API_KEY=your_api_key_here
    ```

    Or store it in a `.env` file and load it with `python-dotenv`.

    ```bash theme={null}
    echo ".env" >> .gitignore
    ```
  </Step>

  <Step title="Get a sample audio file">
    Any short clip (5–30 seconds) of speech works. Place it in your project directory and note the filename — the examples below assume `audio.mp3`.
  </Step>
</Steps>

## Make your first call

<CodeGroup>
  ```bash curl theme={null}
  curl -X POST https://platform.modulate.ai/api/velma-2-stt-batch \
    -H "X-API-Key: $MODULATE_API_KEY" \
    -F "upload_file=@audio.mp3"
  ```

  ```python Python theme={null}
  import os, requests

  response = requests.post(
      "https://platform.modulate.ai/api/velma-2-stt-batch",
      headers={"X-API-Key": os.environ["MODULATE_API_KEY"]},
      files={"upload_file": open("audio.mp3", "rb")},
  )
  response.raise_for_status()
  print(response.json()["text"])
  ```
</CodeGroup>

<Accordion title="Expected response">
  ```json theme={null}
  {
    "text": "Hello everyone. Welcome to the meeting. We'll be discussing results today.",
    "duration_ms": 8400,
    "utterances": [
      {
        "start_ms": 0,
        "end_ms": 4200,
        "speaker": 1,
        "language": "en",
        "text": "Hello everyone. Welcome to the meeting."
      },
      {
        "start_ms": 4200,
        "end_ms": 8400,
        "speaker": 1,
        "language": "en",
        "text": "We'll be discussing results today."
      }
    ]
  }
  ```
</Accordion>

The `text` field is the full transcript. `utterances` breaks it into per-speaker, per-language segments with millisecond timestamps.

## Go deeper by capability

<CardGroup cols={2}>
  <Card title="Transcription" icon="microphone" href="/get-started/stt">
    Multilingual Transcription (batch and streaming), Multilingual Fast Transcription, and English Fast Transcription.
  </Card>

  <Card title="Deepfake Detection" icon="shield-halved" href="/get-started/deepfake">
    Detect deepfakes in recorded files or live audio streams.
  </Card>

  <Card title="PII/PHI Redaction" icon="eye-slash" href="/get-started/pii">
    Remove sensitive content from transcripts and audio.
  </Card>

  <Card title="Music & Speech Detection" icon="music" href="/get-started/music-detection">
    Classify audio as music, speech, or neither — batch and streaming.
  </Card>
</CardGroup>
