Dictation
Create Dictation Session
Create a Dictation session to transcribe spoken audio into text in real time
Listen to this pageabout 1 min
POST
/
api
/
v1
/
transcription
/
session
/
create
cURL
curl --request POST \
--url https://sdp.suki.ai/api/v1/transcription/session/create \
--header 'Content-Type: application/json' \
--header 'sdp_suki_token: <sdp_suki_token>' \
--header 'sdp_provider_id: <sdp_provider_id>'import requests
url = "https://sdp.suki.ai/api/v1/transcription/session/create"
payload = {
"audio_config": {
"audio_encoding": "LINEAR16",
"audio_language": "en-US",
"sample_rate_hertz": 16000
},
"transcription_session_id": "123dfg-456dfg-789dfg-012dfg"
}
headers = {
"sdp_suki_token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {sdp_suki_token: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
audio_config: {audio_encoding: 'LINEAR16', audio_language: 'en-US', sample_rate_hertz: 16000},
transcription_session_id: '123dfg-456dfg-789dfg-012dfg'
})
};
fetch('https://sdp.suki.ai/api/v1/transcription/session/create', 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://sdp.suki.ai/api/v1/transcription/session/create",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'audio_config' => [
'audio_encoding' => 'LINEAR16',
'audio_language' => 'en-US',
'sample_rate_hertz' => 16000
],
'transcription_session_id' => '123dfg-456dfg-789dfg-012dfg'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"sdp_suki_token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://sdp.suki.ai/api/v1/transcription/session/create"
payload := strings.NewReader("{\n \"audio_config\": {\n \"audio_encoding\": \"LINEAR16\",\n \"audio_language\": \"en-US\",\n \"sample_rate_hertz\": 16000\n },\n \"transcription_session_id\": \"123dfg-456dfg-789dfg-012dfg\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("sdp_suki_token", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://sdp.suki.ai/api/v1/transcription/session/create")
.header("sdp_suki_token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"audio_config\": {\n \"audio_encoding\": \"LINEAR16\",\n \"audio_language\": \"en-US\",\n \"sample_rate_hertz\": 16000\n },\n \"transcription_session_id\": \"123dfg-456dfg-789dfg-012dfg\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sdp.suki.ai/api/v1/transcription/session/create")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["sdp_suki_token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"audio_config\": {\n \"audio_encoding\": \"LINEAR16\",\n \"audio_language\": \"en-US\",\n \"sample_rate_hertz\": 16000\n },\n \"transcription_session_id\": \"123dfg-456dfg-789dfg-012dfg\"\n}"
response = http.request(request)
puts response.read_body{
"transcription_session_id": "123dfg-456dfg-789dfg-012dfg"
}{
"code": 400,
"message": "invalid request"
}{
"code": 401,
"message": "invalid token"
}{
"code": 403,
"message": "forbidden"
}{
"code": 404,
"message": "not found"
}{
"code": 500,
"message": "internal server error"
}Use this endpoint to create a session to transcribe spoken audio into text.
Refer to the Audio Dictation guide for more information.
Returns a
audio_config.audio_language supports English and Multilingual. If you omit audio_config, language defaults to English. Refer to Dictation basic usage guide for more information.201 Created status with the transcription_session_id that is used to identify the session for transcribing audio and ending the session.Authorizations
Suki access token (suki_token) from Login or Register. Expires after one hour.
Headers
Optional for standard partners.
Required for:
- Bearer authentication. Use the same
provider_idreturned by the Login or Register API. - Single Auth Token authentication. Include the same
provider_idon every request assdp_provider_id.
Example:
"provider-123"
Body
application/json
Optional transcription session ID and audio configuration. Suki generates an ID when omitted.
Response
Resource created successfully.
Response body for the /transcription/session/create endpoint
Unique identifier for the transcription session
Example:
"123dfg-456dfg-789dfg-012dfg"
Last modified on August 20, 2026
Was this page helpful?
cURL
curl --request POST \
--url https://sdp.suki.ai/api/v1/transcription/session/create \
--header 'Content-Type: application/json' \
--header 'sdp_suki_token: <sdp_suki_token>' \
--header 'sdp_provider_id: <sdp_provider_id>'import requests
url = "https://sdp.suki.ai/api/v1/transcription/session/create"
payload = {
"audio_config": {
"audio_encoding": "LINEAR16",
"audio_language": "en-US",
"sample_rate_hertz": 16000
},
"transcription_session_id": "123dfg-456dfg-789dfg-012dfg"
}
headers = {
"sdp_suki_token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {sdp_suki_token: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
audio_config: {audio_encoding: 'LINEAR16', audio_language: 'en-US', sample_rate_hertz: 16000},
transcription_session_id: '123dfg-456dfg-789dfg-012dfg'
})
};
fetch('https://sdp.suki.ai/api/v1/transcription/session/create', 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://sdp.suki.ai/api/v1/transcription/session/create",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'audio_config' => [
'audio_encoding' => 'LINEAR16',
'audio_language' => 'en-US',
'sample_rate_hertz' => 16000
],
'transcription_session_id' => '123dfg-456dfg-789dfg-012dfg'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"sdp_suki_token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://sdp.suki.ai/api/v1/transcription/session/create"
payload := strings.NewReader("{\n \"audio_config\": {\n \"audio_encoding\": \"LINEAR16\",\n \"audio_language\": \"en-US\",\n \"sample_rate_hertz\": 16000\n },\n \"transcription_session_id\": \"123dfg-456dfg-789dfg-012dfg\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("sdp_suki_token", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://sdp.suki.ai/api/v1/transcription/session/create")
.header("sdp_suki_token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"audio_config\": {\n \"audio_encoding\": \"LINEAR16\",\n \"audio_language\": \"en-US\",\n \"sample_rate_hertz\": 16000\n },\n \"transcription_session_id\": \"123dfg-456dfg-789dfg-012dfg\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sdp.suki.ai/api/v1/transcription/session/create")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["sdp_suki_token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"audio_config\": {\n \"audio_encoding\": \"LINEAR16\",\n \"audio_language\": \"en-US\",\n \"sample_rate_hertz\": 16000\n },\n \"transcription_session_id\": \"123dfg-456dfg-789dfg-012dfg\"\n}"
response = http.request(request)
puts response.read_body{
"transcription_session_id": "123dfg-456dfg-789dfg-012dfg"
}{
"code": 400,
"message": "invalid request"
}{
"code": 401,
"message": "invalid token"
}{
"code": 403,
"message": "forbidden"
}{
"code": 404,
"message": "not found"
}{
"code": 500,
"message": "internal server error"
}