API

API reference

Where to find authoritative endpoint documentation and the conventions every endpoint follows.

Not verified yet

The authoritative endpoint reference for LangSync is the live OpenAPI / Swagger spec served by the LangSync backend. The dashboard at app.norcube.com calls the same API for every action.

Endpoint paths can change. Treat the Swagger spec as the source of truth; this page captures conventions only.

Where to find the Swagger UI

The Swagger UI is served at /swagger/ on the LangSync service host. The host is your Norcube account's LangSync API endpoint – exposed via the PUBLIC_LANGSYNC_SERVICE_BACKEND environment variable in the JDS dashboard repo and listed in your account settings.

Authentication

Every endpoint accepts one of two schemes in the Authorization header:

  • Bearer <JWT> – short-lived user-session token. Used by the dashboard and the LangSync CLI. The official tooling refreshes automatically; if you're integrating manually, mint org-scoped tokens via the auth service (see Platform → Tokens).
  • Apikey <key> – long-lived application credential. See Manage API keys. Bearer is also accepted with the same value for compatibility.

Resource groups

LangSync exposes endpoints under these resource groups:

  • Namespaces – CRUD + language attach/detach.
  • Terms – CRUD + translation cell edits + AI recommendation + bulk import (file upload + precheck + finish).
  • Sync jobs – enqueue + poll.
  • Glossary – CRUD on the org's glossary and its items + translations.
  • Languages – list shared + custom; create/delete custom languages.
  • Manual translation – translate arbitrary text + manage custom prompts.
  • API keys – list / create / revoke.
  • Public API – read-only translation fetch for runtime use. See Public API.

For exact paths, request bodies, and response shapes, open the Swagger UI.

Pagination

List endpoints use cursor-based pagination. Pass cursor and limit query parameters; the response includes cursors.next (or null when you've reached the end).

Errors

Every error response is a JSON object:

{
  "code": "INVALID_TOKEN",
  "message": "The provided token is invalid or has expired."
}

The HTTP status code reflects the category (4xx client / 5xx server) and the code field gives a programmatic identifier. See Limits and errors for the common codes.

On this page