# How an agent should call ВТекст 38

This page is for coding agents. The docs-only MCP at `https://vtext38.ru/mcp` teaches the
same flow. **Neither this page nor the MCP sends audio.** You call the product API with a key.

## Get a key

1. Open https://vtext38.ru/dashboard/api-keys
2. Create a key (plaintext is shown once)
3. Export it: `export VTEXT38_API_KEY=...`

## Deepgram dialect

- URL: `https://vtext38.ru/api/v1/listen`
- Header: `Authorization: Token $VTEXT38_API_KEY` (not Bearer)
- Body: raw audio (`Content-Type: application/octet-stream`, `--data-binary @file`)

```bash
export VTEXT38_API_KEY="paste_key_here"

curl -X POST \
  -H "Authorization: Token ${VTEXT38_API_KEY}" \
  -H "Content-Type: application/octet-stream" \
  --data-binary @recording.mp3 \
  "https://vtext38.ru/api/v1/listen?smart_format=true&diarize=true&utterances=true"
```

Read the transcript from `results.channels[0].alternatives[0].transcript`.

## OpenAI dialect

- SDK `base_url` / `baseURL`: `https://vtext38.ru/api/v1`
- Header: `Authorization: Bearer $VTEXT38_API_KEY`
- Body: multipart form with `file`

```bash
export VTEXT38_API_KEY="paste_key_here"

curl -X POST \
  -H "Authorization: Bearer ${VTEXT38_API_KEY}" \
  -F file="@recording.mp3" \
  -F model="whisper-1" \
  -F language="ru" \
  -F response_format="verbose_json" \
  "https://vtext38.ru/api/v1/audio/transcriptions"
```

## Connect the docs MCP in Cursor

No API key in MCP config. Example:

```json
{
  "mcpServers": {
    "vtext38-docs": {
      "url": "https://vtext38.ru/mcp"
    }
  }
}
```

Then use prompts such as `use-api` or read resources. Run curl/SDK yourself with the key.

## Limits

- Russian only
- No `speaker_confidence`
- Numbers stay spelled out under `smart_format`
- Sync processing at most ten minutes
