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.

Production origin https://api.golocalise.me · Auth Basic or SDK token · MCP npx @golocalise/mcp-server

Choose an API

Basic auth

Public automation

Use from CI/CD, trusted servers, and migration agents to list projects, export files, or run reviewed imports.

View public API →
Bearer token

OTA delivery

Use SDK credentials to fetch signed-invariant manifests and immutable locale artifacts.

View OTA API →
Session cookie

Workspace automation

Use the authenticated dashboard for organization-aware administration and localization workflows.

View workspace API →
MCP server

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.

  1. Create an organization API credential under Settings → Developer.
  2. Store the access key and one-time secret in your CI secret manager.
  3. List projects, export one locale, run a reviewed import, or wire your SDK to OTA.
List projects
curl --user "$GOLOCALISE_ACCESS_KEY:$GOLOCALISE_SECRET" \
  "https://api.golocalise.me/api/v1/projects?limit=50"
Export a locale
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.json
Read an OTA manifest
curl --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.

Basic auth
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.

SDK token
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.

Session cookie
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

  1. Sign in to GoLocalise and open Settings → Developer → API credentials.
  2. Create a dedicated credential. The default selection (projects:read, translations:read, exports:read) is read-only. Add imports:write only when the agent must import translations.
  3. 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.
  4. Add the configuration below to your MCP host and restart it.
  5. Ask the assistant to list your GoLocalise projects.
MCP host configuration
{
  "mcpServers": {
    "golocalise": {
      "command": "npx",
      "args": ["-y", "@golocalise/mcp-server"],
      "env": {
        "GOLOCALISE_ACCESS_KEY": "gl_live_…",
        "GOLOCALISE_SECRET": "gl_secret_…"
      }
    }
  }
}

Host configuration

  • Cursor~/.cursor/mcp.json

    Add 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 Desktopclaude_desktop_config.json

    Open Settings → Developer → Edit Config and add the block to the config file.

  • Claude Code.mcp.json

    Add 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

VariableRequiredPurpose
GOLOCALISE_ACCESS_KEYRequiredOrganization API credential access key (gl_live_…).
GOLOCALISE_SECRETRequiredOne-time secret shown at creation or rotation (gl_secret_…).
GOLOCALISE_API_ORIGINOptionalAPI 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.

Custom API origin configuration
{
  "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

ScopeNeeded for
projects:readgolocalise_list_projects.
translations:readReading translations and import sessions.
exports:readgolocalise_export_translations (JSON, Apple, Android).
imports:writeWritegolocalise_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

ToolScopeBehavior
golocalise_list_projectsprojects:readList active projects in the credential's organization (paged).
golocalise_export_translationstranslations:read, exports:readExport filtered, environment-scoped translations.
golocalise_analyze_importimports:writeAnalyze up to 20 files. Never changes translations.
golocalise_get_import_sessionimports:writePoll a durable session until it is ready, completed, etc.
golocalise_list_import_itemsimports:writePage through analyzed items; filter classification=conflict.
golocalise_proceed_importWrite actionimports:writeApply one approved analysis snapshot.
golocalise_cancel_importimports:writeCancel 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

  1. Step 1

    Analyze

    golocalise_analyze_import Uploads up to 20 files (inline UTF-8 content or contentBase64 for binary formats such as XLSX) and returns a durable session. Nothing is written.

  2. Step 2

    Review

    golocalise_get_import_session Poll until the session is ready, read the report and counts, then page golocalise_list_import_items?classification=conflict to collect every decision the review policy requires.

  3. Step 3

    Apply

    golocalise_proceed_import Call with the session's analysisHash and projectStateHash exactly as returned, plus one resolution (keep_existing, use_imported, or exclude) per review-policy conflict. The server rejects stale or partial snapshots.

  4. Step 4

    Wait

    Poll the session until it reports completed or failed.

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.

Signed-in workspace request
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.