# Telegram Member Adder (`agentx/telegram-member-adder`) Actor

Telegram group inviter for administrators who need to attempt 1 to 10 consented username or user-ID invitations through their own authenticated session. Select one accessible basic group or supergroup and receive an 11-field status receipt for every deduplicated target.

- **URL**: https://apify.com/agentx/telegram-member-adder.md
- **Developed by:** [AgentX](https://apify.com/agentx) (community)
- **Categories:** Social media, Automation, Developer tools
- **Stats:** 3 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $7.50 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

**Telegram Member Adder is a telegram group inviter that lets an administrator attempt 1 to 10 consented invitations through their own authenticated Telegram session and records an 11-field receipt for every reached target.** It supports accessible basic groups and supergroups, while Telegram remains in control of permissions, privacy, and anti-spam enforcement.

[![Apify Users](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fapi.apify.com%2Fv2%2Facts%2Fagentx~telegram-member-adder\&query=%24.data.stats.totalUsers\&style=for-the-badge\&label=Apify%20Users\&color=ff9013)](https://apify.com/agentx/telegram-member-adder) [![Apify Runs](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fapi.apify.com%2Fv2%2Facts%2Fagentx~telegram-member-adder\&query=%24.data.stats.totalRuns\&style=for-the-badge\&label=Apify%20Runs\&color=ff9013)](https://apify.com/agentx/telegram-member-adder) [![price](https://img.shields.io/badge/%240.01%20%2F%20attempt-4285f4?style=for-the-badge)](https://apify.com/agentx/telegram-member-adder/pricing) [![capability](https://img.shields.io/badge/11%20field%20receipts-34a853?style=for-the-badge)](https://console.apify.com/actors/agentx~telegram-member-adder/input) [![API + MCP ready](https://img.shields.io/badge/API%20%2B%20MCP%20ready-fbbc05?style=for-the-badge)](https://apify.com/agentx/telegram-member-adder/api)

- **Caller-controlled account.** Authenticate with your own Telegram user session rather than a publisher-owned service account.
- **Bounded action list.** Process no more than 10 normalized, deduplicated usernames or user IDs in one run.
- **Explicit group selection.** Resolve one accessible basic group or supergroup and reject ambiguous or broadcast-channel matches.
- **Auditable outcomes.** Persist success, privacy, permission, resolution, session, account, bot, and rate-limit receipts target by target.

Pricing is a **$0.01 Actor Start** plus **$0.01000 per attempted invitation**. Targets a stopped run never reached are written as `not_attempted` receipts and are not billed.

### Why Choose Telegram Member Adder

**The action is narrow and visible.** This Actor does not discover strangers, scrape member lists, create groups, join arbitrary communities, or bypass Telegram controls. You supply one group selector and a short list of people who expect the invitation. The run resolves the group your authenticated account can already access, identifies each requested person, sends the applicable Telegram invite request, and records what Telegram returned.

**Every reached target gets a receipt.** A successful invitation is not the only useful outcome. Existing membership, an already pending invite, privacy restrictions, invalid usernames, non-person entities, deleted accounts, bot rules, group limits, missing admin rights, session loss, and rate limits map to stable statuses and plain-language reasons. Consumers do not need to parse raw library exception names.

**Completed work is persisted immediately.** After each target, the Actor writes its receipt before sleeping or moving to the next item. If a run-stopping permission, session, or rate-limit outcome occurs, remaining targets receive `not_attempted` receipts so a smaller Dataset cannot be mistaken for a complete batch.

**The caller retains responsibility.** A Telegram StringSession is an exported authorization credential. Anyone holding it may act as the account. The Actor marks session and password inputs as secret, but operators must also restrict run access, secure Saved Messages, revoke leaked sessions, and avoid pasting credentials into tickets or public logs.

### Quick Start Guide

There is deliberately no public runnable prefill: a valid example would change real group membership. Prepare a disposable or controlled group that you administer and one person who has explicitly agreed to the test.

1. Open the input form and leave `session` empty on the first run.
2. Enter the exact group `@username`, positive numeric ID, or an unambiguous title.
3. Enter one consented username or user ID.
4. Start the run, then scan the QR code from Telegram **Settings → Devices → Link Desktop Device**.
5. If two-step verification is enabled, supply `password` through its secret input.
6. Confirm the resolved group title and ID in the run status before the invite occurs.
7. Review `status` and `reason` in the default Dataset.
8. Save the returned session from your own Saved Messages in a secret manager for later authorized runs.

An API payload has this shape; replace every uppercase token before use:

```json
{
  "session": "YOUR_SECRET_STRING_SESSION",
  "password": "YOUR_OPTIONAL_2FA_PASSWORD",
  "group_match": "YOUR_ADMINISTERED_GROUP",
  "usernames": [
    "CONSENTED_USERNAME"
  ]
}
```

Never test against a real person or community without authorization. A first QR login and a successful invite are external account actions, not harmless sample reads.

### Input Parameters

**Four inputs define authentication, destination, and the bounded action list.** Secrets have no public prefill, and the two action inputs also remain empty to prevent an automated example from inviting someone.

| Input | Type | Required | Purpose |
| --- | --- | --- | --- |
| `session` | secret string | No | Reusable Telethon StringSession; omit for QR sign-in |
| `password` | secret string | No | Telegram two-step-verification password for QR sign-in |
| `group_match` | string | Yes | Exact username/ID, exact title, or unique title fragment |
| `usernames` | array of strings | Yes | 1–10 consented usernames or positive user IDs |

Usernames are case-normalized, a leading `@` is removed, positive numeric IDs stay numeric identifiers, and equivalent duplicates keep the first target. Invalid URLs, blank strings, non-string values, negative IDs, and malformed usernames are rejected before authentication or mutation.

Exact group username or numeric ID wins. An exact title or partial title is accepted only when it identifies one group. Multiple matches stop the run and ask for a more specific selector. Broadcast channels are rejected because direct member addition uses a group or supergroup path.

### Output Data Schema

One row is one action receipt. The sparse 11-field contract is:

| Field | Meaning |
| --- | --- |
| `target` | Canonical requested username or numeric ID |
| `status` | Stable invite outcome |
| `reason` | Plain-language non-success explanation |
| `id` | Resolved Telegram user ID |
| `username` | Resolved public username |
| `first_name`, `last_name` | Resolved public name parts |
| `group_id`, `group_title` | Resolved destination group |
| `processor`, `processed_at` | Actor provenance and UTC production time |

Example receipt shape:

```json
{
  "target": "consented_user",
  "status": "privacy_restricted",
  "reason": "Their privacy settings only allow invites from contacts.",
  "id": 123456789,
  "username": "consented_user",
  "first_name": "Example",
  "group_id": 2290332145,
  "group_title": "Administered Community",
  "processor": "https://apify.com/username/actor_name",
  "processed_at": "2026-08-12T13:00:00+00:00"
}
```

Documented statuses include `invited`, `already_member`, `already_invited`, `privacy_restricted`, `not_a_person`, `not_found`, `account_gone`, `bot_not_allowed`, `bot_limit_reached`, `their_limit_reached`, `blocked`, `admin_required`, `permission_denied`, `session_unavailable`, `rate_limited`, `failed`, and `not_attempted`.

### Integration Examples

Actor ID `XI6EIILM3IjhI2X0W` can be started asynchronously after you replace the placeholders and store secrets safely:

```bash
curl -X POST "https://api.apify.com/v2/acts/XI6EIILM3IjhI2X0W/runs?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"session":"YOUR_SECRET_SESSION","group_match":"YOUR_ADMINISTERED_GROUP","usernames":["CONSENTED_USERNAME"]}'
```

Asynchronous execution is preferable because QR sign-in and Telegram source timing can outlast an HTTP client. Poll the run, fetch the default Dataset, and reconcile every requested target before scheduling another batch.

An MCP caller uses the same shape:

```json
{
  "actor": "agentx/telegram-member-adder",
  "input": {
    "session": "YOUR_SECRET_SESSION",
    "group_match": "YOUR_ADMINISTERED_GROUP",
    "usernames": ["CONSENTED_USERNAME"]
  }
}
```

Do not place Telegram or Apify credentials in source code, shared workflow logs, prompt history, or public automation templates.

### Pricing

The local release registers two events:

| Event | Billing unit | FREE | BRONZE | SILVER | GOLD / PLATINUM / DIAMOND |
| --- | --- | ---: | ---: | ---: | ---: |
| Result | One attempted invitation | $0.01000 | $0.00900 | $0.00800 | $0.00750 |
| Actor Start | Once per run | $0.01000 | $0.01000 | $0.01000 | $0.01000 |

A receipt is billed when the Actor reached the target and Telegram answered — including refusals such as `privacy_restricted`, which are the answer you paid to obtain. Targets a stopped run never reached carry the `not_attempted` status and are not billed. No `actor_usage` event is registered.

- **One consented target:** $0.01000 + $0.01000 = **$0.02000**
- **Ten attempted targets:** $0.01000 + 10 x $0.01000 = **$0.11000**

A run that stops at validation or authentication still starts the Actor and can incur the fixed start.

This simple price is not an invitation-volume recommendation. Telegram, not price, controls safe and permitted activity. The production input cap remains 10 targets and the Actor deliberately paces sequential attempts.

### Use Cases

**Administered community onboarding:** invite a short consented list after an event, application, paid membership, or internal approval where direct invitation is appropriate.

**Migration reconciliation:** attempt a small authorized set and retain structured receipts for members already present, pending, restricted, unresolved, or successfully invited.

**Support-assisted access:** process users who explicitly asked an administrator for help joining a group and need a traceable outcome.

**Controlled QA:** test invitation permissions and status handling with disposable accounts and a private test group owned by your organization.

The Actor is not a growth-hacking tool. It is unsuitable for cold outreach, scraped lists, unsolicited adds, bypassing privacy, account farming, or repeated attempts after Telegram applies a restriction.

### Alternatives

Use a normal Telegram invite link when the person can join themselves; it usually provides clearer consent and avoids handling a reusable account session. Use Telegram's native client for occasional manual administration.

Use Telegram Member Scraper only when the task is a permitted read of visible participant data. Use Telegram Info Scraper for entity metadata without changing membership. Use Telegram Private Group Scraper for authorized content access, not adding people.

A Bot API token cannot generally reproduce this user-account invite flow. Changing the product to send messages or links would be a different operation and consent model.

### Limits and Troubleshooting

- **Group not found:** use its exact `@username`, positive numeric ID, or full title and confirm the authenticated account is already a member.
- **Ambiguous group:** replace a broad title fragment with the exact username or ID.
- **Broadcast channel:** select its discussion group; direct addition is not performed on the broadcast channel path.
- **`privacy_restricted`:** do not retry repeatedly. Ask the person to join with an invite link or add the account as a contact when appropriate.
- **`admin_required` or `permission_denied`:** fix group permissions before another run.
- **`rate_limited` or `blocked`:** stop. Repeated attempts can deepen Telegram's restriction on your account.
- **QR expired:** start again and scan promptly, or use a securely stored existing session.
- **Session unavailable:** revoke questionable sessions in Telegram Devices and create a new controlled authorization.

The Actor processes targets sequentially with a randomized 4–9 second pause. This is protection for the caller's account, not a throughput promise.

### Trust and Reliability

The public Store surface recorded 121 total runs and 57 runs in the latest 30-day snapshot on August 12, 2026: 56 succeeded and one was aborted. These are Actor run statuses, not proof that every requested invitation succeeded.

The design path was verified without credentials or external mutations. An inert client captured both exact production request types, 29 documented exception classes were classified, 18 runner/resource assertions passed, and an 80-cell source/content/input matrix closed with zero uncovered cells. A separate forced-stop test retained completed receipts without OOM.

Real success remains authorization-gated because it changes membership. Static and simulated verification cannot prove that a specific account has admin rights, that a person consents, or that Telegram will accept a future request.

### Legal and Compliance

Invite only people who expect the invitation and only into groups you are authorized to administer. Follow Telegram's terms, anti-spam rules, applicable privacy and communications law, organizational policy, and any contractual consent requirements.

Treat session strings and two-step passwords as credentials. Restrict Actor run access, minimize retention, revoke exposed authorizations in Telegram Devices, and rotate any password that appeared in code or logs. Never upload someone else's session.

Do not use the Actor for unsolicited additions, harassment, surveillance, political or sensitive targeting, evasion of platform restrictions, deceptive groups, or repeated retries against a user's privacy choice.

### Frequently Asked Questions

#### How do I add members to telegram group automatically?

Use an administered group, your own secured session, and a consented list of no more than 10 targets. The Actor attempts them sequentially and returns a receipt for each reached target. Automation does not remove consent or permission requirements.

#### Does this telegram group inviter bypass privacy settings?

No. Telegram can reject an invite because of privacy, relationship, permission, account, bot, group-limit, or anti-spam rules. The Actor reports the outcome and does not bypass it.

#### How can I invite telegram users to group safely?

Use only an administered group and people who explicitly expect the invitation, keep the list at 10 or fewer, and stop when Telegram reports a privacy, permission, block, or rate-limit outcome. There is no runnable public prefill because a valid input would authenticate an account and may change real membership.

#### Is a session string safe to share with support?

No. Treat it like a password. Revoke it immediately if exposed and never include it in a support message.

#### Are Dataset rows charged separately?

Yes. Each attempted invitation bills one Result event at $0.01000 on the FREE tier, on top of the fixed $0.01000 Actor Start. Receipts with the `not_attempted` status are never billed.

#### Can it invite more than 10 people?

Not in one run. The cap and pacing protect the caller's account and keep outcomes auditable. Do not evade the cap by launching bursts of parallel runs.

### Related AgentX Actors

AgentX has a broad Actor catalog. Start with the three closest Telegram tools below, then browse the generated catalog by category.

Closest to this Actor:

- [Telegram Member Scraper](https://apify.com/agentx/telegram-member-scraper) reads visible participant data without adding anyone.
- [Telegram Info Scraper](https://apify.com/agentx/telegram-info-scraper) resolves users, bots, channels, and groups without changing membership.
- [Telegram Private Group Scraper](https://apify.com/agentx/telegram-private-group-scraper) handles a separate authorized private-content workflow.

#### Business and Market Intelligence

- **[Google Keyword Trends](https://apify.com/agentx/google-keyword-trends)** — Google Trends keyword interest, compared five at a time
- **[Google Trends Scraper](https://apify.com/agentx/google-trends-scraper)** — Google Trends trending searches
- **[Google Maps Store Scraper](https://apify.com/agentx/google-maps-store-scraper)** — Google Maps business listings
- **[LinkedIn Company Lookup](https://apify.com/agentx/linkedin-company-lookup)** — LinkedIn company records
- **[LinkedIn Profile Lookup](https://apify.com/agentx/linkedin-profile-lookup)** — LinkedIn profile records
- **[Weather Forecast API](https://apify.com/agentx/weather-forecast-api)** — forecast and historical weather data

#### Jobs and Hiring

- **[All Jobs Scraper](https://apify.com/agentx/all-jobs-scraper)** — multi-platform job listings
- **[Bayt Jobs Scraper](https://apify.com/agentx/bayt-jobs-scraper)** — Bayt job listings
- **[Glassdoor Jobs Scraper](https://apify.com/agentx/glassdoor-jobs-scraper)** — Glassdoor job listings
- **[Indeed Jobs Scraper](https://apify.com/agentx/indeed-jobs-scraper)** — Indeed job listings
- **[JobStreet Company Profile](https://apify.com/agentx/jobstreet-company-profile)** — JobStreet employer records
- **[Jooble Jobs Scraper](https://apify.com/agentx/jooble-jobs-scraper)** — Jooble job listings
- **[LinkedIn Jobs Scraper](https://apify.com/agentx/linkedin-jobs-scraper)** — LinkedIn job listings
- **[Naukri Jobs Scraper](https://apify.com/agentx/naukri-jobs-scraper)** — Naukri job listings
- **[Talent Jobs Scraper](https://apify.com/agentx/talent-jobs-scraper)** — Talent.com job listings
- **[ZipRecruiter Jobs Scraper](https://apify.com/agentx/ziprecruiter-jobs-scraper)** — ZipRecruiter job listings

#### Social Media

- **[Instagram Creator Scraper](https://apify.com/agentx/instagram-creator-scraper)** — Instagram creator profiles
- **[Instagram Reels Scraper](https://apify.com/agentx/instagram-reels-scraper)** — Instagram Reels metadata
- **[Instagram Trending Scraper](https://apify.com/agentx/instagram-trending-scraper)** — Instagram trending content
- **[Medium Scraper](https://apify.com/agentx/medium-scraper)** — Medium articles
- **[Medium Profile Scraper](https://apify.com/agentx/medium-profile-scraper)** — Medium author profiles
- **[Reddit Profile Scraper](https://apify.com/agentx/reddit-profile-scraper)** — Reddit user profiles
- **[Reddit Viral Scraper](https://apify.com/agentx/reddit-viral-scraper)** — Reddit viral posts
- **[SubReddit Info Scraper](https://apify.com/agentx/subreddit-info-scraper)** — subreddit metadata
- **[Subreddit Members Scraper](https://apify.com/agentx/subreddit-members-scraper)** — subreddit member lists
- **[Subreddit Posts Scraper](https://apify.com/agentx/subreddit-posts-scraper)** — subreddit post feeds
- **[Telegram Chat Scraper](https://apify.com/agentx/telegram-chat-scraper)** — Telegram chat messages
- **[Telegram Info Scraper](https://apify.com/agentx/telegram-info-scraper)** — Telegram channel metadata
- **[Telegram Member Scraper](https://apify.com/agentx/telegram-member-scraper)** — Telegram group members
- **[Telegram Private Group Scraper](https://apify.com/agentx/telegram-private-group-scraper)** — private Telegram group data
- **[TikTok Creator API](https://apify.com/agentx/tiktok-creator-api)** — TikTok creator profiles
- **[TikTok User Lookup](https://apify.com/agentx/tiktok-user-lookup)** — TikTok account records
- **[X Twitter Community API](https://apify.com/agentx/x-twitter-community-api)** — X community data
- **[X Twitter Profile Lookup](https://apify.com/agentx/x-twitter-profile-lookup)** — X profile records
- **[YouTube Creator Email Scraper](https://apify.com/agentx/youtube-creator-email-scraper)** — YouTube creator contact data

#### Video, Transcripts and Downloads

- **[All Video Scraper](https://apify.com/agentx/all-video-scraper)** — multi-platform video metadata
- **[Video Transcript](https://apify.com/agentx/video-transcript)** — multi-platform transcripts
- **[Video Captions Downloader](https://apify.com/agentx/video-captions-downloader)** — caption files
- **[Video to Social Post](https://apify.com/agentx/video-to-social-post)** — video repurposed into social copy
- **[YouTube Transcript](https://apify.com/agentx/youtube-transcript)** — YouTube transcripts
- **[TikTok Transcript](https://apify.com/agentx/tiktok-transcript)** — TikTok transcripts
- **[X Twitter Transcript](https://apify.com/agentx/x-twitter-transcript)** — X video transcripts
- **[Facebook Transcript](https://apify.com/agentx/facebook-transcript)** — Facebook video transcripts
- **[Bilibili Transcript](https://apify.com/agentx/bilibili-transcript)** — Bilibili transcripts
- **[Dailymotion Transcript](https://apify.com/agentx/dailymotion-transcript)** — Dailymotion transcripts
- **[Rutube Transcript](https://apify.com/agentx/rutube-transcript)** — Rutube transcripts
- **[Loom Transcript](https://apify.com/agentx/loom-transcript)** — Loom transcripts
- **[Wistia Transcript](https://apify.com/agentx/wistia-transcript)** — Wistia transcripts
- **[Instagram Reels Downloader](https://apify.com/agentx/instagram-reels-downloader)** — Reels downloads
- **[Kick Clip Downloader](https://apify.com/agentx/kick-clip-downloader)** — Kick clip downloads
- **[Linkedin Video Downloader](https://apify.com/agentx/linkedin-video-downloader)** — LinkedIn video downloads
- **[Pinterest Video Downloader](https://apify.com/agentx/pinterest-video-downloader)** — Pinterest video downloads
- **[Reddit Video Downloader](https://apify.com/agentx/reddit-video-downloader)** — Reddit video downloads
- **[Snapchat Video Downloader](https://apify.com/agentx/snapchat-video-downloader)** — Snapchat video downloads
- **[TED Talk Downloader](https://apify.com/agentx/ted-talk-downloader)** — TED talk downloads
- **[TikTok Live Downloader](https://apify.com/agentx/tiktok-live-downloader)** — TikTok live downloads
- **[Twitch VOD Downloader](https://apify.com/agentx/twitch-vod-downloader)** — Twitch VOD downloads
- **[Zoom Recording Downloader](https://apify.com/agentx/zoom-recording-downloader)** — Zoom recording downloads

#### E-Commerce and Retail

- **[All Shopping Scraper](https://apify.com/agentx/all-shopping-scraper)** — multi-platform product data
- **[AliExpress Product Scraper](https://apify.com/agentx/aliexpress-product-scraper)** — AliExpress products
- **[Amazon Storefront Scraper](https://apify.com/agentx/amazon-storefront-scraper)** — Amazon Brand Store pages
- **[Bol Product Scraper](https://apify.com/agentx/bol-product-scraper)** — Bol.com products
- **[eBay Seller Leads API](https://apify.com/agentx/ebay-seller-leads-api)** — eBay seller records
- **[Hepsiburada Product Scraper](https://apify.com/agentx/hepsiburada-product-scraper)** — Hepsiburada products
- **[Kakaku Product Scraper](https://apify.com/agentx/kakaku-product-scraper)** — Kakaku.com products
- **[Rakuten Product Scraper](https://apify.com/agentx/rakuten-product-scraper)** — Rakuten products

#### Classifieds and Automotive

- **[All Vehicle Scraper](https://apify.com/agentx/all-vehicle-scraper)** — multi-platform vehicle listings
- **[AutoTrader Vehicle Search](https://apify.com/agentx/autotrader-vehicle-search)** — AutoTrader US listings
- **[AutoTrader UK Vehicle Search](https://apify.com/agentx/autotrader-uk-vehicle-search)** — AutoTrader UK listings

#### Real Estate

- **[All Property Scraper](https://apify.com/agentx/all-property-scraper)** — multi-platform property listings
- **[Homes Property Scraper](https://apify.com/agentx/homes-property-scraper)** — Homes.com listings
- **[MagicBricks Property Scraper](https://apify.com/agentx/magicbricks-property-scraper)** — MagicBricks listings
- **[NoBroker Property Scraper](https://apify.com/agentx/nobroker-property-scraper)** — NoBroker listings
- **[Property24 Property Scraper](https://apify.com/agentx/property24-property-scraper)** — Property24 listings
- **[Realtor Property Scraper](https://apify.com/agentx/realtor-property-scraper)** — Realtor.com listings
- **[Zillow Property Scraper](https://apify.com/agentx/zillow-property-scraper)** — Zillow listings

### Support and Community

Ask the AgentX team in the [Telegram community](https://t.me/Apify_Actor) with the Actor name, run ID, sanitized group selector, target count, and receipt statuses. Never post session strings, passwords, invite tokens, phone numbers, or API tokens.

AgentX is an Arcyton brand — [arcyton.com](https://arcyton.com).

**Last Updated:** August 12, 2026

# Actor input Schema

## `session` (type: `string`):

Optional reusable Telethon StringSession. Leave empty for a first QR sign-in. The resulting session is sent to your own Saved Messages; store it as a secret because anyone holding it can act as your Telegram account.

## `password` (type: `string`):

Optional Telegram two-step-verification password used only if QR sign-in requests it. This is not your Apify password. Store it as a secret and never include it in logs or support messages.

## `group_match` (type: `string`):

Select one accessible basic group or supergroup by exact @username, positive numeric ID, exact title, or a title fragment that matches only one dialog. Broadcast channels are rejected. Confirm the resolved group in the run status before inviting anyone.

## `usernames` (type: `array`):

One to 10 consented Telegram @usernames, bare usernames, or positive numeric user IDs. Values are normalized and deduplicated. Privacy, permission, bot, account, and anti-spam controls can reject an attempt; every reached target receives a status receipt.

## Actor input object example

```json
{
  "group_match": "YOUR_ADMINISTERED_GROUP",
  "usernames": [
    "CONSENTED_USERNAME"
  ]
}
```

# Actor output Schema

## `results` (type: `string`):

Open per-target invite results. Fatal login or group-selection errors can finish with zero rows, so verify the Dataset item count rather than terminal status alone.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "group_match": "YOUR_ADMINISTERED_GROUP",
    "usernames": [
        "CONSENTED_USERNAME"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("agentx/telegram-member-adder").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "group_match": "YOUR_ADMINISTERED_GROUP",
    "usernames": ["CONSENTED_USERNAME"],
}

# Run the Actor and wait for it to finish
run = client.actor("agentx/telegram-member-adder").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "group_match": "YOUR_ADMINISTERED_GROUP",
  "usernames": [
    "CONSENTED_USERNAME"
  ]
}' |
apify call agentx/telegram-member-adder --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,agentx/telegram-member-adder"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/XI6EIILM3IjhI2X0W/builds/W6jmlXynIJDLfHATY/openapi.json
