Audio-native language model API — OpenAI-compatible, built for Southeast Asian languages.
Limitation of Liability: To the fullest extent permitted by law, A*STAR I2R or A*STAR shall not be liable for any damages arising out of or in connection with the Model, including but not limited to reliance on any Outputs.
Make a real API request with your key. The generated curl command updates as you type.
Transcription endpoint — returns the transcript
curl -X POST https://api.meralion.ai/v1/audio/transcriptions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"audio_url": "data:audio/wav;base64,<BASE64_AUDIO>"
}'https://api.meralion.aiFor chat / Q&A the API is OpenAI-compatible — point any OpenAI SDK's base_url to https://api.meralion.ai/v1. For speech-to-text, call /audio/transcriptions directly (see example) — it is the correct endpoint for transcription.
Speech-to-text uses the dedicated /audio/transcriptions endpoint. Use /chat/completions only for conversational Q&A about audio, not bulk transcription.
# Speech-to-text: use the dedicated /audio/transcriptions endpoint.
# (Do NOT use /chat/completions for transcription.)
curl -X POST https://api.meralion.ai/v1/audio/transcriptions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"audio_url": "data:audio/wav;base64,<BASE64_AUDIO>"
}'import base64, pathlib, requests
audio_b64 = base64.b64encode(pathlib.Path("speech.wav").read_bytes()).decode()
# Speech-to-text via the dedicated ASR endpoint
resp = requests.post(
"https://api.meralion.ai/audio/transcription",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={
"audio_url": f"data:audio/wav;base64,{audio_b64}"
},
)
message = resp.json()["choices"][0]["message"]
print(message["content"]) # full transcriptimport fs from "node:fs";
const base64 = fs.readFileSync("speech.wav").toString("base64");
// Speech-to-text via the dedicated ASR endpoint.
const resp = await fetch("https://api.meralion.ai/audio/transcription", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
audio_url: `data:audio/wav;base64,${base64}`
}),
});
const { message } = (await resp.json()).choices[0];
console.log(message.content); // full transcriptAuthorization: Bearer YOUR_API_KEYX-API-Key: YOUR_API_KEY?api_key=YOUR_API_KEY/v1/audio/transcriptionsSpeech-to-text (ASR)/v1/chat/completionsMultimodal chat / Q&A (not for bulk transcription)/keys/registerRegister for an API key/v1/modelsList available models/keys/usageCheck your usage & limits/keys/tiersView available tiersFull OpenAPI spec: http://meralion.org:8010/docs ↗