# Prompt dictation

`POST /v1/prompts/dictate` — Speak a prompt, get the text back — free.

- Base URL: https://eroq.ai/v1
- Auth: `Authorization: Bearer eroq_sk_…` (create keys at https://eroq.ai/dashboard/keys)
- Credits: Free

The mic in every studio prompt box, as an API: send ONE spoken prompt as `multipart/form-data` — a `file` part, **wav or mp3**, up to 60 seconds (2.5MB) — and get its text back. Any language; `language` is an optional hint.

Free, like prompt enhance, and fenced the same way: one spoken prompt per request and its own rate limit (12 a minute). Longer audio belongs on the paid [transcription](/docs/transcriptions) endpoint.

## POST /v1/prompts/dictate

Speak a prompt, get the text back — free.

### Request body

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `file` | file | yes | The spoken prompt — wav or mp3, 60 seconds at most. |
| `language` | string | no | ISO language hint, e.g. `en`, `fr`. Omit it to auto-detect. |

### Example request

```bash
curl https://eroq.ai/v1/prompts/dictate \
  -H "Authorization: Bearer $EROQ_API_KEY" \
  -F file=@prompt.wav
```

```javascript
import { readFile } from 'node:fs/promises'

const form = new FormData()
form.append('file', new Blob([await readFile('prompt.wav')]), 'prompt.wav')

const res = await fetch('https://eroq.ai/v1/prompts/dictate', {
  method: 'POST',
  headers: { Authorization: `Bearer ${process.env.EROQ_API_KEY}` },
  body: form,
})
console.log(await res.json())
```

```python
import os, requests

res = requests.post(
    "https://eroq.ai/v1/prompts/dictate",
    headers={"Authorization": f"Bearer {os.environ['EROQ_API_KEY']}"},
    files={"file": open("prompt.wav", "rb")},
)
print(res.json())
```

```go
package main

import (
	"bytes"
	"fmt"
	"io"
	"mime/multipart"
	"net/http"
	"os"
)

func main() {
	var buf bytes.Buffer
	form := multipart.NewWriter(&buf)
	part0, _ := form.CreateFormFile("file", "prompt.wav")
	file0, _ := os.Open("prompt.wav")
	io.Copy(part0, file0)
	file0.Close()
	form.Close()

	req, _ := http.NewRequest("POST", "https://eroq.ai/v1/prompts/dictate", &buf)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("EROQ_API_KEY"))
	req.Header.Set("Content-Type", form.FormDataContentType())

	res, _ := http.DefaultClient.Do(req)
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
```

### Response


```json
{
  "text": "A woman walking along the beach at sunset, slow tracking shot, warm backlight."
}
```

---
Canonical: https://eroq.ai/docs/dictate · Index for agents: https://eroq.ai/llms.txt · OpenAPI: https://eroq.ai/openapi.json
