Skip to content
Golang library for Bot API
Go Makefile
Branch: master
Clone or download

Golang interface for bot API


  • Brand new Bot API!

  • Zero-configuration library

  • Simple and clear interface


go get


Create your own bot by sending the /newbot command to Metabot and follow the instructions.

Note a bot can only reply after the user has added it to his contacts list, or if the user was the first to start a dialogue.

Create your bot

package main

import ""

func main() {
    bot, err := botgolang.NewBot(BOT_TOKEN)
    if err != nil {
        log.Println("wrong token")

    message := bot.NewTextMessage("", "text")

Send and edit messages

You can create, edit and reply to messages like a piece of cake.

message := bot.NewTextMessage("", "text")


message.Text = "new text"


message.Reply("hey, what did you write before???")
// SO HOT!

Subscribe events

Get all updates from the channel. Use context for cancellation.

ctx, finish := context.WithCancel(context.Background())
updates := bot.GetUpdatesChannel(ctx)
for update := range updates {
	// your awesome logic here

Passing options

You don't need this. But if you do, you can override bot's API URL:

bot := botgolang.NewBot(BOT_TOKEN, botgolang.BotApiURL(""))

And debug all api requests and responses:

bot := botgolang.NewBot(BOT_TOKEN, botgolang.BotDebug(true))


  • Send message

  • Events subscription

  • Tests

  • Godoc

  • Edit message

  • Send files

  • Delete message

  • Chat info

  • Send voice

  • File info

You can’t perform that action at this time.