# telegram

> NodeJS/Browser MTProto API Telegram client library,

Latest version **2.26.22** (published 2025-02-12) · MIT license · 0 weekly downloads

> **Deprecated.** This package is deprecated.

## Install

```sh
npm install telegram
pnpm add telegram
yarn add telegram
bun add telegram
```

## Health

**Score 10/100 (F)** — status: deprecated.

Negative: deprecated.

## Facts

| | |
|---|---|
| Version | 2.26.22 |
| Published | 2025-02-12 |
| First published | 2012-05-21 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 14 |
| Unpacked size | 2 MB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 1764 |
| Maintainers | youtwitface, painor |
| Keywords | telegram, mtproto, userbot, api |

## Links

- npm: https://www.npmjs.com/package/telegram
- Repository: https://github.com/gram-js/gramjs
- Homepage: https://github.com/gram-js/gramjs#readme
- Issues: https://github.com/gram-js/gramjs/issues
- npm.io page: https://npm.io/package/telegram

## Dependencies (14)

- [mime](https://npm.io/package/mime.md) ^3.0.0
- [pako](https://npm.io/package/pako.md) ^2.0.3
- [socks](https://npm.io/package/socks.md) ^2.6.2
- [buffer](https://npm.io/package/buffer.md) ^6.0.3
- [store2](https://npm.io/package/store2.md) ^2.13.0
- [websocket](https://npm.io/package/websocket.md) ^1.0.34
- [async-mutex](https://npm.io/package/async-mutex.md) ^0.3.0
- [big-integer](https://npm.io/package/big-integer.md) ^1.6.48
- [htmlparser2](https://npm.io/package/htmlparser2.md) ^6.1.0
- [path-browserify](https://npm.io/package/path-browserify.md) ^1.0.1
- [ts-custom-error](https://npm.io/package/ts-custom-error.md) ^3.2.0
- [@cryptography/aes](https://npm.io/package/@cryptography/aes.md) ^0.1.1
- [node-localstorage](https://npm.io/package/node-localstorage.md) ^2.2.1
- [real-cancellable-promise](https://npm.io/package/real-cancellable-promise.md) ^1.1.1

## Recent versions

- 2.26.22 (latest) — 2025-02-12
- 2.26.21 (browser) — 2025-02-12
- 2.24.9 (next) — 2024-08-19
- 2.26.16 — 2024-12-26
- 2.26.15 — 2024-12-26
- 2.26.12 — 2024-12-25
- 2.26.11 — 2024-12-25
- 2.26.10 — 2024-12-25
- 2.26.9 — 2024-12-25
- 2.26.8 — 2024-11-19
- 2.26.7 — 2024-11-19
- 2.26.6 — 2024-10-30
- 2.26.5 — 2024-10-30
- 2.26.2 — 2024-10-22
- 2.26.1 — 2024-10-22
- … 318 more at https://npm.io/package/telegram/versions

## README

# GramJS

A Telegram client written in JavaScript for Node.js and browsers, with its core being based on
[Telethon](https://github.com/LonamiWebs/Telethon).

## How to get started

Here you'll learn how to obtain necessary information to create telegram application, authorize into your account and send yourself a message.

> **Note** that if you want to use a GramJS inside of a browser, refer to [this instructions](https://gram.js.org/introduction/advanced-installation).

Install GramJS:

```bash
$ npm i telegram
```

After installation, you'll need to obtain an API ID and hash:

1. Login into your [telegram account](https://my.telegram.org/)
2. Then click "API development tools" and fill your application details (only app title and short name required)
3. Finally, click "Create application"

> **Never** share any API/authorization details, that will compromise your application and account.

When you've successfully created the application, change `apiId` and `apiHash` on what you got from telegram.

Then run this code to send a message to yourself.

```javascript
import { TelegramClient } from "telegram";
import { StringSession } from "telegram/sessions";
import readline from "readline";

const apiId = 123456;
const apiHash = "123456abcdfg";
const stringSession = new StringSession(""); // fill this later with the value from session.save()

const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
});

(async () => {
  console.log("Loading interactive example...");
  const client = new TelegramClient(stringSession, apiId, apiHash, {
    connectionRetries: 5,
  });
  await client.start({
    phoneNumber: async () =>
      new Promise((resolve) =>
        rl.question("Please enter your number: ", resolve)
      ),
    password: async () =>
      new Promise((resolve) =>
        rl.question("Please enter your password: ", resolve)
      ),
    phoneCode: async () =>
      new Promise((resolve) =>
        rl.question("Please enter the code you received: ", resolve)
      ),
    onError: (err) => console.log(err),
  });
  console.log("You should now be connected.");
  console.log(client.session.save()); // Save this string to avoid logging in again
  await client.sendMessage("me", { message: "Hello!" });
})();
```

> **Note** that you can also save auth key to a folder instead of a string, change `stringSession` into this:
>
> ```javascript
> const storeSession = new StoreSession("folder_name");
> ```

Be sure to save output of `client.session.save()` into `stringSession` or `storeSession` variable to avoid logging in again.

## Running GramJS inside browsers

GramJS works great in combination with frontend libraries such as React, Vue and others.

While working within browsers, GramJS is using `localStorage` to cache the layers.

To get a browser bundle of GramJS, use the following command:

```bash
NODE_ENV=production npx webpack
```

You can also use the helpful script `generate_webpack.js`

```bash
node generate_webpack.js
```

## Calling the raw API

To use raw telegram API methods use [invoke function](https://gram.js.org/beta/classes/TelegramClient.html#invoke).

```javascript
await client.invoke(new RequestClass(args));
```

## Documentation

General documentation, use cases, quick start, refer to [gram.js.org](https://gram.js.org), or [older version of documentation](https://painor.gitbook.io/gramjs) (will be removed in the future).

For more advanced documentation refer to [gram.js.org/beta](https://gram.js.org/beta) (work in progress).

If your ISP is blocking Telegram, you can check [My ISP blocks Telegram. How can I still use GramJS?](https://gist.github.com/SecurityAndStuff/7cd04b28216c49b73b30a64d56d630ab)

## Ask a question

If you have any questions about GramJS, feel free to open an issue or ask directly in our telegram group - [@GramJSChat](https://t.me/gramjschat).

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