Integrations
curl
List models
powershell
curl -H "Authorization: Bearer %VILAB_API_KEY%" ^
http://192.168.1.24:8765/v1/modelsTranscribe audio
powershell
curl -X POST ^
-H "Authorization: Bearer %VILAB_API_KEY%" ^
-F "file=@sample.wav" ^
-F "model=vilab-stt-default" ^
http://192.168.1.24:8765/v1/audio/transcriptionsTypeScript
ts
const form = new FormData();
form.append('file', new Blob([audioBytes]), 'clip.wav');
form.append('model', 'vilab-stt-default');
const response = await fetch('http://192.168.1.24:8765/v1/audio/transcriptions', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.VILAB_API_KEY!}`,
},
body: form,
});
if (!response.ok) {
throw new Error(await response.text());
}
const data = await response.json();
console.log(data.text);Python
python
import os
import requests
with open("sample.wav", "rb") as audio_file:
response = requests.post(
"http://192.168.1.24:8765/v1/audio/transcriptions",
headers={"Authorization": f"Bearer {os.environ['VILAB_API_KEY']}"},
files={"file": ("sample.wav", audio_file, "audio/wav")},
data={"model": "vilab-stt-default"},
timeout=60,
)
response.raise_for_status()
print(response.json()["text"])Integration rules
- Use external API keys, not
adminKey - Keep one key per integration
- Prefer hostnames or fixed LAN IPs for stable service discovery