> ## Documentation Index
> Fetch the complete documentation index at: https://hanabiaiinc-docs-concurrency-qpm-rate-limits.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Your API Key

> Create a Fish Audio account, generate an API key, and make your first request

Everything you build with Fish Audio — the API, the Python library, JavaScript — authenticates with a single **API key**. Here's how to get one and make your first call in a couple of minutes.

## 1. Create an account and key

<Steps>
  <Step title="Sign up">
    Go to [fish.audio/auth/signup](https://fish.audio/auth/signup), create an account, and verify your email.
  </Step>

  <Step title="Open the API Keys page">
    Sign in and open [fish.audio/app/api-keys](https://fish.audio/app/api-keys).
  </Step>

  <Step title="Create a key">
    Click **Create New Key**, give it a descriptive name (and an expiration if you want), then **copy the key and store it securely** — treat it like a password.

    <Warning>Never commit your API key to version control or share it publicly.</Warning>
  </Step>
</Steps>

## 2. Store it as an environment variable

The SDKs and the examples throughout these docs read your key from `FISH_API_KEY`:

```bash theme={null}
export FISH_API_KEY="your_api_key_here"
```

This keeps the key out of your code and lets you use different keys for development and production.

## 3. Make your first request

<CodeGroup>
  ```python Python theme={null}
  from fishaudio import FishAudio
  from fishaudio.utils import save

  client = FishAudio()  # reads FISH_API_KEY
  audio = client.tts.convert(text="Hello from Fish Audio!")
  save(audio, "hello.mp3")
  ```

  ```bash API (curl) theme={null}
  curl --request POST https://api.fish.audio/v1/tts \
    --header "Authorization: Bearer $FISH_API_KEY" \
    --header "Content-Type: application/json" \
    --header "model: s2-pro" \
    --data '{ "text": "Hello from Fish Audio!", "format": "mp3" }' \
    --output hello.mp3
  ```
</CodeGroup>

You just generated your first audio. Where to next:

<CardGroup cols={2}>
  <Card title="Text to Speech" icon="microphone" href="/features/text-to-speech">
    Voices, formats, speed, and streaming.
  </Card>

  <Card title="Quick Start" icon="rocket" href="/developer-guide/getting-started/quickstart">
    A fuller first-request walkthrough.
  </Card>

  <Card title="Voice Cloning" icon="clone" href="/features/voice-cloning">
    Build a custom voice from your own audio.
  </Card>

  <Card title="Speech to Text" icon="waveform" href="/features/speech-to-text">
    Transcribe audio with timestamps.
  </Card>
</CardGroup>

<Tip>
  **Building with an AI coding agent?** Install the Fish Audio skill so it writes correct SDK/API code — `npx skills add docs.fish.audio`. See [AI Coding Agents](/developer-guide/resources/coding-agents).
</Tip>
