Skip to content

Engine Model and Preset Resources

Download recognition model content and resolve the runtime audio and language configuration for a preset.

Internal API

The Desktop API is internal and must not be used for customer integrations. Compatibility is not guaranteed, and these endpoints may change without notice.

Method Endpoint Description
GET /api/v1/models/{name}/content Download Model Content
HEAD /api/v1/models/{name}/content Inspect Model Content
GET /api/v1/presets/{name}/runtime-config Get Preset Runtime Configuration

Download Model Content

GET /api/v1/models/{name}/content

Requires Authentication - Scopes: speech:models:download

Stream a model archive. Downloads support one HTTP byte range and ETag-based cache validation.

Path Parameters
Parameter Type Required Description
name string Yes Model name. Matching is case-insensitive. URL-encode reserved characters.
Request Headers
Header Required Default Description
Range No Entire archive One byte range, for example bytes=1048576-2097151 or bytes=-1048576. Multiple ranges are not supported.
If-None-Match No - Return 304 Not Modified when *, the current ETag, or its weak form matches.
If-Range No - Apply Range only when this value exactly matches the current ETag; otherwise return the complete archive.
curl https://koldan.dixilang.com/api/v1/models/he-medical-v2/content \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -o he-medical-v2.tar.gz
curl https://koldan.dixilang.com/api/v1/models/he-medical-v2/content \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H 'Range: bytes=1048576-' \
  -H 'If-Range: "f2a9b804..."' \
  -o he-medical-v2.part
Binary Response
Header Present Description
Content-Type Always application/gzip.
Content-Disposition Always Attachment file name: {modelName}.tar.gz.
Content-Length 200/206 Bytes returned. Also present on a successful HEAD response.
ETag Always Current content validator.
Last-Modified When available Last modification time.
Cache-Control Always no-cache, must-revalidate.
Accept-Ranges Always bytes.
Content-Range 206/416 Selected range for 206; bytes */{totalLength} for 416.
X-Content-Type-Options Always nosniff.
Status Description
200 OK Complete archive returned.
206 Partial Content Requested byte range returned.
304 Not Modified If-None-Match matched; no body is returned.
401 Unauthorized Access token is missing or invalid.
403 Forbidden Token does not include speech:models:download.
404 Not Found Model was not found.
416 Range Not Satisfiable Range is malformed, contains multiple ranges, or falls outside the archive. Content-Range is bytes */{totalLength}.
500 Internal Server Error Model metadata or content could not be read.

Inspect Model Content

HEAD /api/v1/models/{name}/content

Requires Authentication - Scopes: speech:models:download

Return the same metadata headers as a complete GET request without sending archive bytes. If-None-Match is supported. Range is ignored for HEAD.

curl --head https://koldan.dixilang.com/api/v1/models/he-medical-v2/content \
  -H "Authorization: Bearer $ACCESS_TOKEN"
Status Description
200 OK Model metadata headers returned with no body.
304 Not Modified If-None-Match matched.
401 Unauthorized Access token is missing or invalid.
403 Forbidden Token does not include speech:models:download.
404 Not Found Model was not found.

Get Preset Runtime Configuration

GET /api/v1/presets/{name}/runtime-config

Requires Authentication - Scopes: speech:presets:read

Resolve recognition readiness, model audio format, and language direction for one preset.

Path Parameters
Parameter Type Required Description
name string Yes Preset name. URL-encode reserved characters.
curl https://koldan.dixilang.com/api/v1/presets/general-he/runtime-config \
  -H "Authorization: Bearer $ACCESS_TOKEN"
import requests

response = requests.get(
    "https://koldan.dixilang.com/api/v1/presets/general-he/runtime-config",
    headers={"Authorization": f"Bearer {ACCESS_TOKEN}"},
)
response.raise_for_status()
print(response.json())
PresetRuntimeConfigResponse
Field Type Nullable Description
name string No Stable preset name.
displayName string No User-facing preset name.
description string Yes Preset description.
ready boolean No Whether the preset is currently available for recognition. Default when unavailable: false.
model PresetRuntimeModel Yes Model audio and language configuration. null when no model is resolved.
PresetRuntimeConfigResponse
{
  "name": "general-he",
  "displayName": "General Hebrew",
  "description": "General-purpose Hebrew recognition",
  "ready": true,
  "model": { "...": "..." }
}
PresetRuntimeModel
Field Type Nullable Description
name string No Model name.
displayName string No User-facing model name.
sampleRate integer No PCM sample rate in hertz. Default when the model has no explicit rate: 16000.
language PresetRuntimeLanguage No Model language metadata.
PresetRuntimeLanguage
Field Type Nullable Description
name string No Stable language name or code. Default when unknown: unknown.
localDisplayName string Yes Language name in that language.
globalDisplayName string Yes Language name for a general-language UI.
rtl boolean No Whether recognized text should be presented right-to-left. Defaults to true when no language metadata is available.
Status Description
200 OK Runtime configuration returned.
401 Unauthorized Access token is missing or invalid.
403 Forbidden Token does not include speech:presets:read.
404 Not Found Preset was not found.