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

# Voice Catalog

> List available voice tiers and catalog entries for AI-powered phone calls.

# Voice Catalog

Use the voice catalog to inspect which voices are available for outbound phone calls. The current SDK exposes catalog listing and filtering; call creation uses the selected `tier` plus the agent's configured voice pipeline.

## List voices

```python theme={null}
from anima import Anima

anima = Anima(api_key="ak_...")

voices = anima.voices.list(tier="basic")

for voice in voices["voices"]:
    print(f"{voice.id}: {voice.name} ({voice.provider}, {voice.language})")
```

```ts theme={null}
import { Anima } from "@anima-labs/sdk";

const anima = new Anima({ apiKey: "ak_..." });

const voices = await anima.voices.list({ tier: "basic" });

for (const voice of voices.voices) {
  console.log(`${voice.id}: ${voice.name} (${voice.provider}, ${voice.language})`);
}
```

## Filters

The catalog supports these optional filters:

| Filter     | Values                                |
| ---------- | ------------------------------------- |
| `tier`     | `basic`, `premium`                    |
| `gender`   | `male`, `female`, `neutral`           |
| `language` | BCP-47 language code, such as `en-US` |

```python theme={null}
premium_voices = anima.voices.list(tier="premium")
female_voices = anima.voices.list(gender="female")
english_voices = anima.voices.list(language="en-US")
```

```ts theme={null}
const premiumVoices = await anima.voices.list({ tier: "premium" });
const femaleVoices = await anima.voices.list({ gender: "female" });
const englishVoices = await anima.voices.list({ language: "en-US" });
```

## Place a call

The public SDK call creation surface accepts `to`, optional `agentId`, `tier`, `greeting`, and optional `fromNumber`.

```python theme={null}
call = anima.calls.create(
    agent_id="AGENT_ID",
    to="+15551234567",
    tier="basic",
    greeting="Hi, this is my Anima agent calling from its own number.",
)

print(call.call_id, call.state)
```

```ts theme={null}
const call = await anima.calls.create({
  agentId: "AGENT_ID",
  to: "+15551234567",
  tier: "basic",
  greeting: "Hi, this is my Anima agent calling from its own number.",
});

console.log(call.callId, call.state);
```

Per-call `voiceId`, `voiceSettings`, and custom `systemPrompt` fields are not part of the current public SDK call input. Configure persistent agent behavior in the agent/voice pipeline, and use `greeting` for the opening line.

## REST endpoint

```bash theme={null}
curl "https://api.useanima.sh/v1/voice/catalog?tier=basic" \
  -H "Authorization: Bearer ak_..."
```

## Next steps

* [Quickstart: Voice Calls](/quickstart-voice) - Text yourself, then place the first call
* [Call Intelligence](/call-intelligence) - Transcripts, summaries, scores, and recordings
* [Voice WebSocket Protocol](/protocols/voice-websocket) - Real-time call event streaming
