# @lokalise/node-api

> Official Lokalise API 2.0 Node.js client

Latest version **16.5.0** (published 2026-09-17) · BSD-3-Clause license · 0 weekly downloads

## Install

```sh
npm install @lokalise/node-api
pnpm add @lokalise/node-api
yarn add @lokalise/node-api
bun add @lokalise/node-api
```

## Health

**Score 70/100 (B)** — status: active.

Positive: has types; esm support; no vulnerabilities; recently updated; high maintenance score; high quality score.

Warnings: low downloads.

## Facts

| | |
|---|---|
| Version | 16.5.0 |
| Published | 2026-09-17 |
| First published | 2019-01-22 |
| Weekly downloads | 0 |
| License | BSD-3-Clause |
| TypeScript types | bundled |
| Module format | ESM |
| Node | >=22.19.0 |
| Dependencies | 0 |
| Unpacked size | 557.4 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 69 |
| Author | Lokalise group, Ilya Krukowski |
| Maintainers | bodrovis, botlokalise, kibertoad, carlos_gamero, aplokalise, filippos.mikropoulos, andrew_lokalise, dariacm, roger.gros-lokalise, catchme2, kostiantyn.khoroshailo, casamitjana, bartoszdrozd-lokalise, jhfedz |
| Keywords | api, node, typescript, lokalise, client, client library |

## Links

- npm: https://www.npmjs.com/package/@lokalise/node-api
- Repository: https://github.com/lokalise/node-lokalise-api
- Homepage: https://lokalise.github.io/node-lokalise-api
- Issues: https://github.com/lokalise/node-lokalise-api/issues
- npm.io page: https://npm.io/package/@lokalise/node-api

## Alternatives

- [launchdarkly-js-client-sdk](https://npm.io/package/launchdarkly-js-client-sdk.md) — 2.5M weekly downloads
- [@elastic/elasticsearch](https://npm.io/package/@elastic/elasticsearch.md) — 2.1M weekly downloads
- [@c8y/client](https://npm.io/package/@c8y/client.md) — 15.3K weekly downloads
- [@signaldb/maverickjs](https://npm.io/package/@signaldb/maverickjs.md) — 1.7K weekly downloads
- [@bbc/http-transport-cache](https://npm.io/package/@bbc/http-transport-cache.md) — 1.2K weekly downloads

## Recent versions

- 16.5.0 (latest) — 2026-09-17
- 14.3.0-rc.1 (rc) — 2025-04-10
- 16.4.1 — 2026-09-02
- 16.4.0 — 2026-08-25
- 16.3.0 — 2026-07-17
- 16.2.0 — 2026-07-15
- 16.1.0 — 2026-07-13
- 16.0.0 — 2026-05-08
- 15.7.1 — 2026-04-06
- 15.7.0 — 2026-04-06
- 15.6.1 — 2026-01-29
- 15.6.0 — 2025-12-19
- 15.5.0 — 2025-12-18
- 15.4.0 — 2025-11-10
- 15.3.1 — 2025-10-14
- … 106 more at https://npm.io/package/@lokalise/node-api/versions

## README

# Lokalise API v2 official Node.js client

![npm](https://img.shields.io/npm/v/@lokalise/node-api)
![CI](https://github.com/lokalise/node-lokalise-api/actions/workflows/ci.yml/badge.svg)
[![Coverage Status](https://coveralls.io/repos/github/lokalise/node-lokalise-api/badge.svg?branch=master)](https://coveralls.io/github/lokalise/node-lokalise-api?branch=master)
[![NPM Downloads][npm-downloads-image]][npm-downloads-url]

Official Node interface for the [Lokalise API](https://developers.lokalise.com/reference/lokalise-rest-api).

> Looking for a simple way to upload/download translations? Try [lokalise-file-exchange](https://github.com/bodrovis/lokalise-node-file-exchange).

## Quickstart

**Heads up:** starting from **v9**, this SDK is **pure [ESM](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules)** and no longer ships a CommonJS (`require`) export. Your options:
- convert your project to ESM ([see this guide](https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c))
- use [dynamic import](https://v8.dev/features/dynamic-import) (example below)
- or stay on [v8](https://github.com/lokalise/node-lokalise-api/tree/v8)

Install:

```bash
npm install @lokalise/node-api
```

[Get a Lokalise API token from your personal profile](https://docs.lokalise.com/en/articles/1929556-api-and-ota-tokens#h_9ea8e7ff3c), then initialize and use the client:

```ts
import { LokaliseApi } from "@lokalise/node-api";

const lokaliseApi = new LokaliseApi({ apiKey: "<apiKey>" });

const projects = await lokaliseApi.projects().list();
projects.items[0].name;

const process = await lokaliseApi.files().upload(project_id, {
  data: data_base64,
  filename: "test1.json",
  lang_iso: "en",
});

process.status; // => "queued"
```

Alternatively, you can use tokens obtained via [OAuth2](https://lokalise.github.io/node-lokalise-api/additional_info/oauth2_flow) (*note: OAuth tokens expire*):

```ts
import { LokaliseApiOAuth } from "@lokalise/node-api";

const lokaliseApi = new LokaliseApiOAuth({ apiKey: "<apiKeyObtainedViaOauth2>" });

const projects = await lokaliseApi.projects().list();
```

Dynamic import example:

```ts
(async function () {
  const LokaliseApi = await import("@lokalise/node-api").then((m) => m.LokaliseApi);
  const lokaliseApi = new LokaliseApi({ apiKey: LOKALISE_API_TOKEN });

  // use lokaliseApi here as usual...
})();
```

## Usage

Full docs live at: [lokalise.github.io/node-lokalise-api](https://lokalise.github.io/node-lokalise-api/).

Also useful:

- [repo containing some usage examples](https://github.com/bodrovis-learning/Lokalise-APIv2-Samples)
- [blog post with explanations](https://lokalise.com/blog/lokalise-apiv2-in-practice/)
- [free course "Lokalise for developers"](https://academy.lokalise.com/course/lokalise-for-developers) (Node SDK usage)

## License

This library is licensed under the [BSD 3 Clause](https://github.com/lokalise/node-lokalise-api/blob/master/LICENSE). Prior to version 5.1.0 the license was MIT.

Copyright (c) [Lokalise group](http://lokalise.com) and [Ilya Krukowski](http://bodrovis.tech)

[npm-downloads-image]: https://img.shields.io/npm/dm/%40lokalise%2Fnode-api
[npm-downloads-url]: https://npmcharts.com/compare/@lokalise/node-api?minimal=true

---
_Source: https://npm.io/package/@lokalise/node-api · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
