Your bot's answers can earn

One line of code adds a neat sponsored line with a button after some of your bot's replies. If anything goes wrong, the bot just answers as usual.

Integration

One line where you send the reply

import { Sidekick } from "sidekick-sdk";

const sk = new Sidekick({
  apiKey: "sk_live_…",
  platformId: "plt_…",
});

const result = await sk.inject({
  userId: ctx.from.id,
  message: llmReply,
  parseMode: "HTML",
});

await ctx.reply(result.message, { reply_markup: result.keyboard });

The full SDK reference lives in the docs. Open the docs

What's inside

Built so your bot comes first

  • / 01
    Never breaks your bot

    Any network or server error and the user gets the original reply, untouched.

  • / 02
    Native format

    A line of text after the answer plus a button. No banners, no messages in the middle of a conversation.

  • / 03
    Frequency under control

    Ads don't appear in every message: a per-user cap sets the pace.

  • / 04
    Campaign moderation

    Every ad is reviewed before launch. Categories that don't fit your audience can be excluded.

  • / 05
    Transparent stats

    Every impression and click in your dashboard, per platform.

  • / 06
    USDT payouts

    TRC-20, ERC-20, SPL or TON. Request a withdrawal from the dashboard.

What your users see

@ai_assistant_bot
12:41
Where can I fly in November, visa-free?

Istanbul, Belgrade and Yerevan: direct flights, warm autumn, no visa. Cheapest a month out, flying Tuesday or Wednesday.

✈️ Stop hunting for tickets by hand! FlyDeal sends flights up to 60% off straight to Telegram. 🔥 Grab today's deals now!
✈️ Browse deals

This is how a placement looks in a real conversation. Try it live: @example_sidekick_bot

FAQ

Common questions

Ads don't appear in every message, and they read as a continuation of the answer: a line of text and a button. You can switch the integration off at any time.

Every campaign is moderated before launch. Categories that don't fit your audience can be excluded.

SDKs for Node.js and Python, one call where you send the reply. Most integrations take about twenty minutes.

In USDT to your wallet: TRC-20, ERC-20, SPL or TON. Request a withdrawal from the dashboard.

Plug your bot in today

Message us — we'll help with the integration and your first launch.