Changelog
What actually shipped, dated.
2026-08-26
The platform's first documented release: the gateway, the model roster behind it, and the console and docs site you are reading now.
- Gateway. An OpenAI-compatible API in front of this platform's own hardware, serving
larsa-auto,larsa-general,larsa-general-fast,larsa-law-ir,larsa-law-es,larsa-sttandlarsa-tts— chat with vision, two retrieval-grounded legal models (Iranian law over 117,499 provisions; Spanish/EU law over 835,951), speech to text and text to speech. See Models. - Structured output.
response_formatwithjson_schemaandstrict: truegrammar-constrains the chat models' output to your schema. See Structured output. - PDF.
POST /v1/pdfrenders HTML to PDF in headless Chromium — real layout and bidi, right-to-left included, with no network reachable from the page being rendered. See PDF. - Console and docs. A design system and page shells covering the public site, the customer console and the owner panel; text in 96 languages, seven of them right-to-left; and the documentation site you are reading, with every request example in ten languages.
2026-09-10
- `larsa-general-fast` removed. It pointed at the exact same backend as
larsa-general— no second engine ever served it — so selecting it produced no distinct behaviour, only the appearance of a choice. See Models.
2026-09-14
- `larsa-general-eval` removed. The second llama.cpp server it pointed at (a downstream A/B acceptance test) was shut down; the name is gone rather than left behind pointing at nothing.
- Embeddings published.
larsa-embed(BAAI'sbge-m3, 1024 dimensions) is now reachable through the gateway atPOST /v1/embeddings. It existed on this host before but was never exposed publicly, despite being documented. See Embeddings. - The non-chat API moved to the tools gateway. Knowledge bases, uploaded files, skills, MCP servers, PDF rendering and the Python sandbox answered
403for every customer key ever issued — only the operator's master key could reach them, because the gateway's own pass-through allow list is a LiteLLM Enterprise field this build doesn't have. These routes are now served by the tools gateway (127.0.0.1:8098), which resolves a customer's own key to an organisation itself.
2026-10-07
- The console moved to its own hostname. Everything that isn't the
/v1API or the non-chat tool routes now lives atconsole.larsa.larsima.com;api.console.larsa.larsima.comredirects anything else there.
2026-10-08
- TTS voice catalogue.
larsa-ttsmoved from one voice per engine to a named catalogue —default,male,female, plus a first per-languagemale/femaleid for Persian and each of the 23 Chatterbox languages. New:GET /v1/audio/voices, which lists every id. See Text to speech.
2026-10-09
- Five voices per gender, per language. The per-language catalogue grew from one
male/femaleid to five (<lang>-male-1..5,<lang>-female-1..5) for Persian and every Chatterbox language — 243 voice ids in total — for scenes with more than one speaker of the same gender. See Text to speech. - Speech-to-text: language auto-detection and a repetition guard.
/v1/audio/transcriptionsand the realtime WebSocket now auto-detect the spoken language (falling back to Persian when unsure, or for one of Persian's own confusables) instead of assuming Persian outright, and accept ISO 639-1 codes as well as Whisper language names. A cheap word-level check now catches a transcript that fell into a repetition loop and retries or collapses it, on every request. See Speech to text and Realtime transcription. - Realtime WebSocket restored on both origins.
wss://api.console.larsa.larsima.com/api/realtime/transcribeandwss://console.larsa.larsima.com/api/realtime/transcribeare served again, with the same contract as before and authentication by thebearer.<key>subprotocol or anAuthorization: Bearerheader; a missing or invalid key is refused at the handshake. See Realtime transcription.
2026-10-09
- Renamed to Data. New model ids
data-general,data-auto,data-law-ir,data-law-es,data-stt,data-ttsanddata-embed; new hostsapi.data.larsima.com,console.data.larsima.comandchat.data.larsima.com. The old model names (larsa-*,lardad-*) and the old hosts remain as deprecated aliases for now and will be removed after a notice period. See Models. - Realtime WebSocket. The transcription endpoint is now also served at
wss://api.data.larsima.com/api/realtime/transcribeandwss://console.data.larsima.com/api/realtime/transcribe, with the same contract. See Realtime transcription. - Skills: 13 built-in skills, enforced per organisation; per-organisation response cache. The catalogue now ships 13 built-in skills (contract review, legal notice and brief drafting, strict-JSON extraction, Persian copy-editing and more) next to
legal-exam-mcq, and theenabledflag is enforced per organisation — a skill your organisation has not enabled is ignored. Chat responses are now cached per organisation, never shared across organisations, and requests that use skills, tools,file_search,web_search,code_interpreter,law_searchormcpbypass the cache. See Skills.
2026-10-13
- New model: `data-law-us`. US federal law, retrieval-grounded over 140,414 provisions (United States Code, Federal Rules of Civil, Criminal, Appellate, Bankruptcy procedure and Evidence, and selected CFR including 26 CFR part 1). It works the way
data-law-esdoes: answers come only from the retrieved text, in the language of the question, with citations such as26 U.S.C. § 6531;data-autonow routes explicit US-law questions to it. Federal law only; state law is not covered. See Models. - New models: `data-law-tr` and `data-law-sa`. Turkish law (15 laws, 6,339 provisions) and Saudi law (13 laws, 3,616 provisions). Both were built from archived snapshots of the official portals, so each answer states the snapshot date of the text it relied on and notes that later amendments may not be reflected.
data-law-sacites the authoritative Arabic text; official English translations only help retrieval.data-autoroutes explicit Turkish-law and Saudi-law questions to them. See Models. - `file_search` now works on `/v1/responses`. A Responses API request with
tools=[{"type": "file_search", "vector_store_ids": [...]}]used to be answered without searching, from the model's general knowledge. It now runs the search and answers from your files, returning afile_search_callitem andfile_citationannotations, withresponse.output_textworking in the OpenAI SDK andstream: truesupported. An unknown vector store id is refused with404instead of being answered from memory. See File search. - `file_search` always searches first, and `/v1/responses` works on the law models. When a request names
vector_store_ids, the platform now searches them with the user's last message before the model answers, on both/v1/chat/completionsand/v1/responses, so loosely worded questions are no longer answered from memory (the model can still search again).tool_choice: "none"turns this off./v1/responsesnow also works ondata-law-ir,data-law-es,data-law-us,data-law-tranddata-law-sa, streaming included, and requests the platform rejects with a 4xx can no longer take a model offline.
2026-10-14
- Raw legal retrieval.
POST /v1/law/searchreturns ranked passages from the Iranian, Spanish/EU, US, Turkish and Saudi corpora with no model in between. See Law search.