ActionSeen API
Order Telegram post views, poll votes / likes and reactions from your own panel or code. Two APIs share one key and one balance: the standard API v2 for SMM panels, and a simple classic API. Responses are always JSON.
Get your free API keyGetting started
- Log in to the web panel and open API — or, in @ActionSeenENG_bot, tap 🔌 API. New here? Press Start in the bot first; that creates your account.
- Activate the API — it is free and instant. Your key is shown right away.
- Top up your API balance with crypto (USDT, TRX, BTC, ETH and more). Coins are added after network confirmation.
- Open @AS_APIBOT and press Start once — order messages come from it.
The API balance is separate from your bot coins. Top-ups from 500,000 coins ($2.50) to 300,000,000 coins ($500.01) per invoice.
Prices
Your balance is in API coins: 1 view = 1 coin, 1 reaction or vote = 30 coins. The bigger the top-up, the cheaper every coin — the rate is set by the size of that top-up.
| Top-up size | Per 1,000 API coins | = 1,000 views | = 1,000 reactions / votes |
|---|---|---|---|
| under 1,000,000 coins | $0.005 | $0.005 | $0.15 |
| 1,000,000 – 4,999,999 coins | $0.003 | $0.003 | $0.09 |
| 5,000,000 – 9,999,999 coins | $0.002 | $0.002 | $0.06 |
| 10,000,000+ coins | $0.00167 | $0.00167 | $0.05 |
API v2 for SMM panels recommended for panels
If you run an SMM panel (Perfect Panel, SmartPanel and similar scripts), use API v2. It is the
standard provider format these panels already speak, so there is nothing to code: add ActionSeen as a provider with
the URL https://actionseen.com/api/v2 and your API key, and your panel imports our services and prices by itself.
Standard actions (
services, add, status,
cancel, balance), numeric order IDs, errors always with HTTP 200 — exactly what panel scripts expect.Services, balance and charges are shown in US dollars, so your panel can apply its own markup directly.
Each view package, the poll / button vote service and every one of the 73 reaction emojis is its own service ID — your customers simply pick it.
v2 and the classic API share one key and one balance. You can use both at the same time.
How charges work
Your API wallet always holds coins. API v2 converts them to dollars with your own average purchase price — what you actually paid per 1,000 coins across your crypto top-ups:
- Balance = your coins ÷ 1,000 × your average. After every top-up, your USD balance goes up by exactly the amount you paid.
- Service rate (price per 1,000) = coins per unit × your average. Volume discounts carry over automatically: bigger top-ups mean cheaper rates in your panel.
- Order charge = coins spent ÷ 1,000 × your average at the moment of the order. A later top-up never changes the charge of an older order.
- Refunds: if part of an order is not delivered, the coins go back to your balance automatically;
statusshows the undelivered part inremainsand a lowercharge.
| Your average (per 1,000 coins) | 1,000 views | 1,000 reactions / votes | Views, last 100 posts (per 1,000 per post) |
|---|---|---|---|
| $0.005 | $0.005 | $0.15 | $0.50 |
| $0.003 | $0.003 | $0.09 | $0.30 |
| $0.002 | $0.002 | $0.06 | $0.20 |
| $0.00167 | $0.00167 | $0.05 | $0.16667 |
Example: if all your top-ups were 10,000,000+ coins ($0.00167 per 1,000 coins), your panel sees $0.05 per 1,000 reactions and 100,000,000 coins as $166.67 of balance. Accounts without a crypto top-up use the base rate ($0.005).
Which API should I use?
| API v2 | Classic API | |
|---|---|---|
| Best for | SMM panel scripts | Your own code / bots |
| Currency | USD (your average price) | API coins |
| Order ID | Numeric (1234) | Text (AV12ab34cd) |
| Choose what to order | service number | action + text / row |
| Errors | HTTP 200 + {"error": …} | HTTP status + {"error": …} |
API v2 — full reference SMM panels Endpoint, all services, every action with a request and a response ⌄
Endpoint
https://actionseen.com/api/v2
Send POST form fields (what panels do). GET query strings and a JSON body are accepted too.
Every request needs key (your API key) and action. Errors always come with
HTTP 200 and {"error": "…"}.
Services
| ID | Name | Type | link | Min – Max |
|---|---|---|---|---|
1 | Telegram Post Views | Default | post link | 10 – 500,000 |
2 | Telegram Views - Last 10 Posts (quantity = views per post) | Default | post link, or public channel link | 10 – 500,000 |
3 | Telegram Views - Last 20 Posts (quantity = views per post) | Default | post link, or public channel link | 10 – 500,000 |
4 | Telegram Views - Last 50 Posts (quantity = views per post) | Default | post link, or public channel link | 10 – 500,000 |
5 | Telegram Views - Last 100 Posts (quantity = views per post) | Default | post link, or public channel link | 10 – 500,000 |
6 | Telegram Poll Votes / Button Likes | Poll | post link | 1 – 500,000 |
7 | Telegram Views - Last 200 Posts (quantity = views per post) | Default | post link, or public channel link | 10 – 500,000 |
8 | Telegram Views - Last 500 Posts (quantity = views per post) | Default | post link, or public channel link | 10 – 500,000 |
9 | Telegram Views - Last 1000 Posts (quantity = views per post) | Default | post link, or public channel link | 10 – 500,000 |
10 | Telegram Mixed Positive Reactions [ 👍❤️🔥🥰👏🎉🤩😍⚡️😎😘🕊 ] | Default | post link | 10 – 500,000 |
11 | Telegram Mixed Negative Reactions [ 👎💩🤮😢😱🤬💔😐😭😡 ] | Default | post link | 10 – 500,000 |
100–172 |
Telegram Post Reactions — one service per emoji | Default | post link | 1 – 500,000 |
Reaction service IDs (they never change):
100 👍
101 👎
102 ❤️
103 🔥
104 🥰
105 👏
106 😁
107 🤔
108 🤯
109 😱
110 🤬
111 😢
112 🎉
113 🤩
114 🤮
115 💩
116 🙏
117 👌
118 🕊
119 🤡
120 🥱
121 🥴
122 😍
123 🐳
124 ❤️🔥
125 🌚
126 🌭
127 💯
128 🤣
129 ⚡️
130 🍌
131 🏆
132 💔
133 🤨
134 😐
135 🍓
136 🍾
137 💋
138 🖕
139 😈
140 😴
141 😭
142 🤓
143 👻
144 👨💻
145 👀
146 🎃
147 🙈
148 😇
149 😨
150 🤝
151 ✍️
152 🤗
153 🫡
154 🎅
155 🎄
156 ☃️
157 💅
158 🤪
159 🗿
160 🆒
161 💘
162 🙉
163 🦄
164 😘
165 💊
166 🙊
167 😎
168 👾
169 🤷♂️
170 🤷
171 🤷♀️
172 😡
Mixed reactions (10 positive, 11 negative): one order is spread randomly and unevenly
over several emojis from the set in the service name (more emojis for bigger orders, up to 8),
e.g. 1,000 → 312 ❤️, 240 👍, 198 🔥, 150 🎉, 100 🥰. Same price per reaction as single-emoji services. If the channel
does not allow one of the emojis, that part is refunded and the order ends as Partial.
Latest-posts services (2, 3, 4, 5, 7, 8, 9):
quantity is the number of views per post, and the cost is multiplied by the number of posts.
The link can be a post (we count back from it, the post included) or a public channel (we start from its latest post).
If the channel has fewer posts, the order runs on all available posts and you are charged only for those.
services — list services and your prices
POST https://actionseen.com/api/v2 key=API_KEY&action=services
[
{"service": 1, "name": "Telegram Post Views", "type": "Default", "category": "Telegram Views",
"rate": "0.00167", "min": "10", "max": "500000", "refill": false, "cancel": true},
{"service": 103, "name": "Telegram Post Reactions 🔥", "type": "Default", "category": "Telegram Reactions",
"rate": "0.05000", "min": "1", "max": "500000", "refill": false, "cancel": true},
…
]rate is the price per 1,000 in USD with your own average (here: $0.00167 per 1,000 coins).
add — place an order
| Parameter | Description |
|---|---|
service | Service ID from the list above |
link | Telegram post link (latest-posts services: post or public channel link) |
quantity | How many — views per post for latest-posts services |
runs | Optional, views services only — drip-feed: split the order into this many batches |
interval | Optional, with runs — minutes between batches |
answer_number | Service 6 only — the option to vote for, starting at 1 (for button posts: the row) |
column | Optional, service 6 — button column for button posts, starting at 1 (default 1) |
Post views
POST https://actionseen.com/api/v2 key=API_KEY&action=add&service=1&link=https://t.me/channel/123&quantity=1000
{"order": 1234}Views on the latest 100 posts of a channel — 100,000 views in total
POST https://actionseen.com/api/v2 key=API_KEY&action=add&service=5&link=https://t.me/channel&quantity=1000
{"order": 1235}Drip-feed — 1,000 views in 4 batches, one every 30 minutes
POST https://actionseen.com/api/v2 key=API_KEY&action=add&service=1&link=https://t.me/channel/123&quantity=1000&runs=4&interval=30
{"order": 1236}Reaction — 🔥 is service 103
POST https://actionseen.com/api/v2 key=API_KEY&action=add&service=103&link=https://t.me/channel/123&quantity=500
{"order": 1237}Poll vote — the second option of the poll
POST https://actionseen.com/api/v2 key=API_KEY&action=add&service=6&link=https://t.me/channel/123&quantity=200&answer_number=2
{"order": 1238}An error — always HTTP 200
POST https://actionseen.com/api/v2 key=API_KEY&action=add&service=1&link=https://t.me/channel/123&quantity=5
{"error": "Quantity must be between 10 and 500000"}status — one order
POST https://actionseen.com/api/v2 key=API_KEY&action=status&order=1234
{
"charge": "0.00167",
"start_count": "1520",
"status": "In progress",
"remains": "0",
"currency": "USD"
}status — several orders (up to 100)
POST https://actionseen.com/api/v2 key=API_KEY&action=status&orders=1234,1237,9999
{
"1234": {"charge": "0.00167", "start_count": "1520", "status": "Completed", "remains": "0", "currency": "USD"},
"1237": {"charge": "0.02000", "start_count": "0", "status": "Partial", "remains": "100", "currency": "USD"},
"9999": {"error": "Incorrect order ID"}
}status | Meaning |
|---|---|
Pending | Accepted, about to start |
In progress | Running (latest-posts orders stay here until every post is finished) |
Completed | Fully delivered |
Partial | Stopped part-way; the undelivered part (remains) was refunded |
Canceled | Canceled and fully refunded |
cancel
POST https://actionseen.com/api/v2 key=API_KEY&action=cancel&orders=1236,9999
[
{"order": 1236, "cancel": 1},
{"order": 9999, "cancel": {"error": "Incorrect order ID"}}
]A canceled order is refunded automatically; a running one is stopped and the undelivered part is refunded shortly after.
Refill is not offered (refill returns an error).
balance
POST https://actionseen.com/api/v2 key=API_KEY&action=balance
{"balance": "166.67000", "currency": "USD"}Errors
error | Meaning |
|---|---|
Incorrect request | key or action is missing, or the action is unknown |
Invalid API key | Wrong or disabled key |
Incorrect service ID | No service with this ID |
Incorrect link | link is empty |
Quantity must be between … | Outside the service's min / max |
answer_number is required (starts at 1) | Service 6 without an option |
Not enough balance | Top up your API balance |
Incorrect order ID | No order with this ID for your key |
Too many requests, retry in Ns | More than 600 new orders, or 3,000 other requests, per minute |
Classic API — full reference GET Simple GET requests in API coins — for your own code and bots ⌄
Base URL
Both forms work. The first has no question mark (the format older clients use); the second is the standard one:
https://actionseen.com/api/key=API_KEY&action=balance https://actionseen.com/api/?key=API_KEY&action=balance
Services
| Service | Cost | Min | Max |
|---|---|---|---|
view | 1 coin per view | 10 | 500,000 |
like | 30 coins per vote | 1 | 500,000 |
reaction | 30 coins per reaction | 1 | 500,000 |
List services
The only request that needs no key.
https://actionseen.com/api/action=services
[
{"service": "view", "name": "Telegram Views", "rate": 1, "currency": "Coin", "min": 10, "max": 500000, "status": "active"},
{"service": "like", "name": "Telegram Likes / Poll votes", "rate": 30, "currency": "Coin", …},
{"service": "reaction", "name": "Telegram Reactions", "rate": 30, "currency": "Coin", …}
]Order views
| Parameter | Description |
|---|---|
key | Your API key |
action | view |
link | Telegram post link — raw, not URL-encoded |
quantity | Views per post |
lastxpost | Optional. Runs the order on this many latest posts of the channel, counting back from the link (the link included). 1–100: any number (e.g. 52, 87); above 100: multiples of 100 only, up to 1,000 (200, 300 … 1,000). The cost is multiplied by this number. |
startdelay | Optional, 0–1440 minutes — start after this delay (default 0) |
interval | Optional, 1–1440 minutes — send one batch every N minutes (default 1) |
vpi | Optional, 10–500,000 — views per batch (default: the whole order) |
Send none of startdelay, interval, vpi for maximum speed.
If you send only some of them, the rest take their defaults — no error. For example, only
startdelay=30 starts the order in 30 minutes and then runs at full speed.
https://actionseen.com/api/key=API_KEY&action=view&link=https://t.me/channel/123&quantity=1000
{
"order": "AV12ab34cd",
"link": "https://t.me/channel/123",
"quantity": 1000,
"charge": 1000,
"currency": "Coin",
"status": "In progress"
}
Channel link with lastxpost: when you send lastxpost, link can also be a
public channel link without a post number, e.g. https://t.me/channel. We find the channel's latest post and order
views for the latest lastxpost posts from there. Without lastxpost, a post link is still required.
If the latest post cannot be read (private channel, a group instead of a channel, wrong name), the order is rejected with
422 and nothing is charged.
https://actionseen.com/api/key=API_KEY&action=view&link=https://t.me/channel&quantity=2000&lastxpost=10
{
"order": "Z65Xrhpi",
"link": "https://t.me/channel/4821",
"quantity": 2000,
"charge": 20000,
"currency": "Coin",
"status": "Pending",
"lastxpost": 10,
"requested_lastxpost": 10
}
More than 100 posts: use a multiple of 100 up to 1,000, e.g.
lastxpost=500. You still get one order code; its status covers all posts and
orders lists the code of every post. Other values above 100 (such as 150) are rejected. If the channel has
fewer posts than requested, the order runs on all available posts and you are charged only for
those: the response shows the real number in lastxpost next to requested_lastxpost.
https://actionseen.com/api/key=API_KEY&action=view&link=https://t.me/channel&quantity=1000&lastxpost=500
{
"order": "Kq81LmZt",
"link": "https://t.me/channel/146",
"quantity": 1000,
"charge": 146000,
"currency": "Coin",
"status": "Pending",
"lastxpost": 146,
"requested_lastxpost": 500
}Order reactions
| Parameter | Description |
|---|---|
key | Your API key |
action | reaction |
link | Telegram post link |
quantity | Number of reactions |
text | The emoji itself, e.g. 👍 — one of the 73 allowed emojis below |
speed | Optional, one of 1, 2, 5, 15, 30 — 1 means maximum speed, otherwise “one every N minutes” (default 1) |
👍 👎 ❤️ 🔥 🥰 👏 😁 🤔 🤯 😱 🤬 😢 🎉 🤩 🤮 💩 🙏 👌 🕊 🤡 🥱 🥴 😍 🐳 ❤️🔥 🌚 🌭 💯 🤣 ⚡️ 🍌 🏆 💔 🤨 😐 🍓 🍾 💋 🖕 😈 😴 😭 🤓 👻 👨💻 👀 🎃 🙈 😇 😨 🤝 ✍️ 🤗 🫡 🎅 🎄 ☃️ 💅 🤪 🗿 🆒 💘 🙉 🦄 😘 💊 🙊 😎 👾 🤷♂️ 🤷 🤷♀️ 😡
⚠️ Percent-encode the emoji (%F0%9F%94%A5 for 🔥). It is the only parameter
that needs encoding; everything else — especially link — must stay raw.
Any other emoji is rejected with 422.
https://actionseen.com/api/key=API_KEY&action=reaction&link=https://t.me/channel/123&quantity=50&text=%F0%9F%94%A5&speed=1
{
"order": "Rt4Qp9Ws",
"link": "https://t.me/channel/123",
"quantity": 50,
"charge": 1500,
"currency": "Coin",
"status": "In progress"
}Order poll votes / likes
| Parameter | Description |
|---|---|
key | Your API key |
action | like |
link | Telegram post link |
quantity | Number of votes |
row | Button row (or poll option) — starts at 1 |
column | Button column — starts at 1 (use 1 for polls) |
speed | Same as reactions |
Rows and columns are counted from 1, not 0. Posts of private channels
(t.me/c/…) are not supported for votes.
https://actionseen.com/api/key=API_KEY&action=like&link=https://t.me/channel/123&quantity=25&row=1&column=2&speed=1
{
"order": "Lk7Vn2Bq",
"link": "https://t.me/channel/123",
"quantity": 25,
"charge": 750,
"currency": "Coin",
"status": "In progress"
}Order status
Use the same action as the order, with order instead of link and quantity.
remains is how many coins were refunded for the undelivered part.
https://actionseen.com/api/key=API_KEY&action=view&order=AV12ab34cd
{
"order": "AV12ab34cd",
"link": "https://t.me/channel/123",
"quantity": 1000,
"charge": 750,
"remains": 250,
"currency": "Coin",
"status": "Partial"
}
Status is one of pending, In progress, Done, Canceled, Partial.
Orders with lastxpost are split into one order per post within about a minute; the status then also
has orders — the order ID of every post — and stays In progress until all posts are finished.
Each post order can be queried or canceled on its own.
https://actionseen.com/api/key=API_KEY&action=view&order=Z65Xrhpi
{"order": "Z65Xrhpi", "quantity": 2000, "charge": 20000, "remains": 0, "currency": "Coin",
"status": "In progress", "orders": "mgYgmyuy, 6iZbQ7cO, JbeCHWdw, …"}Cancel an order
https://actionseen.com/api/key=API_KEY&action=cancel&order=AV12ab34cd
{"cancel request": "Sent"}An order that has not started is canceled at once and refunded immediately; a running order is stopped and the undelivered part is refunded shortly after.
Balance
https://actionseen.com/api/key=API_KEY&action=balance
{"balance": 1250000, "used": 480000, "currency": "Coin"}Errors
Every error comes with a matching HTTP status and this shape:
https://actionseen.com/api/key=WRONG_KEY&action=balance
{"error": "Invalid API key"}| HTTP | Meaning |
|---|---|
400 | A parameter is missing or invalid |
401 | Key missing or invalid |
404 | No order with this ID for your key |
422 | Order rejected — the message says why (balance, link, range) |
429 | Too many requests: more than 600 new orders, or more than 3,000 status / balance / cancel requests, per minute (two separate limits) |
| Message | Meaning |
|---|---|
No API key specified | key is missing |
Invalid API key | Wrong or disabled key, or the account is banned |
No action specified | action is missing |
Invalid action | Unknown action |
Not enough balance | Your API balance is too low — top up in the web panel or the bot |
Invalid post link… | The post link is not valid |
View count out of range | Views outside the allowed range |
Quantity out of range | Votes outside the allowed range |
Reaction count out of range | Reactions outside the allowed range |
Invalid reaction emoji | Emoji not in the allowed list |
Invalid speed value | Speed is not one of the allowed values |
Invalid row/column… | Wrong button position (counted from 1) |
Poll votes need a post in a public channel | t.me/c/… links are not supported for votes |
Incorrect order | No order with this ID for you |
Already cancelled | The order was already canceled |
Not possible | The order can no longer be canceled |
Too many requests | Rate limit — wait a little |
ActionSeen