Delivering state-of-the-art Arabic speech recognition accuracy with just a simple API call.
Munist is designed to deliver state-of-the-art accuracy for Arabic speech recognition.
With just a simple API call, you can turn Arabic audio into clean, high-quality text — no SDKs or libraries required.
👉 Subscribe on our portal, and after subscribing, you can create your own API key to start using Munist.
Get started today and unlock powerful Arabic transcription capabilities!
📜 API Quickstart
Endpoint:
POST https://api.cntxt.tools/audio/transcribe
Authentication:
Authorization: Bearer YOUR_API_KEY
How to get an API Key:
- Subscribe through our portal.
- After subscribing, you can generate and manage your API key directly from your account dashboard.
- Include the API key in every request using the Authorization header.
🛠️ Request Details
Request Type: POST
Content-Type: multipart/form-data
File Field Name: file
Supported Audio Formats: .mp3 (audio/mpeg)
🧩 Example Usage
cURL
curl --request POST \
--url https://api.cntxt.tools/audio/transcribe \
-H "Authorization: Bearer $MUNSIT_API_KEY" \
-H "Content-Type: multipart/form-data" \
-F "file=@/path/to/file/audio.mp3;type=audio/mpeg" \
-F "model=munsit-1"
Python (requests)
import requests
api_key = "MUNSIT_API_KEY"
file_path = "/path/to/file/audio.mp3"
url = "https://api.cntxt.tools/audio/transcribe"
headers = {
"Authorization": f"Bearer $MUNSIT_API_KEY"
}
files = {
"file": ("audio.mp3", open(file_path, "rb"), "audio/mpeg")
}
data = {
"model": "munsit-1"
}
response = requests.post(url, headers=headers, files=files, data=data)
print("Status Code:", response.status_code)
print("Response:", response.text)
Node.js (node-fetch + form-data)
const axios = require('axios');
const FormData = require('form-data');
const fs = require('fs');
async function main() {
const form = new FormData();
form.append('file', fs.createReadStream('audio.mp3'));
form.append('model', 'munsit-1');
try {
const response = await axios.post('https://api.cntxt.tools/audio/
transcribe', form, {
headers: {
...form.getHeaders(),
Authorization: 'Bearer $MUNSIT_API_KEY'
}
});
console.log('Transcription result:', response.data);
} catch (error) {
console.error('Upload failed:', error.response?.data ||
error.message);
}
}
main();
JavaScript (Browser)
async function transcribeAudio() {
const fileInput = document.createElement('input');
fileInput.type = 'file';
fileInput.accept = 'audio/mp3';
const formData = new FormData();
const file = await new Promise((resolve) => {
fileInput.onchange = (e) => resolve(e.target.files[0]);
fileInput.click();
});
formData.append('file', file);
formData.append('model', 'munsit-1');
try {
const response = await fetch('https://api.cntxt.tools/audio/
transcribe', {
method: 'POST',
headers: {
'Authorization': 'Bearer $MUNSIT_API_KEY'
},
body: formData
});
const data = await response.json();
console.log('Transcription result:', data);
return data;
} catch (error) {
console.error('Upload failed:', error);
throw error;
}
}
// Call the function
transcribeAudio();
PHP (cURL)
<?php
function transcribeAudio($audioFilePath = 'audio.mp3') {
$url = 'https://api.cntxt.tools/audio/transcribe';
$ch = curl_init();
$cfile = new CURLFile($audioFilePath, 'audio/mpeg', 'audio.mp3');
$data = array(
'file' => $cfile,
'model' => 'munsit-1'
);
// Set cURL options
curl_setopt_array($ch, array(
CURLOPT_URL => $url,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $data,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => array(
'Authorization: Bearer ' . $MUNSIT_API_KEY
)
));
// Execute the request
$response = curl_exec($ch);
// Check for errors
if (curl_errno($ch)) {
echo 'Upload failed: ' . curl_error($ch);
} else {
// Decode and print the response
$result = json_decode($response, true);
echo 'Transcription result: ';
print_r($result);
}
// Close cURL
curl_close($ch);
}
// Example usage
transcribeAudio();
?>
Java (OkHttp)
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.nio.file.Path;
import java.nio.file.Paths;
public class AudioTranscription {
public static void main(String[] args) {
try {
HttpClient client = HttpClient.newHttpClient();
Path audioFile = Paths.get("audio.mp3");
HttpRequest request = HttpRequest.newBuilder()
.uri(java.net.URI.create("https://api.cntxt.tools/
audio/transcribe"))
.header("Authorization", "Bearer $MUNSIT_API_KEY")
.header("Content-Type", "multipart/form-data")
.POST(HttpRequest.BodyPublishers.ofFile(audioFile))
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println("Transcription: " + response.body());
} catch (Exception e) {
System.err.println("Error: " + e.getMessage());
}
}
}
⚡ Notes
- Subscribe on the portal to gain access.
- Create and manage your own API key after subscribing.
- Use your API key in every request to authenticate.
- Munist offers state-of-the-art Arabic speech transcription built for real-world scale and reliability.