by ex3ndr

Telegram Api library for java

125 Stars 62 Forks Last release: over 6 years ago (1.1.127) MIT License 71 Commits 2 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

Java Telegram Api Library

This library allows you to make rpc calls to Telegram.

Depends on tl-core and mtproto libraries.

Now it used in our production-ready product Telegram S.

Telegram build server

Including in your project


This project depends on java MTProto implementation and tl-core library


Download latest distribution at releases page and include jars from it to your project.

Building from source code

Project definded and gradle and expected to use IntelliJ IDEA 13 (now it is Beta) as IDE.

  1. Checkout this repository to
  2. Checkout mtproto java implementation to
  3. Checkout tl core library to
  4. Execute
    gradle build

Usage of library

Implement storage

You might to implement storage class for working with api. This storage used for saving state of telegram api across execution instances.

Extend class
and implement suitable methods.

Generating keys

In your storage might be information about keys in current datacenter. Keys might be generated manualy by using

org.telegram.mtproto.pq.Authorizer class

RPC calls

Now you have proper key for accessing telegram api.

TelegramApi api = new TelegramApi(new MyApiStorage(), new AppInfo(... put application information here...), new ApiCallback()
  public void onApiDies(TelegramApi api) {
    // When auth key or user authorization dies
  public void onUpdatesInvalidated(TelegramApi api) {
    // When api engine expects that update sequence might be broken  

// Syncronized call // All request objects are in org.telegram.api.requests package TLConfig config = api.doRpcCall(new TLRequestHelpGetConfig());

// Standart async call api.doRpcCall(new TLRequestHelpGetConfig(), new RpcCallback() { public void onResult(TLConfig result) {


public void onError(int errorCode, String message) { // errorCode == 0 if request timeouted
} });

// Priority async call // Such rpc call executed with high pripory and sends to server as fast as possible this may improve message delivery speed api.doRpcCall(new TLRequestHelpGetConfig(), new RpcCallbackEx() { public void onConfirmed() { // when message was received by server }

public void onResult(TLConfig result) {


public void onError(int errorCode, String message) { // errorCode == 0 if request timeouted
} });

// File operations // Method that downloads file part. Automaticaly managed connections for file operations, automaticaly create keys for dc if there is no one. api.doGetFile(...) // Uploads file part api.doSaveFilePart(...)

More information

Telegram project

Telegram api documentation



MTProto documentation



Type Language documentation



Android Client that uses this library

Telegram S


Project uses MIT Licence

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.