Developer API v1
Ship translations with confidence.
One place to discover the API surface, choose the right credential, and copy a working request. Start with public exports, wire your app to OTA delivery, or connect an AI coding agent through the Model Context Protocol server.
Choose an API
Public automation
Use from CI/CD, trusted servers, and migration agents to list projects, export files, or run reviewed imports.
View public API →OTA delivery
Use SDK credentials to fetch signed-invariant manifests and immutable locale artifacts.
View OTA API →Workspace automation
Use the authenticated dashboard for organization-aware administration and localization workflows.
View workspace API →AI coding tools
Connect Cursor, Claude Code, and other MCP hosts to projects, exports, and the reviewed import workflow.
Set up the MCP server →Quick start
Make your first request in two minutes.
- Create an organization API credential under Settings → Developer.
- Store the access key and one-time secret in your CI secret manager.
- List projects, export one locale, run a reviewed import, or wire your SDK to OTA.
curl --user "$GOLOCALISE_ACCESS_KEY:$GOLOCALISE_SECRET" \
"https://api.golocalise.me/api/v1/projects?limit=50"curl --fail --location \
--user "$GOLOCALISE_ACCESS_KEY:$GOLOCALISE_SECRET" \
"https://api.golocalise.me/api/v1/projects/PROJECT_ID/translations?environment=production&language=ar&namespace=checkout&format=json" \
--output checkout.ar.jsoncurl --fail \
-H "Authorization: Bearer $GOLOCALISE_SDK_TOKEN" \
"https://api.golocalise.me/ota/v1/projects/PROJECT_ID/environments/production/manifest?locale=ar"Endpoint catalog
Every integration surface, clearly labeled.
Public Developer API
Server-to-server exports and reviewed import jobs for CI, migration agents, and tooling.
GET/api/v1/projectsList active projects in the credential organization.GET/api/v1/projects/{projectId}/translationsExport published or explicitly selected translation statuses.POST/api/v1/projects/{projectId}/environments/{environmentSlug}/import-sessions/analyzeAnalyze up to 20 files without changing project translations.GET / POST/api/v1/projects/{projectId}/environments/{environmentSlug}/import-sessions/{sessionId}Poll, review, report, approve, or cancel a durable import session.OTA delivery API
Read-only, cacheable artifacts consumed by mobile, web, and backend clients.
GET/ota/v1/projects/{projectId}/environments/{environmentSlug}/manifestResolve the current release and locale artifact hashes.GET/ota/v1/projects/{projectId}/environments/{environmentSlug}/releases/{version}/locales/{locale}/{hash}Download an immutable locale artifact.Workspace API
The signed-in dashboard API. It is useful for internal integrations and custom admin tooling, but is not a public client API.
Projects/api/projectsCreate, list, update, and archive projects.Structure/api/projects/{projectId}/environments · /languages · /namespaces · /keysRead and manage localization structure.Translations/api/projects/{projectId}/environments/{environmentSlug}/keys/{keyId}/translationsRead editor data and autosave locale values.Workflow/api/projects/{projectId}/environments/{environmentSlug}/workflow/*Transition, bulk transition, inspect history, restore revisions, and check eligibility.Files/api/projects/{projectId}/environments/{environmentSlug}/localization-files/{format}/*Preview/import/export JSON, Apple strings, and Android XML.Releases/api/projects/{projectId}/environments/{environmentSlug}/releases/*Create, inspect, and rollback immutable release snapshots.Promotions/api/projects/{projectId}/promotionsPreview, apply, and list environment promotions.AI/api/projects/{projectId}/environments/{environmentSlug}/languages/{languageId}/ai-suggestionRequest a translation suggestion for a configured target language.Credentials/api/organizations/{organizationId}/api-credentials · /api/projects/{projectId}/environments/{environmentSlug}/sdk-credentialsManage organization API credentials and SDK tokens.Model Context Protocol
Use GoLocalise from Cursor, Claude, and other MCP hosts.
@golocalise/mcp-server is the official Model Context Protocol server for GoLocalise. It lets AI developer tools discover projects, export translations, and run the same reviewed import workflow as the dashboard. It is a thin stdio adapter over the public Developer API v1: every call uses one organization API credential, its explicit scopes, tenant isolation, and the durable Import V2 review gate. The server never bypasses GoLocalise authorization, and analysis never changes translations.
- Node.js 20.19 or newer
- One organization API credential
- Any stdio MCP host
Setup
- Sign in to GoLocalise and open Settings → Developer → API credentials.
- Create a dedicated credential. The default selection (
projects:read,translations:read,exports:read) is read-only. Addimports:writeonly when the agent must import translations. - Copy the access key and the one-time secret from the dialog. The same dialog shows a ready-to-use MCP configuration with both values filled in.
- Add the configuration below to your MCP host and restart it.
- Ask the assistant to list your GoLocalise projects.
{
"mcpServers": {
"golocalise": {
"command": "npx",
"args": ["-y", "@golocalise/mcp-server"],
"env": {
"GOLOCALISE_ACCESS_KEY": "gl_live_…",
"GOLOCALISE_SECRET": "gl_secret_…"
}
}
}
}Host configuration
- Cursor
~/.cursor/mcp.jsonAdd the block to the global file for every project, to .cursor/mcp.json inside one workspace, or use Settings → MCP → Add new MCP server.
- Claude Desktop
claude_desktop_config.jsonOpen Settings → Developer → Edit Config and add the block to the config file.
- Claude Code
.mcp.jsonAdd the block to the .mcp.json file in your project root, or register the same command, arguments, and environment values with claude mcp add.
The JSON shape is identical everywhere: command runs npx, which downloads and executes the published package and passes the credential through env.
Configuration reference
| Variable | Required | Purpose |
|---|---|---|
GOLOCALISE_ACCESS_KEY | Required | Organization API credential access key (gl_live_…). |
GOLOCALISE_SECRET | Required | One-time secret shown at creation or rotation (gl_secret_…). |
GOLOCALISE_API_ORIGIN | Optional | API origin. Defaults to https://api.golocalise.me; override it only for a local, staging, or self-hosted API. |
Malformed or non-http(s) origins and missing credential variables make the server exit immediately with a clear error instead of failing later mid-tool.
{
"mcpServers": {
"golocalise": {
"command": "npx",
"args": ["-y", "@golocalise/mcp-server"],
"env": {
"GOLOCALISE_ACCESS_KEY": "gl_live_…",
"GOLOCALISE_SECRET": "gl_secret_…",
"GOLOCALISE_API_ORIGIN": "https://api.golocalise.me"
}
}
}
}Credentials and scopes
| Scope | Needed for |
|---|---|
projects:read | golocalise_list_projects. |
translations:read | Reading translations and import sessions. |
exports:read | golocalise_export_translations (JSON, Apple, Android). |
imports:writeWrite | golocalise_analyze_import, golocalise_proceed_import, golocalise_cancel_import. |
Use read-only scopes for research and review agents. Grant imports:write only to an agent you trust to import translations. Credentials are server-side secrets: keep them in the host's private environment configuration, never commit them, never paste them into prompts, and rotate or revoke them from Organization Settings. Secrets are displayed only once at creation or rotation; the dashboard never reveals a stored secret again.
Tools
| Tool | Scope | Behavior |
|---|---|---|
golocalise_list_projects | projects:read | List active projects in the credential's organization (paged). |
golocalise_export_translations | translations:read, exports:read | Export filtered, environment-scoped translations. |
golocalise_analyze_import | imports:write | Analyze up to 20 files. Never changes translations. |
golocalise_get_import_session | imports:write | Poll a durable session until it is ready, completed, etc. |
golocalise_list_import_items | imports:write | Page through analyzed items; filter classification=conflict. |
golocalise_proceed_importWrite action | imports:write | Apply one approved analysis snapshot. |
golocalise_cancel_import | imports:write | Cancel a session that has not completed. |
Responses are bounded; if a response is too large the server explains how to narrow languages, namespaces, keys, statuses, or item classification.
Analyze, approve, and apply
- Step 1
Analyze
golocalise_analyze_importUploads up to 20 files (inline UTF-8contentorcontentBase64for binary formats such as XLSX) and returns a durable session. Nothing is written. - Step 2
Review
golocalise_get_import_sessionPoll until the session isready, read the report and counts, then pagegolocalise_list_import_items?classification=conflictto collect every decision the review policy requires. - Step 3
Apply
golocalise_proceed_importCall with the session'sanalysisHashandprojectStateHashexactly as returned, plus one resolution (keep_existing,use_imported, orexclude) per review-policy conflict. The server rejects stale or partial snapshots. - Step 4
Wait
Poll the session until it reports
completedorfailed.
Production imports stay disabled and must go through the dashboard promotion flow. Development and staging accept imports. Cancelling or abandoning a session never deletes translations committed by another completed session.
Troubleshooting
- The host reports the credential variables are required
The env block is missing or malformed. Fix the JSON and fully restart the host.
- GoLocalise API 401
The secret is wrong, expired, rotated, or revoked. Rotate the credential and update the host configuration.
- GoLocalise API 403
The credential lacks the scope for that tool. Add only the scope you actually need.
- GoLocalise API 404
Wrong project or environment ID, an archived project, or a project that belongs to another organization. Credentials only ever see their own organization.
- GoLocalise API 429
The per-credential request budget was exceeded. Wait a minute or narrow the requests.
- Response above the MCP limit
Add filters (languages, namespaces, keys, statuses) or page through sessions with limit/cursor.
- npx fails or the server exits immediately
Confirm Node.js 20.19+ is on PATH, then try npx -y @golocalise/mcp-server once from a terminal with the same environment variables to see the exact startup error.
Related repository guides: docs/api/v1.md, docs/guides/credentials-and-security.md, and docs/guides/imports.md.
Security & errors
Safe defaults for production integrations.
Credentials
Basic-auth secrets are server-only. SDK tokens are read-only and may only access published OTA artifacts. Rotate or revoke credentials from Organization Settings.
Responses
400 validation · 401 missing or invalid credential · 403 missing scope · 404 tenant-hidden resource · 429 rate limit.
Caching
OTA responses provide ETag. Cache manifests with revalidation and locale artifacts as immutable content.
fetch("https://api.golocalise.me/api/projects/PROJECT_ID/environments/production/languages", {
credentials: "include",
});The workspace endpoints use the browser session and inherit organization RBAC. Do not expose session cookies or admin credentials in a public client.
For schemas, filters, examples, and compatibility rules, see the versioned docs/api/v1.md contract in the repository and return to the Developer Hub.