Install Jentic One Beta
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the MultiLocale API, or any other public or private API you need. You set the rules, the agent never sees your credentials, and every call is logged.
Two steps, two machines. Install the instance in a safe environment, then register your agent from wherever it runs.
Step 1: Jentic One Host machine
# On the machine that will host your Jentic One instance:
curl -fsSL "https://jentic.com/install.sh?src=apis&api=%2Fapis%2Fmultilocale.com%2Fmultilocale" | shStep 2: Agent machine
# On the machine where your agent runs (keep this separate from the instance):
curl -fsSL "https://jentic.com/install.sh?src=apis&api=%2Fapis%2Fmultilocale.com%2Fmultilocale" | sh
jentic register # connects your agent to your Jentic One instanceJentic One is in public beta. The setup above keeps your agent separate from the instance, which is what you want before using real credentials: an agent running as the same OS user as Jentic One can read its stored keys directly. Just evaluating? A single local install is fine to start. See the secure deployment guide for the tiers.
What an agent can do with MultiLocale API.
List phrases filtered by project, key, and language with cursor pagination over large string sets
Upsert one phrase or a batch of phrases with key, value, language, and projects in a single request
Delete every language of one translation key in a project at once
Create a project with its languages, rename it, or look it up by id or by name
GET STARTED
Retry writes safely with an Idempotency-Key honoured for 24 hours
Try demonstration phrases and an asynchronous translation job in the sandbox without a key
Patterns agents use MultiLocale API for, with concrete tasks.
★ AI coding agent syncing new UI strings
An AI coding agent that adds a feature also adds new interface strings, and they need to reach the translation store. Through Jentic the agent searches for 'add translation phrases to a project', loads the MultiLocale batch upsert operation with its input schema, and sends each new key with its English value and project name, with the key secret injected at call time. Translators then see the new keys in the project.
Call POST /api/v1/phrases/batch with phrases for keys checkout_title and checkout_cta in language en and projects ["website"], sending an Idempotency-Key
Pulling translations into a build
A build step fetches every phrase for one project and language to bundle into the app. The phrases list accepts project and language filters, and with pagination set to cursor it returns items and a nextCursor ordered by id, so the step can walk large string sets without skipping rows.
Call GET /api/v1/phrases with project=website, language=de, and pagination=cursor, following nextCursor until it is empty
Setting up a project for a new market
Launching in a new region means adding a language to a project. A project carries a name and a languages array, so a script can read the project by name, append the new language code, and update it by id, then start filling phrases for that language.
Call GET /api/v1/projects/{projectName} for website, then PUT /api/v1/projects/{projectId} with languages extended to include pt
Removing retired strings
After a feature is removed, its strings should not linger in every language. Deleting a phrase by key and project removes all of its translations together and emits a phrase.deleted event per row, which keeps the store clean without one call per language.
Call DELETE /api/v1/phrases with key=legacy_banner and project=website
13 endpoints — the multilocale api stores and serves the translation strings of an organization's apps and websites as phrases, each a key, a value, and a language belonging to one or more projects.
METHOD
PATH
DESCRIPTION
/api/v1/phrases
List phrases
/api/v1/phrases
Create or update phrases
/api/v1/phrases/batch
Upsert a batch of phrases
/api/v1/phrases
Delete a key in all languages
/api/v1/projects
List projects
/api/v1/projects
Create a project
/api/v1/projects/{projectId}
Update a project
/api/v1/sandbox/phrases
Read sandbox phrases without auth
/api/v1/phrases
List phrases
/api/v1/phrases
Create or update phrases
/api/v1/phrases/batch
Upsert a batch of phrases
/api/v1/phrases
Delete a key in all languages
/api/v1/projects
List projects
/api/v1/projects
Create a project
/api/v1/projects/{projectId}
Update a project
/api/v1/sandbox/phrases
Read sandbox phrases without auth
What agents get from Jentic-routed access to this vendor.
Setup
Wiring MultiLocale by hand means choosing between a Basic-encoded key secret, a dashboard Token, or an OAuth PKCE flow, then handling cursor pagination and Idempotency-Key headers on writes. Through Jentic you install once, import MultiLocale from the API Directory, store the key secret once, and your agent calls it.
Permission scoping
MultiLocale carries the project as a query parameter or body field on phrase routes, so rules bound which operations your agent may call, not which project's phrases. You choose the operations it may call, so destructive ones like deleting a key across all languages are not included unless you add them.
Credential isolation
Your MultiLocale key secret is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
Intent-based discovery
Agents search Jentic by intent such as 'add translation phrases to a project' or 'list phrases for a language', and Jentic returns the matching MultiLocale operation with its input schema, so the agent sends the right filters and phrase fields.
Alternatives and complements available in the Jentic catalogue.
Specific to using MultiLocale API through Jentic.
What authentication does the MultiLocale API use?
The MultiLocale OpenAPI spec declares three schemes for the phrase and project routes. An API key secret is sent with HTTP Basic auth as Authorization: Basic base64 of the secret, an operator session token from the dashboard is sent as Authorization: Token, and OAuth 2.0 authorization code with PKCE grants delegated access with scopes such as phrases:read and projects:write. The three sandbox routes need no credential. Through Jentic your key secret is held by your own instance and injected at call time.
Can I fetch only one language of a project with the MultiLocale API?
Yes. GET /api/v1/phrases takes project, key, and language query parameters, plus a fields selector. Setting pagination to cursor switches the response to items and nextCursor ordered by id for stable traversal of large projects.
What are the rate limits for the MultiLocale API?
The OpenAPI spec does not publish numeric limits. It documents a rate limit exceeded error, and the sandbox routes return the standard RateLimit response headers under an anonymous pacing limit. Check https://www.multilocale.com/docs/api/versioning/ and the related docs for current limits.
How do I add new strings to MultiLocale through Jentic?
Search Jentic for 'add translation phrases to a project', load the POST /api/v1/phrases/batch operation, and execute it with an array of phrases carrying key, value, language, and projects. Send an Idempotency-Key so a retry does not double-write. To run it on your own infrastructure, install Jentic One from its GitHub repo.
Can I limit what my agent is allowed to do with the MultiLocale API?
Yes. Write a rule that allows only GET /api/v1/phrases and POST /api/v1/phrases/batch, and the agent can read and add strings but cannot delete keys or create and rename projects. Every call it makes is logged, so you can review which keys it wrote.
Can I try MultiLocale without an account?
Yes. GET /api/v1/sandbox/phrases returns fixed demonstration phrases in the same key, value, and language shape, and POST /api/v1/sandbox/translationjobs starts a demonstration job you poll at GET /api/v1/sandbox/translationjobs/{jobId} until its status is succeeded.
For Agents
Read and write localization phrases and projects in MultiLocale: list strings by project, key, and language, upsert batches, and manage each project's languages.
Use for: List all German phrases in the website project, Add a new welcome_message key in English and French, Delete the old checkout_banner key from every language, Create a new project for the mobile app with en, de, and es
Not supported: Does not machine-translate phrases outside the sandbox demo, manage translator vendors, or parse resource files. Use for storing and reading localization phrases and projects only.
The MultiLocale API stores and serves the translation strings of an organization's apps and websites as phrases, each a key, a value, and a language belonging to one or more projects. Clients list phrases filtered by project, key, and language with cursor pagination, upsert one phrase or a batch, replace a phrase by id, and delete every language of a key in a project at once. Projects are created, renamed, and looked up by id or by name, each with its list of languages. Writes accept an Idempotency-Key for safe retries, and an unauthenticated sandbox serves demonstration phrases and an asynchronous translation job to try the API first.
This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.
Base layer of spec validity and structural soundness.
Aggregated quality score from linter diagnostics, weighted by severity.
Percentage of `$ref` references that resolve successfully.
Checks whether the API description parses successfully and conforms to its declared specification (e.g., OpenAPI).
Structural correctness score based on schema issues using logarithmic dampening.
Clarity, completeness, and ingestion readiness for developers and tooling.
How richly the API is illustrated with examples.
Percentage of examples that conform to their schemas.
Percentage of operations with complete response definitions (success, client error, server error).
Health of API ingestion, bundling, and resolution within Jentic pipelines.
Semantic breadth, depth, and agent comprehension for AI systems.
Coverage of descriptions across API elements.
Coverage of RFC 9457 Problem Details for error responses.
Coverage, uniqueness, and casing consistency of operationIds for AI inference.
Coverage of summaries across operations/tags/info.
Functional utility, complexity comfort, and AI orchestration readiness.
Agent comfort level based on API operational and structural complexity.
Trust, risk posture, and security compliance.
Average quality of security schemes based on authentication method strength (weakest link for OAuth2).
Findability, semantic richness, and reasoning readiness.
Clarity and depth of descriptions across API elements.
Score it yourself
Every API in the directory is allowlisted, so you can re-score it with no key required.
npx @jentic/api-scorecard-cli score <openapi-url>