One key. Every model your product needs.
Chat, vision, speech, translation and retrieval behind a single OpenAI-compatible endpoint, running on GPU hardware we operate ourselves.
No credit card needed to try the Playground.
curl https://api.larsa.larsima.com/v1/chat/completions \
-H "Authorization: Bearer $LARSA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "larsa-general",
"messages": [
{"role": "user", "content": "Summarize this clause in plain language."}
]
}'import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["LARSA_API_KEY"],
base_url="https://api.larsa.larsima.com/v1",
)
resp = client.chat.completions.create(
model="larsa-general",
messages=[{"role": "user", "content": "Summarize this clause in plain language."}],
)
print(resp.choices[0].message.content)import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.LARSA_API_KEY,
baseURL: "https://api.larsa.larsima.com/v1",
});
const resp = await client.chat.completions.create({
model: "larsa-general",
messages: [{ role: "user", content: "Summarize this clause in plain language." }],
});
console.log(resp.choices[0].message.content);package main
import (
"context"
"fmt"
"os"
openai "github.com/sashabaranov/go-openai"
)
func main() {
cfg := openai.DefaultConfig(os.Getenv("LARSA_API_KEY"))
cfg.BaseURL = "https://api.larsa.larsima.com/v1"
client := openai.NewClientWithConfig(cfg)
resp, _ := client.CreateChatCompletion(context.Background(), openai.ChatCompletionRequest{
Model: "larsa-general",
Messages: []openai.ChatCompletionMessage{
{Role: "user", Content: "Summarize this clause in plain language."},
},
})
fmt.Println(resp.Choices[0].Message.Content)
}Nine capabilities, one endpoint
Every request carries the same key and lands on the same bill, whichever of these it calls.
Chat & reasoning
Multi-turn chat, streaming and step-by-step reasoning, in the request shape every OpenAI-compatible client already speaks.
Vision & OCR
Send an image or a scanned page and get back a description, an answer, or the text sitting on it.
Speech-to-text
Transcribe a file in one call, or stream a live microphone and get words back as they are spoken.
Text-to-speech
Natural speech from text, streamed back as audio while it is still being generated.
Embeddings
Vectors for search, clustering and classification, priced the same way as everything else: per token.
Translation
Translate text or whole documents, tuned for the English, Persian and Spanish the platform reads best.
Retrieval
Ground an answer in your own documents, or in the built-in Iranian and Spanish/EU legal corpora.
HTML to PDF
Render HTML to a paginated PDF in one request — invoices, contracts, reports.
Code interpreter
A sandboxed Python the model can run for itself, for the calculations and files talking alone cannot do.
Drop-in compatible
If your code already calls the OpenAI SDK, it already calls Larsa. Change one string and keep everything else.
- The same request and response shapes, the same error format, the same streaming protocol.
- Every official OpenAI SDK works unmodified — Python, Node, or anything built on the plain REST API.
- Nothing else in your code has to know it is talking to different hardware.
client = OpenAI(api_key=LARSA_API_KEY,
base_url="https://api.larsa.larsima.com/v1")
The pieces an agent needs
Paid add-ons for the parts of a product that go past a single chat call.
Skills
PaidPackage a workflow once — a form-filler, a document drafter — and call it like any other model.
MCP servers
PaidConnect Model Context Protocol servers so a request can read and act on tools you already run.
Knowledge bases
PaidUpload your own documents once per customer; any chat call can retrieve from them.
Function calling
PaidDescribe your functions and the model decides when to call them, in the same shape as OpenAI's.
Web search
PaidLet a chat call reach past its training data and cite what it found.
Fluent where the work is
The models read English, Persian and Spanish best — the languages the legal corpora are written in. The console around them speaks 96 languages, seven of them right-to-left, so the interface is never the part that struggles.
Frequently asked
Chat and reasoning, vision and OCR, batch and real-time speech-to-text, text-to-speech, embeddings, translation, retrieval and a sandboxed code interpreter — one key, one bill.
Yes. Point an existing OpenAI client at our base URL and keep the rest of your code — models, streaming and function calling all work the same way.
Pay-as-you-go, metered to the token, with no minimum spend and no seat fees. Your bill is the sum of what you actually called.
On GPU hardware we operate ourselves, not a shared cloud tenancy — the same machines serve the Playground, the API and legal-corpus retrieval.
The API itself is strongest in English, Persian and Spanish. The console interface is translated into 96 languages, seven of them right-to-left.
Yes — the Playground runs in the browser against the live API, no key required to start.
Start building on Larsa
Create an account and get an API key in under a minute.