MadelineProto, a PHP MTProto telegram client

Do join the official channel, @MadelineProto and the support groups!

What’s this?

This library can be used to easily interact with Telegram without the bot API, just like the official apps.

It can login with a phone number (MTProto API), or with a bot token (MTProto API, no bot API involved!).

Getting started


if (!file_exists('madeline.php')) {
    copy('', 'madeline.php');
include 'madeline.php';

$MadelineProto = new \danog\MadelineProto\API('session.madeline');

$me = $MadelineProto->get_self();


if (!$me['bot']) {
    $MadelineProto->messages->sendMessage(['peer' => '@danogentili', 'message' => "Hi!\nThanks for creating MadelineProto! <3"]);
    $MadelineProto->channels->joinChannel(['channel' => '@MadelineProto']);

    try {
        $MadelineProto->messages->importChatInvite(['hash' => '']);
    } catch (\danog\MadelineProto\RPCErrorException $e) {

    $MadelineProto->messages->sendMessage(['peer' => '', 'message' => 'Testing MadelineProto!']);
echo 'OK, done!'.PHP_EOL;

Try this code now! or run this code in a browser or in a console.

Tip: if you receive an error (or nothing), send us the error message and the MadelineProto.log file that was created in the same directory (if running from a browser).


Very complex and complete examples

You can find examples for nearly every MadelineProto function in

This site uses cookies, as described in the cookie policy. By clicking on "Accept" you consent to the use of cookies.