curl --request POST \
--url https://api.inworld.ai/stt/v1/transcribe \
--header "Authorization: Basic $INWORLD_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"transcribeConfig": {
"modelId": "groq/whisper-large-v3",
"audioEncoding": "LINEAR16",
"language": "en-US",
"sampleRateHertz": 16000,
"numberOfChannels": 1
},
"audioData": {
"content": "<YOUR_AUDIO>"
}
}'
import requests
import base64
url = "https://api.inworld.ai/stt/v1/transcribe"
api_key = "$INWORLD_API_KEY"
with open("audio.wav", "rb") as f:
audio_base64 = base64.b64encode(f.read()).decode("utf-8")
response = requests.post(
url,
headers={
"Authorization": f"Basic {api_key}",
"Content-Type": "application/json",
},
json={
"transcribeConfig": {
"modelId": "groq/whisper-large-v3",
"audioEncoding": "LINEAR16",
"language": "en-US",
"sampleRateHertz": 16000,
"numberOfChannels": 1,
},
"audioData": {
"content": audio_base64,
},
},
)
print(response.json())
const fs = require("fs");
const apiKey = "$INWORLD_API_KEY";
const audioBase64 = fs.readFileSync("audio.wav").toString("base64");
const response = await fetch("https://api.inworld.ai/stt/v1/transcribe", {
method: "POST",
headers: {
"Authorization": `Basic ${apiKey}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
transcribeConfig: {
modelId: "groq/whisper-large-v3",
audioEncoding: "LINEAR16",
language: "en-US",
sampleRateHertz: 16000,
numberOfChannels: 1,
},
audioData: {
content: audioBase64,
},
}),
});
const data = await response.json();
console.log(data);
{
"transcription": {
"transcript": "Hey, I just wanted to check in on the delivery status for my order.",
"isFinal": true,
"wordTimestamps": []
},
"usage": null
}
Speech-to-Text
Transcribe audio
Send the whole audio in a single request, and receive a single transcription.
POST
/
stt
/
v1
/
transcribe
curl --request POST \
--url https://api.inworld.ai/stt/v1/transcribe \
--header "Authorization: Basic $INWORLD_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"transcribeConfig": {
"modelId": "groq/whisper-large-v3",
"audioEncoding": "LINEAR16",
"language": "en-US",
"sampleRateHertz": 16000,
"numberOfChannels": 1
},
"audioData": {
"content": "<YOUR_AUDIO>"
}
}'
import requests
import base64
url = "https://api.inworld.ai/stt/v1/transcribe"
api_key = "$INWORLD_API_KEY"
with open("audio.wav", "rb") as f:
audio_base64 = base64.b64encode(f.read()).decode("utf-8")
response = requests.post(
url,
headers={
"Authorization": f"Basic {api_key}",
"Content-Type": "application/json",
},
json={
"transcribeConfig": {
"modelId": "groq/whisper-large-v3",
"audioEncoding": "LINEAR16",
"language": "en-US",
"sampleRateHertz": 16000,
"numberOfChannels": 1,
},
"audioData": {
"content": audio_base64,
},
},
)
print(response.json())
const fs = require("fs");
const apiKey = "$INWORLD_API_KEY";
const audioBase64 = fs.readFileSync("audio.wav").toString("base64");
const response = await fetch("https://api.inworld.ai/stt/v1/transcribe", {
method: "POST",
headers: {
"Authorization": `Basic ${apiKey}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
transcribeConfig: {
modelId: "groq/whisper-large-v3",
audioEncoding: "LINEAR16",
language: "en-US",
sampleRateHertz: 16000,
numberOfChannels: 1,
},
audioData: {
content: audioBase64,
},
}),
});
const data = await response.json();
console.log(data);
{
"transcription": {
"transcript": "Hey, I just wanted to check in on the delivery status for my order.",
"isFinal": true,
"wordTimestamps": []
},
"usage": null
}
curl --request POST \
--url https://api.inworld.ai/stt/v1/transcribe \
--header "Authorization: Basic $INWORLD_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"transcribeConfig": {
"modelId": "groq/whisper-large-v3",
"audioEncoding": "LINEAR16",
"language": "en-US",
"sampleRateHertz": 16000,
"numberOfChannels": 1
},
"audioData": {
"content": "<YOUR_AUDIO>"
}
}'
import requests
import base64
url = "https://api.inworld.ai/stt/v1/transcribe"
api_key = "$INWORLD_API_KEY"
with open("audio.wav", "rb") as f:
audio_base64 = base64.b64encode(f.read()).decode("utf-8")
response = requests.post(
url,
headers={
"Authorization": f"Basic {api_key}",
"Content-Type": "application/json",
},
json={
"transcribeConfig": {
"modelId": "groq/whisper-large-v3",
"audioEncoding": "LINEAR16",
"language": "en-US",
"sampleRateHertz": 16000,
"numberOfChannels": 1,
},
"audioData": {
"content": audio_base64,
},
},
)
print(response.json())
const fs = require("fs");
const apiKey = "$INWORLD_API_KEY";
const audioBase64 = fs.readFileSync("audio.wav").toString("base64");
const response = await fetch("https://api.inworld.ai/stt/v1/transcribe", {
method: "POST",
headers: {
"Authorization": `Basic ${apiKey}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
transcribeConfig: {
modelId: "groq/whisper-large-v3",
audioEncoding: "LINEAR16",
language: "en-US",
sampleRateHertz: 16000,
numberOfChannels: 1,
},
audioData: {
content: audioBase64,
},
}),
});
const data = await response.json();
console.log(data);
{
"transcription": {
"transcript": "Hey, I just wanted to check in on the delivery status for my order.",
"isFinal": true,
"wordTimestamps": []
},
"usage": null
}
Authorizations
Your authentication credentials. For Basic authentication, please populate Basic $INWORLD_API_KEY. You can create a key in one command with the Inworld CLI: inworld workspace add-key.
Body
application/json
Request message for the synchronous TranscribeSpeech API.
Configuration for transcribing audio. Contains model selection, audio format settings, and optional feature configurations. Provider-specific configuration is mutually exclusive — set at most one of groqConfig or inworldSttV1Config.
- Groq
- Inworld STT V1
- No provider-specific config
Show child attributes
Show child attributes
Container for raw audio data bytes.
Show child attributes
Show child attributes
Was this page helpful?
⌘I