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

# Quick Start

> Go from zero to your first API call in under 5 minutes

<Info>
  **TL;DR:** Register → Verify email → Create API key → Add funds → Make API calls.
</Info>

## Choose Your Path

<Tabs>
  <Tab title="🖥️ cURL">
    Complete setup directly with cURL commands.
  </Tab>

  <Tab title="🌐 App">
    Login to AudioPod AI app to get your API key.
  </Tab>
</Tabs>

***

## Step 1: Create Your Account

<Tabs>
  <Tab title="CLI">
    ```bash theme={null}
    curl -X POST "https://api.audiopod.ai/api/v1/auth/initiate-registration" \
      -H "Content-Type: application/json" \
      -d '{
        "email": "you@example.com",
        "password": "YourSecurePassword123",
        "full_name": "Your Name"
      }'
    ```

    ✅ Check your email for a 6-digit verification code.
  </Tab>

  <Tab title="Dashboard">
    <Card title="Sign Up" icon="user-plus" href="https://www.audiopod.ai/auth/signup">
      Create your free account
    </Card>
  </Tab>
</Tabs>

***

## Step 2: Verify Your Email

<Tabs>
  <Tab title="CLI">
    ```bash theme={null}
    curl -X POST "https://api.audiopod.ai/api/v1/auth/verify-registration" \
      -H "Content-Type: application/json" \
      -d '{
        "email": "you@example.com",
        "verification_code": "123456"
      }'
    ```

    **Response includes your JWT token:**

    ```json theme={null}
    {
      "access_token": "eyJhbGciOiJIUzI1NiIs...",
      "token_type": "bearer"
    }
    ```

    <Warning>Save the `access_token` — you need it for Step 3!</Warning>
  </Tab>

  <Tab title="Dashboard">
    Enter the 6-digit code from your email on the verification page.
  </Tab>
</Tabs>

***

## Step 3: Create Your API Key

<Tabs>
  <Tab title="CLI">
    ```bash theme={null}
    # Use the access_token from Step 2
    curl -X POST "https://api.audiopod.ai/api/v1/auth/api-keys" \
      -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{"name": "my-first-key", "scopes": ["*"]}'
    ```

    **Response:**

    ```json theme={null}
    {
      "api_key": "ap_xxxxxxxxxxxxxxxxxxxxxxxx"
    }
    ```

    <Warning>**Save this key immediately!** It's only shown once.</Warning>
  </Tab>

  <Tab title="Dashboard">
    1. Go to [API Keys](https://www.audiopod.ai/dashboard/account/api-keys)
    2. Click **Create New API Key**
    3. Copy and save your key
  </Tab>
</Tabs>

***

## Step 4: Set Up Your Environment

```bash theme={null}
# Add to your shell profile (~/.bashrc, ~/.zshrc)
export AUDIOPOD_API_KEY="ap_your_api_key_here"
```

Or create a `.env` file:

```bash theme={null}
AUDIOPOD_API_KEY=ap_your_api_key_here
```

***

## Step 5: Add Funds to Your Wallet

<Tabs>
  <Tab title="CLI">
    ```bash theme={null}
    # Get a Stripe payment link
    curl -X POST "https://api.audiopod.ai/api/v1/api-wallet/topup/checkout" \
      -H "X-API-Key: $AUDIOPOD_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{"amount_cents": 500}'
    ```

    Open the returned `url` in your browser to complete payment.
  </Tab>

  <Tab title="Dashboard">
    1. Go to [API Keys](https://www.audiopod.ai/dashboard/account/api-keys)
    2. Click **Add Funds** in the Wallet Balance section
    3. Choose amount (min \$1) and complete Stripe checkout
  </Tab>
</Tabs>

***

## Step 6: Make Your First API Call! 🎉

<Tabs>
  <Tab title="Python">
    ```bash theme={null}
    pip install audiopod
    ```

    ```python theme={null}
    from audiopod import AudioPod

    client = AudioPod()  # Uses AUDIOPOD_API_KEY env var

    # Separate a song into stems
    result = client.stems.separate(
        url="https://youtube.com/watch?v=dQw4w9WgXcQ",
        mode="six"
    )

    print("🎵 Stems ready!")
    for stem, url in result["download_urls"].items():
        print(f"  {stem}: {url[:50]}...")
    ```
  </Tab>

  <Tab title="Node.js">
    ```bash theme={null}
    npm install audiopod
    ```

    ```typescript theme={null}
    import AudioPod from 'audiopod';

    const client = new AudioPod();

    const result = await client.stems.separate({
      url: 'https://youtube.com/watch?v=dQw4w9WgXcQ',
      mode: 'six'
    });

    console.log('🎵 Stems ready!');
    Object.entries(result.download_urls).forEach(([stem, url]) => {
      console.log(`  ${stem}: ${url.substring(0, 50)}...`);
    });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    # Separate audio into 6 stems
    curl -X POST "https://api.audiopod.ai/api/v1/stem-extraction/api/extract" \
      -H "X-API-Key: $AUDIOPOD_API_KEY" \
      -F "url=https://youtube.com/watch?v=dQw4w9WgXcQ" \
      -F "mode=six"

    # Check job status (replace JOB_ID)
    curl -X GET "https://api.audiopod.ai/api/v1/stem-extraction/status/JOB_ID" \
      -H "X-API-Key: $AUDIOPOD_API_KEY"
    ```
  </Tab>
</Tabs>

***

## Pricing

Pay only for what you use. No subscriptions required for API access.

| Service            | Rate       | \$10 Gets You |
| ------------------ | ---------- | ------------- |
| Stem Separation    | \$0.10/min | 100 min       |
| Transcription      | \$0.01/min | 1,000 min     |
| Voice Cloning/TTS  | \$0.04/min | 250 min       |
| Voice Conversion   | \$0.13/min | 77 min        |
| Speech Translation | \$0.40/min | 25 min        |
| Music Generation   | \$0.04/min | 250 min       |
| Speaker Separation | \$0.20/min | 50 min        |
| Karaoke Generation | \$0.25/min | 40 min        |

<Card title="Full Pricing" icon="calculator" href="/account/api-wallet">
  View complete pricing for all services
</Card>

***

## Try More Features

<Tabs>
  <Tab title="Transcription">
    ```python theme={null}
    # Convert speech to text
    result = client.transcription.create(
        url="https://youtube.com/watch?v=VIDEO_ID"
    )
    print(result["transcript"])
    ```
  </Tab>

  <Tab title="Music Generation">
    ```python theme={null}
    # Generate music from text
    song = client.music.generate(
        prompt="upbeat electronic dance music"
    )
    print(song["output_url"])
    ```
  </Tab>

  <Tab title="Voice Cloning">
    ```python theme={null}
    # Clone a voice from audio
    voice = client.voice.clone(
        file="./sample.wav",
        name="My Voice"
    )

    # Generate speech with cloned voice
    audio = client.tts.generate(
        text="Hello world!",
        voice_id=voice["id"]
    )
    ```
  </Tab>

  <Tab title="Noise Reduction">
    ```python theme={null}
    # Remove background noise
    clean = client.denoiser.denoise(
        file="./noisy_audio.wav"
    )
    print(clean["output_url"])
    ```
  </Tab>
</Tabs>

***

## Manage Your Account (via CLI)

Once you have an API key, manage everything via cURL:

```bash theme={null}
# Check wallet balance
curl -s "https://api.audiopod.ai/api/v1/api-wallet/balance" \
  -H "X-API-Key: $AUDIOPOD_API_KEY" | jq .

# List your API keys
curl -s "https://api.audiopod.ai/api/v1/auth/api-keys" \
  -H "X-API-Key: $AUDIOPOD_API_KEY" | jq .

# Create another API key
curl -X POST "https://api.audiopod.ai/api/v1/auth/api-keys" \
  -H "X-API-Key: $AUDIOPOD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name": "production-key", "scopes": ["*"]}'

# View usage history
curl -s "https://api.audiopod.ai/api/v1/api-wallet/usage" \
  -H "X-API-Key: $AUDIOPOD_API_KEY" | jq .
```

***

## Common Issues

<AccordionGroup>
  <Accordion title="401 Unauthorized">
    Your API key is invalid or missing.

    **Fix:** Check the `X-API-Key` header is set correctly:

    ```bash theme={null}
    echo $AUDIOPOD_API_KEY  # Should print your key
    ```
  </Accordion>

  <Accordion title="402 Insufficient Balance">
    Your wallet is empty.

    **Fix:** Add funds via CLI or dashboard:

    ```bash theme={null}
    curl -X POST "https://api.audiopod.ai/api/v1/api-wallet/topup/checkout" \
      -H "X-API-Key: $AUDIOPOD_API_KEY" \
      -d '{"amount_cents": 500}'
    ```
  </Accordion>

  <Accordion title="Job Stuck in Processing">
    Audio processing jobs can take time depending on file length.

    **Fix:** Poll the status endpoint:

    ```bash theme={null}
    curl "https://api.audiopod.ai/api/v1/stem-extraction/status/JOB_ID" \
      -H "X-API-Key: $AUDIOPOD_API_KEY"
    ```
  </Accordion>
</AccordionGroup>

***

## Next Steps

<Columns cols={3}>
  <Card title="SDK Docs" icon="code" href="/sdks/overview">
    Full SDK reference for Python & Node.js
  </Card>

  <Card title="API Reference" icon="book" href="/api-reference/stem-splitter">
    Detailed endpoint documentation
  </Card>

  <Card title="Pricing" icon="wallet" href="/account/api-wallet">
    Complete pricing & wallet management
  </Card>
</Columns>
