List languages
curl --request GET \
--url https://api-eg.olimi.ai/api/v2/languages/publicimport requests
url = "https://api-eg.olimi.ai/api/v2/languages/public"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api-eg.olimi.ai/api/v2/languages/public', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api-eg.olimi.ai/api/v2/languages/public",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api-eg.olimi.ai/api/v2/languages/public"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api-eg.olimi.ai/api/v2/languages/public")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-eg.olimi.ai/api/v2/languages/public")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"message": "Languages fetched successfully",
"meta": {
"totalItems": 9,
"itemCount": 9,
"itemsPerPage": 100,
"totalPages": 1,
"currentPage": 1
},
"data": [
{
"id": "2cdab2de-310d-59a3-ad68-b85b4526e37b",
"name": "Arabic - Egyptian",
"code": "ar-EG"
},
{
"id": "cd2d9868-1910-40bf-88f7-c490483ac016",
"name": "Arabic - Emirati",
"code": "ar-AE"
},
{
"id": "0e8f853c-1be2-5e61-868b-5c04eb55938a",
"name": "Arabic - Saudi",
"code": "ar-SA"
}
]
}{
"statusCode": 422,
"message": [
"name must be shorter than or equal to 100 characters"
],
"error": "Unprocessable Entity"
}Text to Speech
List languages
Lists the languages available for speech. No API key needed.
GET
/
api
/
v2
/
languages
/
public
List languages
curl --request GET \
--url https://api-eg.olimi.ai/api/v2/languages/publicimport requests
url = "https://api-eg.olimi.ai/api/v2/languages/public"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api-eg.olimi.ai/api/v2/languages/public', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api-eg.olimi.ai/api/v2/languages/public",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api-eg.olimi.ai/api/v2/languages/public"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api-eg.olimi.ai/api/v2/languages/public")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-eg.olimi.ai/api/v2/languages/public")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"message": "Languages fetched successfully",
"meta": {
"totalItems": 9,
"itemCount": 9,
"itemsPerPage": 100,
"totalPages": 1,
"currentPage": 1
},
"data": [
{
"id": "2cdab2de-310d-59a3-ad68-b85b4526e37b",
"name": "Arabic - Egyptian",
"code": "ar-EG"
},
{
"id": "cd2d9868-1910-40bf-88f7-c490483ac016",
"name": "Arabic - Emirati",
"code": "ar-AE"
},
{
"id": "0e8f853c-1be2-5e61-868b-5c04eb55938a",
"name": "Arabic - Saudi",
"code": "ar-SA"
}
]
}{
"statusCode": 422,
"message": [
"name must be shorter than or equal to 100 characters"
],
"error": "Unprocessable Entity"
}Use this to find the
languageId for List voices and Create audio. Fetch it once and cache it; languages rarely change.
- Always send
service=tts. Without it you get the speech-to-text languages, which are a different list. - Send
limit=100. The default page size is 10. - No API key needed. This endpoint is public.
id, name and code.Query Parameters
Send tts to get the languages available for speech. If you leave it out, the API returns the speech-to-text languages instead, which are a different list.
Available options:
tts Example:
"tts"
Page number, starting at 1. Defaults to 1.
Required range:
x >= 1Languages per page. Defaults to 10; send 100 to get them all in one call.
Required range:
x >= 1Example:
100
Matches languages whose name or code contains the text. Not case-sensitive.