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-stt and larsa-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_format with json_schema and strict: true grammar-constrains the chat models' output to your schema. See Structured output.
  • PDF. POST /v1/pdf renders 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's bge-m3, 1024 dimensions) is now reachable through the gateway at POST /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 403 for 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 /v1 API or the non-chat tool routes now lives at console.larsa.larsima.com; api.console.larsa.larsima.com redirects anything else there.

2026-10-08

  • TTS voice catalogue. larsa-tts moved from one voice per engine to a named catalogue — default, male, female, plus a first per-language male/female id 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/female id 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/transcriptions and 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/transcribe and wss://console.larsa.larsima.com/api/realtime/transcribe are served again, with the same contract as before and authentication by the bearer.<key> subprotocol or an Authorization: Bearer header; 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-tts and data-embed; new hosts api.data.larsima.com, console.data.larsima.com and chat.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/transcribe and wss://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 the enabled flag 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_search or mcp bypass 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-es does: answers come only from the retrieved text, in the language of the question, with citations such as 26 U.S.C. § 6531; data-auto now 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-sa cites the authoritative Arabic text; official English translations only help retrieval. data-auto routes 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 a file_search_call item and file_citation annotations, with response.output_text working in the OpenAI SDK and stream: true supported. An unknown vector store id is refused with 404 instead 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/completions and /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/responses now also works on data-law-ir, data-law-es, data-law-us, data-law-tr and data-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/search returns ranked passages from the Iranian, Spanish/EU, US, Turkish and Saudi corpora with no model in between. See Law search.
↑↓ Navigate ↵ Open esc Close