notpanel
ServicesPricingFAQGiveawayAPI
notpanel

Followers, likes and views for every platform.

The catalog combines directly operated services with capacity from vetted partners. Current availability, timing, refill, and drip-feed support are shown per service; routing and partner identities remain confidential.

Product

  • Services
  • Pricing
  • Price Index
  • Affiliate Program

Resources

  • API
  • Blog
  • FAQ
  • Status

Company

  • About
  • Why NotPanel
  • Contact Us

Legal

  • Terms of Service
  • Privacy Policy
  • Refund Policy

© 2026 NotPanel. All rights reserved.

support@notpanel.com
notpanel
API documentation
+
API documentation

Introduction

  • Overview
  • Getting started
  • Authentication
  • Rate limits
  • Errors

Catalog

  • List services
  • Advanced catalog
  • Service types

Orders

  • Place order
  • Order status
  • Refund quote
  • Refill
  • Cancel

Account

  • Account status
  • Balance

Webhooks

  • Manage webhooks

Reference

  • Changelog
  • SDKs & libraries

Need help?

support@notpanel.com →

Service types

Every service carries a familiar type label plus an additive normalized type_key. The type decides which parameters action=add uses: most take a link and quantity, while list-based types can derive quantity and several types accept extra fields.

What each type takes

key, action, and the optional request_id/idempotency_key retry fields are left out here. The first column shows the familiar type label returned by action=services and its additive normalized type_key; action=catalog also exposes the normalized type. All values come from the same runtime definition.

typelinkquantityExtra parameters
Defaulttype_key: defaultYesYes—
Custom Commentstype_key: custom_commentsYesOptional; derived from listcomments*
Custom Comments Packagetype_key: custom_comments_packageYesNocomments*
Packagetype_key: packageYesNo—
Subscriptionstype_key: subscriptionsNoNousername*min*max*posts*delayexpiry
Invites from Groupstype_key: invites_from_groupsYesYesgroups*
Mentionstype_key: mentionsYesYesusernames*
Mentions Hashtagtype_key: mentions_hashtagYesYeshashtag*usernames
Mentions User Followerstype_key: mentions_user_followersYesYesusername*
Mentions Media Likerstype_key: mentions_media_likersYesYesmedia*
Mentions Custom Listtype_key: mentions_custom_listYesOptional; derived from listusernames*
Polltype_key: pollYesYesanswer_number*
Comment Likestype_key: comment_likesYesYes—
Comment Repliestype_key: comment_repliesYesOptional; derived from listusernamecomments*
SEOtype_key: seoYesYeskeywords*
Web Traffictype_key: web_trafficYesYeskeywordsreferercountrydevicetype_of_trafficgoogle_keyword

* marks a required parameter. Anything unmarked is optional. string (list) means one raw form value with one item per line, not a JSON array.

Extra parameters in detail

Custom Comments (custom_comments)

commentsRequiredstring (list)
Comments

Custom Comments Package (custom_comments_package)

commentsRequiredstring (list)
Comments

Subscriptions (subscriptions)

usernameRequiredstring
Username
minRequiredinteger
Minimum per post
min: 1
maxRequiredinteger
Maximum per post
min: 1
postsRequiredinteger
Posts to track
min: 1 · max: 1000
delayinteger
Delay between posts (minutes)
min: 0
expirystring
Expiry date (YYYY-MM-DD)

Invites from Groups (invites_from_groups)

groupsRequiredstring (list)
Group links

Mentions (mentions)

usernamesRequiredstring (list)
Usernames

Mentions Hashtag (mentions_hashtag)

hashtagRequiredstring
Hashtag
usernamesstring (list)
Source usernames (optional)

Mentions User Followers (mentions_user_followers)

usernameRequiredstring
Source username

Mentions Media Likers (mentions_media_likers)

mediaRequiredstring
Source media URL

Mentions Custom List (mentions_custom_list)

usernamesRequiredstring (list)
Usernames

Poll (poll)

answer_numberRequiredinteger
Answer number
min: 1

Comment Replies (comment_replies)

usernamestring
Comment username (optional)
commentsRequiredstring (list)
Reply text

SEO (seo)

keywordsRequiredstring (list)
Keywords

Web Traffic (web_traffic)

keywordsstring (list)
Keywords (optional)
refererstring
Referrer URL (optional)
countrystring
Country code (optional)
devicestring
Device (optional)
type_of_trafficstring
Traffic type (optional)
google_keywordstring
Google keyword (optional)

Subscriptions

A subscription does not target a link. It watches an account and delivers to each new post as it appears, so it takes a username of at most 100 characters plus the min and max delivery quantity per post. posts is required and must be between 1 and 1000. delay optionally delays delivery in minutes, and expiry can end the subscription on a date.

Creating a subscription immediately reserves the worst-case deposit from your balance: max × posts × effective rate ÷ 1000. After a confirmed cancellation or settlement, any verified unused portion is refunded. If the provider outcome is uncertain, the reserved amount is held for review instead of being refunded automatically.

A subscription action=add response returns the same numeric public order-ID shape as an ordinary order. Use it directly with status, refund_quote, or eligible cancel calls. Older sub_ references remain accepted.

An eligible upstream-managed subscription can be cancelled with action=cancel. It may return status=Processing and status_key=cancelling until terminal confirmation; then its stable total refund is returned.

The values below are illustrative. Replace service 1024 with a live service whose type is subscriptions, and choose min and max inside that service's published limits.

curl -X POST https://notpanel.com/api/v3 \
  -d "key=YOUR_API_KEY&action=add&service=1024&request_id=9f1c0c2e-5c1a-4f7e-9a1d-2b6f0f4d8e13&username=yourhandle&min=50&max=200&posts=10"
const res = await fetch("https://notpanel.com/api/v3", {
  method: "POST",
  headers: { "Content-Type": "application/x-www-form-urlencoded" },
  body: new URLSearchParams({
    key: "YOUR_API_KEY",
    action: "add",
    service: "1024",
    request_id: "9f1c0c2e-5c1a-4f7e-9a1d-2b6f0f4d8e13",
    username: "yourhandle",
    min: "50",
    max: "200",
    posts: "10",
  }),
});
const { order } = await res.json(); // numeric public order ID
import requests

res = requests.post("https://notpanel.com/api/v3", data={
    "key": "YOUR_API_KEY",
    "action": "add",
    "service": "1024",
    "request_id": "9f1c0c2e-5c1a-4f7e-9a1d-2b6f0f4d8e13",
    "username": "yourhandle",
    "min": "50",
    "max": "200",
    "posts": "10",
})
order = res.json()["order"]  # numeric public order ID
<?php
$ch = curl_init('https://notpanel.com/api/v3');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([
    'key' => 'YOUR_API_KEY',
    'action' => 'add',
    'service' => '1024',
    'request_id' => '9f1c0c2e-5c1a-4f7e-9a1d-2b6f0f4d8e13',
    'username' => 'yourhandle',
    'min' => '50',
    'max' => '200',
    'posts' => '10',
]));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$order = json_decode(curl_exec($ch), true)['order']; // numeric public order ID
{
  "order": 7002
}