← Concepts

Keys & environments

A Langsys project issues two kinds of API key. Which one you use depends on whether you're discovering new phrases (development) or just displaying finished translations (production). Both are minted in the dashboard — the Quickstart walks through it.

Watch · 1:30 Keys & environments

Two keys, two jobs

Key type Can do Use it in
WriteFetch translations and register newly-discovered phrases into the project.Development / server-side. Keep it out of public bundles.
Read-onlyFetch translations only. Cannot register or modify anything. Production / the browser. Safe to ship in client code.

Why a read-only key is safe in the browser. It physically can't write — the worst anyone can do with it is read the same public translations your users already see. That's the whole point of the split.

The typical flow

Watch · 1:30 API keys in production
  1. Develop with a write key. As you build the UI, new phrases are discovered, registered, and machine-translated into your target locales.
  2. Once the copy settles, switch the deployed app to a read-only key.
  3. Users fetch the finished catalog; nothing they hold can change your project.
Development
# .env.local — development
VITE_LANGSYS_PROJECT_ID=your-project-id
VITE_LANGSYS_API_KEY=write-key   # discovers + registers new phrases
Production
# production
VITE_LANGSYS_PROJECT_ID=your-project-id
VITE_LANGSYS_API_KEY=read-only-key   # only fetches — safe to ship

What a project holds

Watch · 2:24 AI Translator settings

The key authenticates against a project, which defines the translation universe for your app:

Running these demos locally? Point the SDK at your own instance with a read-only key — see the project's .env.example. Otherwise the panels run in demo mode (source text only).

Search the docs & Learning Center