# Models

> Munsit offers state-of-the-art Arabic voice synthesis models designed to handle various dialects and use cases. List them with one call, then pass the model_id to any text-to-speech endpoint.

## Meet the model

**Faseeh** is Munsit's Arabic voice synthesis model — natural, high-quality speech across multiple Arabic dialects. Pass its `model_id` to any text-to-speech endpoint.

| Model | `model_id` | Highlights |
| --- | --- | --- |
| **Faseeh**  
High-quality Arabic voice synthesis model | `faseeh-v1-preview` | Natural-sounding Arabic speech · Multiple Arabic dialects supported · High-quality voice generation · Optimized for clarity and naturalness |

## List models

`GET /api/v1/models`

Retrieve a list of all available **text-to-speech** models. This endpoint does not return speech-to-text models — there is no discovery endpoint for those. The ASR models are `munsit` (default) and `munsit-en-ar`, passed as the `model` field on [transcription requests](/speech-to-text/transcribe).

Retrieve a list of all available voice synthesis models. Requires API key authentication via the `x-api-key` header. Returns an array of model objects.

```bash
curl -X GET "https://api.munsit.com/api/v1/models" \
  -H "x-api-key: YOUR_API_KEY"
```

```python
import requests

url = "https://api.munsit.com/api/v1/models"
headers = {
    "x-api-key": "YOUR_API_KEY"
}

response = requests.get(url, headers=headers)
models = response.json()
print(models)
```

```javascript
const response = await fetch('https://api.munsit.com/api/v1/models', {
  method: 'GET',
  headers: {
    'x-api-key': 'YOUR_API_KEY',
  },
});

const models = await response.json();
console.log(models);
```

```go
package main

import (
    "encoding/json"
    "fmt"
    "net/http"
    "os"
)

func main() {
    url := "https://api.munsit.com/api/v1/models"
    req, _ := http.NewRequest("GET", url, nil)
    req.Header.Set("x-api-key", os.Getenv("MUNSIT_API_KEY"))

    resp, err := http.DefaultClient.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var models []map[string]any
    json.NewDecoder(resp.Body).Decode(&models)
    fmt.Println(models)
}
```

Response

```
[
  {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "model_id": "faseeh-v1-preview",
    "model_name": "Faseeh",
    "description": "High-quality Arabic voice synthesis supporting multiple dialects"
  }
]
```

Response

```
[
  {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "model_id": "faseeh-v1-preview",
    "model_name": "Faseeh",
    "description": "High-quality Arabic voice synthesis supporting multiple dialects"
  }
]
```

Response

```
[
  {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "model_id": "faseeh-v1-preview",
    "model_name": "Faseeh",
    "description": "High-quality Arabic voice synthesis supporting multiple dialects"
  }
]
```

Response

```
[
  {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "model_id": "faseeh-v1-preview",
    "model_name": "Faseeh",
    "description": "High-quality Arabic voice synthesis supporting multiple dialects"
  }
]
```

## Response fields

Each model object contains:

| Field | Type | Description |
| --- | --- | --- |
| `model_id` | string | Model identifier used in API calls |
| `model_name` | string | Human-readable model name |
| `description` | string | null | Detailed description of the model |

## Usage

Use the `model_id` from the response in text-to-speech generation endpoints: POST `/text-to-speech/:model_id` (HTTP endpoint) or WS `/text-to-speech` (WebSocket endpoint — include `model_id` in the initConnection message).

> Caching. Model information doesn't change frequently. Consider caching the model list to reduce API calls.

## Go further

- [Synthesize](/text-to-speech/synthesize) — Use a model_id to generate a complete WAV file. — `POST /text-to-speech/{model_id}`

- [Audio streaming output](/text-to-speech/audio-streaming-output) — Pair Faseeh with streaming for real-time apps. — `streaming: true`

- [Voices](/text-to-speech/voices) — Pick a voice to go with your model. — `GET /voices`

- [WebSocket protocol](/reference/websocket) — The initConnection message and streaming lifecycle. — `WSS`
