Discovery
curl --request GET \
--url https://api.eka.care/voice/v1/.well-known/medscribeallianceimport requests
url = "https://api.eka.care/voice/v1/.well-known/medscribealliance"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.eka.care/voice/v1/.well-known/medscribealliance', 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.eka.care/voice/v1/.well-known/medscribealliance",
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.eka.care/voice/v1/.well-known/medscribealliance"
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.eka.care/voice/v1/.well-known/medscribealliance")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.eka.care/voice/v1/.well-known/medscribealliance")
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{
"protocol": "medscribealliance",
"protocol_version": "0.1",
"supported_versions": [
"0.1"
],
"service": {
"name": "Voice2Rx Medical Scribe Service",
"documentation_url": "https://developer.eka.care",
"support_email": "support@eka.care"
},
"endpoints": {
"base_url": "https://api.eka.care/voice/v1",
"webhooks_url": "https://api.eka.care/voice/v1/webhooks",
"templates_url": "https://api.eka.care/voice/api/v1/template"
},
"authentication": {
"supported_methods": [
"api_key",
"oidc"
],
"oidc": {
"issuer": "https://accounts.eka.care/oauth2",
"authorization_endpoint": "https://accounts.eka.care/oauth2/authorize",
"token_endpoint": "https://accounts.eka.care/oauth2/token",
"scopes_supported": [
"openid",
"profile"
]
}
},
"capabilities": {
"audio_formats": [
"audio/webm;codecs=opus",
"audio/wav",
"audio/ogg",
"audio/mp4",
"audio/m4a",
"audio/mp3"
],
"max_chunk_duration_seconds": 20,
"upload_methods": [
"chunked",
"single",
"stream"
],
"webhook_delivery": true,
"client_sdk_delivery": true
},
"models": [
{
"id": "lite",
"display_name": "Lite",
"languages": [
"en",
"hi"
],
"max_session_duration_seconds": 600,
"response_speed": "fast",
"features": {
"realtime_transcription": false,
"speaker_diarization": false,
"custom_templates": false
}
},
{
"id": "pro",
"display_name": "Professional",
"languages": [
"en",
"hi",
"ta",
"te",
"bn",
"mr",
"gu",
"kn",
"ml",
"pa"
],
"max_session_duration_seconds": 3600,
"response_speed": "standard",
"features": {
"realtime_transcription": true,
"speaker_diarization": true,
"custom_templates": true
}
}
],
"languages": {
"supported": [
"en",
"hi",
"ta",
"te",
"bn",
"mr",
"gu",
"kn",
"ml",
"pa"
],
"auto_detection": true
}
}Protocol
Discovery
Public, unauthenticated endpoint that advertises the service’s protocol version, supported authentication methods, audio capabilities, available models and supported languages. Clients should fetch this first and use the returned models, capabilities.audio_formats and capabilities.upload_methods to configure their session. The response is cacheable (Cache-Control: max-age=10800).
GET
/
voice
/
v1
/
.well-known
/
medscribealliance
Discovery
curl --request GET \
--url https://api.eka.care/voice/v1/.well-known/medscribeallianceimport requests
url = "https://api.eka.care/voice/v1/.well-known/medscribealliance"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.eka.care/voice/v1/.well-known/medscribealliance', 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.eka.care/voice/v1/.well-known/medscribealliance",
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.eka.care/voice/v1/.well-known/medscribealliance"
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.eka.care/voice/v1/.well-known/medscribealliance")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.eka.care/voice/v1/.well-known/medscribealliance")
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{
"protocol": "medscribealliance",
"protocol_version": "0.1",
"supported_versions": [
"0.1"
],
"service": {
"name": "Voice2Rx Medical Scribe Service",
"documentation_url": "https://developer.eka.care",
"support_email": "support@eka.care"
},
"endpoints": {
"base_url": "https://api.eka.care/voice/v1",
"webhooks_url": "https://api.eka.care/voice/v1/webhooks",
"templates_url": "https://api.eka.care/voice/api/v1/template"
},
"authentication": {
"supported_methods": [
"api_key",
"oidc"
],
"oidc": {
"issuer": "https://accounts.eka.care/oauth2",
"authorization_endpoint": "https://accounts.eka.care/oauth2/authorize",
"token_endpoint": "https://accounts.eka.care/oauth2/token",
"scopes_supported": [
"openid",
"profile"
]
}
},
"capabilities": {
"audio_formats": [
"audio/webm;codecs=opus",
"audio/wav",
"audio/ogg",
"audio/mp4",
"audio/m4a",
"audio/mp3"
],
"max_chunk_duration_seconds": 20,
"upload_methods": [
"chunked",
"single",
"stream"
],
"webhook_delivery": true,
"client_sdk_delivery": true
},
"models": [
{
"id": "lite",
"display_name": "Lite",
"languages": [
"en",
"hi"
],
"max_session_duration_seconds": 600,
"response_speed": "fast",
"features": {
"realtime_transcription": false,
"speaker_diarization": false,
"custom_templates": false
}
},
{
"id": "pro",
"display_name": "Professional",
"languages": [
"en",
"hi",
"ta",
"te",
"bn",
"mr",
"gu",
"kn",
"ml",
"pa"
],
"max_session_duration_seconds": 3600,
"response_speed": "standard",
"features": {
"realtime_transcription": true,
"speaker_diarization": true,
"custom_templates": true
}
}
],
"languages": {
"supported": [
"en",
"hi",
"ta",
"te",
"bn",
"mr",
"gu",
"kn",
"ml",
"pa"
],
"auto_detection": true
}
}Public, no-auth endpoint that advertises the service’s capabilities: models, audio formats, upload methods and languages. Fetch it once on startup (cacheable for 3 hours) and use it to configure Create Session.
Response
200 - application/json
Discovery document
Example:
"medscribealliance"
Example:
"0.1"
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Was this page helpful?
⌘I

