ChannelMod
Home
0

Notifications

No notifications
Hi, Loading... Logout
Demo Mode - Some features are disabled. Sign up for your own account
  • My Portals
  • Billing
  • Invoices
  • Account
  • Settings
Developer
  • API Documentation
Support
  • Help Center
  • FAQ & Guides
Referrals
  • Affiliates

My Portals

Manage your portal instances

Create New Portal

Billing

Manage your subscription and payment methods

Monthly Summary

Total Monthly Cost

£0.00

Active Portals

0

Active Add-ons

None

Multi-Portal Discount Applied: -£0.00

Current Plan

Loading billing information...

Payment Method

No payment method on file

Billing History

Date Description Amount Status
No billing history

Invoices

View and download your invoices

Invoice # Date Portal Amount Status Actions
No invoices found

Settings

Manage your password and security settings

Change Password

Update your account password. A verification code will be sent to your email.

Check your spam/junk folder if you don't see the email

Two-Factor Authentication

We highly recommend enabling 2FA

Two-factor authentication adds an extra layer of security to your account. After enabling, you'll need to enter a code from your authenticator app when logging in.

Status: Not Enabled

Choose Your 2FA Method

Email Code

Receive a code via email each time you log in

Authenticator App

Use Google Authenticator, Authy, or Microsoft Authenticator

Setup Instructions
  1. Download an authenticator app:
    • Google Authenticator
    • Authy
    • Microsoft Authenticator
  2. Open the app and scan the QR code or enter the secret key manually
  3. Enter the 6-digit code from the app below to verify
QR Code will appear here

Secret Key: XXXX-XXXX-XXXX-XXXX

Account Settings

Manage your account information

Profile Information

Email

Loading...

Name

Loading...

Company

Not set

Member Since

Loading...

Security

For 2FA settings, go to Settings

Connected Accounts

Loading connected accounts...

Help Center

Get support and manage your tickets

Your Support Tickets

Ticket # Subject Portal Priority Status Last Updated Actions
Loading tickets...

FAQ & Guides

Find answers to common questions and learn how to use your portal

Getting Started

How do I set up my first portal?

Setting up your portal is easy:

  1. Choose a Plan: Visit the pricing page and select a package that suits your needs.
  2. Complete Payment: Pay via Stripe (card) or bank transfer.
  3. Portal Provisioning: Your portal will be automatically created and you'll receive login credentials via email.
  4. Access Admin Panel: Log into your portal's admin panel at yoursubdomain.channelmod.com/admin
  5. Configure Settings: Set up your site name, branding, and connect your bots.
What is my portal subdomain?

Your portal subdomain is the unique identifier for your portal. For example, if your subdomain is "dj", your portal is accessible at:

  • Main Site: dj.channelmod.com
  • Admin Panel: dj.channelmod.com/admin
  • Bot Manager: dj.channelmod.com/bot-manager

Bot Setup & Configuration

How do I connect my Telegram bot?

To connect your Telegram bot:

  1. Open Telegram and search for @BotFather
  2. Send /newbot and follow the prompts to create your bot
  3. Copy the Bot Token provided by BotFather
  4. Go to your portal's Bot Manager → Settings
  5. Paste the token in the "Telegram Bot Token" field
  6. Click Save and your bot will start automatically

Tip: Make sure to add your bot as an admin to any groups you want it to manage.

How do I connect my Discord bot?

To connect your Discord bot:

  1. Go to Discord Developer Portal
  2. Click New Application and give it a name
  3. Go to the Bot section and click "Add Bot"
  4. Copy the Bot Token (click "Reset Token" if needed)
  5. In your portal's Bot Manager, go to Settings and paste the Discord Bot Token
  6. Use the OAuth2 URL Generator to invite your bot to your server with the required permissions
How do I connect my Twitch bot?

To connect your Twitch bot:

  1. Create a Twitch account for your bot (or use your main account)
  2. Go to Twitch Token Generator
  3. Generate an OAuth token with the required scopes
  4. In your portal's Bot Manager, paste the OAuth token and channel name
  5. Save and the bot will connect to your Twitch chat
How does AI Chat work?

AI Chat allows your bot to respond intelligently to users:

  • Tokens: Each AI response uses tokens. Your plan includes a monthly token allowance.
  • Wake Word: Users trigger the AI by using a wake word (default: !chat)
  • Custom Prompts: You can customize the AI's personality in Bot Manager → AI Chat
  • Token Add-ons: Need more tokens? Purchase add-ons from the Upgrade Plan modal.

Monitor your token usage in Bot Manager → AI Chat → Token Usage section.

Tiers & Subscriptions

How do I set up subscription tiers?

Tiers allow you to offer different access levels to your community:

  1. Go to your portal's Admin Panel → Tier Config
  2. Click Add Tier to create a new tier
  3. Set the tier name, price, and features
  4. Configure which links/content each tier can access
  5. Users can subscribe to tiers from your portal's homepage

Your bot will automatically verify users against their tier and grant/restrict access accordingly.

How do subscribers verify their access?

When a user purchases a subscription:

  1. They receive a verification code via email
  2. They can enter this code in your portal's "Manage Subscription" section
  3. Once verified, the bot grants them access to the appropriate tier content
  4. They can also connect their Discord/Twitch account for automatic verification

Billing & Payments

How do I update my payment method?

To update your payment method:

  1. Go to Dashboard → Billing
  2. Click Update Payment Method
  3. Enter your new card details securely via Stripe
  4. Your new card will be used for future billing cycles
How do I view my invoices?

All your invoices are available in the Dashboard → Invoices tab. You can:

  • View all past payments and their status
  • See the description of each charge
  • Filter by date or portal
Can I get a refund?

Refund policies vary by purchase type:

  • Monthly subscriptions: You can cancel anytime. You'll retain access until the current billing period ends.
  • One-time purchases: Refunds may be available within 14 days. Contact support via Help Center.
  • AI Token Add-ons: Non-refundable once tokens have been used.
How do I upgrade or downgrade my plan?

To change your plan:

  1. Go to Dashboard → My Portals
  2. Click Manage on your portal
  3. Click Upgrade Your Plan
  4. Select a new package and complete the payment

Upgrades take effect immediately. Downgrades take effect at the next billing cycle.

Moderation & Auto-Moderation

How do I set up auto-moderation?

Auto-moderation helps keep your community safe:

  1. Go to Bot Manager → Moderation
  2. Enable the features you want:
    • Word Filter: Block specific words/phrases
    • Link Filter: Block unauthorized links
    • Spam Detection: Auto-detect and remove spam
  3. Configure actions (warn, mute, kick, ban)
  4. Set up a log channel to track moderation actions
How does activity monitoring work?

Activity monitoring tracks member engagement (Telegram only):

  • Set a minimum posting interval (5 min to 1 month)
  • Members who don't post within the interval can be:
    • Warned via DM
    • Automatically removed
  • Exempt specific usernames from monitoring
  • This feature is off by default

Troubleshooting

My bot is showing as offline. What should I do?

If your bot appears offline:

  1. Check the token: Ensure your bot token is correct in Bot Manager → Settings
  2. Restart the bot: Click the "Restart Bot" button in Bot Manager
  3. Check permissions: Make sure the bot has the required permissions in your group/server
  4. View logs: Check the Activity Log for error messages

If issues persist, open a support ticket in the Help Center.

AI Chat says "Not configured" or tokens aren't updating

If AI tokens aren't showing correctly:

  • Make sure you have an AI Chat addon active (check Upgrade Plan)
  • Token usage updates may take a few minutes to reflect
  • Check Bot Manager → AI Chat → Token Usage section
  • If you just purchased, try refreshing the page
My payment was declined. What should I do?

If your payment was declined:

  1. Check that your card details are correct
  2. Ensure you have sufficient funds
  3. Try a different payment method
  4. Contact your bank to authorize the transaction
  5. For bank transfers, ensure you used the correct reference

Features & Tools

How do I create custom bot commands?

Custom commands let your bot respond to specific triggers:

  1. Go to Bot Manager → Commands
  2. Click Add Command
  3. Set a trigger (e.g., !rules) and the response message
  4. Enable/disable commands using the toggle switch
  5. Commands work across all connected platforms (Telegram, Discord, Twitch)

Use !help in chat to see all available commands.

How do I run giveaways?

Run giveaways to engage your community:

  1. Go to Bot Manager → Giveaways
  2. Set the prize, duration, and number of winners
  3. Users enter by typing !enter in chat
  4. Winners are automatically selected when the giveaway ends

Giveaways run across all your connected platforms simultaneously.

How do I set up donations?

Accept donations from your community:

  1. Go to your portal's Admin Panel → Settings
  2. Enable donations and configure your Stripe keys
  3. Your donation page is available at yourportal.channelmod.com/donate
  4. Donors can enter their name and an optional message
  5. Use !topdonator in chat to show top donors

Donor names from the donation page are shown in leaderboards.

How do song requests work?

Let your audience request songs during streams:

  1. Go to Bot Manager → Music
  2. Connect a music platform (Spotify, YouTube Music, Apple Music, or Amazon Music)
  3. Enable song requests
  4. Users can request songs using !sr [song name] in chat
  5. Optionally set a wake word for natural language requests

You can set maximum song length, subscriber-only mode, and other restrictions.

What is device locking?

Device locking prevents code sharing by tying each verification code to a single device:

  • When a user verifies with their code, it's locked to their device
  • If someone else tries to use the same code on a different device, it will be rejected
  • This prevents unauthorized sharing of premium group access
  • Admins can reset device locks from the Admin Panel if needed
How do scheduled messages work?

Schedule automated messages to your community:

  1. Go to Bot Manager → Scheduling
  2. Create a new scheduled message with your content
  3. Set the interval (e.g., every hour, daily, weekly)
  4. Choose which platforms to send it to

Great for regular announcements, rules reminders, or promotional content.

How do I set up welcome messages?

Greet new members automatically:

  1. Go to Bot Manager → Settings for each platform
  2. Find the Welcome Message field
  3. Enter your custom welcome message
  4. The bot will send this to new members when they join

Affiliates & Payouts

How does the affiliate program work?

Earn commissions by referring new customers:

  1. Go to Dashboard → Affiliates
  2. Click Create Affiliate Code
  3. Share your unique referral link or code with others
  4. When someone signs up and purchases using your code, you earn a commission
  5. Track your referrals, earnings, and payouts in the Affiliates tab
How do I set up my payout method?

Configure how you receive your earnings:

  1. Go to your portal's Admin Panel → Settings
  2. Find the Payout Method section
  3. Choose between Stripe Connect or PayPal
  4. Enter your account details and save

Payouts are processed automatically based on your earnings. You can also request manual payouts from the Billing tab.

API & Advanced

How do I use the API?

Access your portal data programmatically:

  1. Go to Dashboard → API Documentation
  2. Your API key is available in your portal settings
  3. Use the documented endpoints to manage codes, users, and settings
  4. All API requests require authentication via your API key

The API documentation includes examples and response formats for each endpoint.

What is white-labeling?

White-labeling lets you customize the branding of your portal:

  • Custom logo and site name
  • Custom domain support
  • Remove ChannelMod branding from your portal
  • Available on plans that include the white-label feature

Configure branding in your portal's Admin Panel → Settings.

How does the ticket system work?

The built-in ticket system lets your community members request support:

  • Members can open tickets from your portal or via bot commands
  • Manage tickets in Bot Manager → Tickets
  • Reply to tickets, change priority, and close resolved issues
  • Ticket notifications can be sent to a designated channel

Affiliates

Earn commissions by referring customers

Your Affiliate Stats

0
Total Referrals
£0.00
Total Earned
£0.00
Pending Payout
£0.00
Paid Out

Monthly Earnings

Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec

Your Affiliate Codes

Code Commission Uses Earnings Status Actions
Loading affiliate codes...

How Affiliates Work

Create affiliate codes and share them with others. When someone purchases a new portal or package upgrade using your referral link, you earn a 20% commission on their purchase.

  • Share your link: https://channelmod.com?ref=YOUR_CODE
  • Earn 20% commission on new portal purchases and package upgrades
  • Track your referrals and earnings in real-time
  • Commissions are paid monthly via PayPal or Stripe
  • Disabling a code stops new referrals but doesn't affect existing earnings

API Documentation

Integrate your portal with external applications using our comprehensive REST API

Getting Started

Welcome to the Portal API! This guide will help you integrate your portal with external applications, automate member management, and build custom integrations.

Prerequisites

  • A portal with API Access enabled in your package or add-ons
  • Your portal's API key (found in Admin → Settings → API)
  • Basic knowledge of REST APIs and JSON

Quick Start Example

Here's a complete example to get you started - fetching all members:

// JavaScript/Node.js Example
const response = await fetch('https://your-portal.channelmod.com/api/v1/members', {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
  }
});

const data = await response.json();
console.log(data.members);
Members

Manage user subscriptions, access levels, and membership status

Tiers

Create and manage subscription tiers and pricing

Access Codes

Generate, validate, and manage access codes

Analytics

Access revenue reports and member statistics

Authentication

All API requests require authentication using your portal's API key. Include the key in the Authorization header:

Authorization: Bearer YOUR_API_KEY

Finding Your API Key

  1. Log in to your portal's Admin panel
  2. Navigate to Settings → API
  3. Click Generate API Key if you don't have one
  4. Copy the API key (keep it secret!)

Security Best Practices

  • Never expose your API key in client-side code or public repositories
  • Store API keys in environment variables or secure vaults
  • Rotate your API key periodically (regenerate in Settings → API)
  • Use IP whitelisting if available for additional security

Important

If your API key is compromised, regenerate it immediately in your portal's Settings → API. All existing integrations using the old key will stop working.

Base URL

All API endpoints are relative to your portal's base URL:

https://YOUR_PORTAL_SUBDOMAIN.channelmod.com/api/v1

Replace YOUR_PORTAL_SUBDOMAIN with your actual portal subdomain (e.g., myportal).

Members API

The Members API allows you to manage all user subscriptions in your portal. You can list, create, update, and delete members programmatically.

GET /members

List all members in your portal with optional filtering and pagination.

Query Parameters:

tier_id Filter by tier ID (optional)
status Filter by status: active, inactive, expired (optional)
page Page number for pagination (default: 1)
limit Results per page (default: 50, max: 100)

Example Response:

{
  "success": true,
  "members": [
    {
      "id": 123,
      "telegram_id": "123456789",
      "username": "john_doe",
      "tier_id": 1,
      "tier_name": "Premium",
      "status": "active",
      "expires_at": "2024-12-31T23:59:59Z",
      "created_at": "2024-01-15T10:30:00Z"
    }
  ],
  "total": 150,
  "page": 1,
  "pages": 3
}

GET /members/:id

Get details of a specific member by ID.

POST /members

Create a new member with access code.

Request Body:

{
  "telegram_id": "123456789",
  "username": "new_user",
  "tier_id": 1,
  "duration_days": 30
}

PUT /members/:id

Update an existing member's tier or expiration.

DELETE /members/:id

Remove a member and revoke their access.

Tiers API

The Tiers API allows you to manage subscription tiers (membership levels) in your portal. Create different tiers with various pricing and features.

GET /tiers

List all tiers in your portal with member counts and pricing details.

Example Response:

{
  "success": true,
  "tiers": [
    {
      "id": 1,
      "name": "Premium",
      "price": 9.99,
      "duration_days": 30,
      "features": ["private_channel", "vip_support"],
      "member_count": 45
    },
    {
      "id": 2,
      "name": "VIP",
      "price": 29.99,
      "duration_days": 30,
      "features": ["private_channel", "vip_support", "1on1_coaching"],
      "member_count": 12
    }
  ]
}

POST /tiers

Create a new tier.

PUT /tiers/:id

Update an existing tier.

DELETE /tiers/:id

Delete a tier (members will be moved to default tier).

Access Codes API

Access codes allow users to join your portal without going through payment. Perfect for giveaways, promotions, or manual member enrollment.

GET /access-codes

List all access codes.

POST /access-codes

Generate new access codes.

Request Body:

{
  "tier_id": 1,
  "quantity": 10,
  "duration_days": 30,
  "max_uses": 1,
  "prefix": "VIP"
}

Example Response:

{
  "success": true,
  "codes": [
    "VIP-ABCD-1234",
    "VIP-EFGH-5678",
    "VIP-IJKL-9012"
  ]
}

POST /access-codes/validate

Validate an access code without redeeming it.

Request Body:

{
  "code": "VIP-ABCD-1234"
}

DELETE /access-codes/:code

Revoke an access code permanently.

Analytics API

Access detailed analytics about your portal including member statistics, revenue data, and growth metrics.

GET /analytics/overview

Get portal analytics overview.

Example Response:

{
  "success": true,
  "analytics": {
    "total_members": 150,
    "active_members": 142,
    "new_members_today": 5,
    "new_members_week": 23,
    "revenue_month": 1499.85,
    "churn_rate": 2.5
  }
}

GET /analytics/revenue

Get detailed revenue analytics with optional date range.

Query Parameters:

start_date Start date (YYYY-MM-DD)
end_date End date (YYYY-MM-DD)

Webhooks

Webhooks allow your application to receive real-time notifications when events occur in your portal. Configure webhooks in your portal's Admin → Settings → Webhooks.

Setting Up Webhooks

  1. Go to your portal's Admin → Settings → Webhooks
  2. Enter your webhook URL (must be HTTPS)
  3. Select which events you want to receive
  4. Copy your webhook secret for signature verification
  5. Click Save and test with a sample event

Available Events:

member.created New member joined your portal
member.expired Member subscription expired
member.renewed Member renewed subscription
tier.changed Member changed tier
payment.received Payment received
payment.failed Payment failed

Webhook Payload Example:

{
  "event": "member.created",
  "timestamp": "2024-01-15T10:30:00Z",
  "data": {
    "member_id": 123,
    "telegram_id": "123456789",
    "username": "new_user",
    "tier": "Premium",
    "expires_at": "2024-02-15T10:30:00Z"
  },
  "signature": "sha256=abc123..."
}

Webhook Security

Each webhook request includes a X-Webhook-Signature header containing an HMAC-SHA256 signature of the payload. Verify this signature using your webhook secret to ensure the request is authentic.

Error Handling

All API endpoints return consistent error responses:

{
  "success": false,
  "error": "Error message here",
  "code": "ERROR_CODE"
}

HTTP Status Codes:

200 Success
201 Created successfully
400 Bad request - Invalid parameters
401 Unauthorized - Invalid or missing API key
403 Forbidden - API access not enabled for your package
404 Not found - Resource doesn't exist
429 Too many requests - Rate limit exceeded
500 Internal server error

Rate Limiting

API requests are limited to 100 requests per minute per API key. If you exceed this limit, you'll receive a 429 status code. The X-RateLimit-Remaining header shows your remaining quota.

SDKs & Code Examples

Use these code examples to quickly integrate with our API in your preferred language.

Node.js / JavaScript

// Using fetch (built-in to Node.js 18+)
async function getMembers() {
  const response = await fetch('https://myportal.channelmod.com/api/v1/members', {
    headers: {
      'Authorization': 'Bearer YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  });
  return await response.json();
}

// Create a new member
async function createMember(telegramId, username, tierId) {
  const response = await fetch('https://myportal.channelmod.com/api/v1/members', {
    method: 'POST',
    headers: {
      'Authorization': 'Bearer YOUR_API_KEY',
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      telegram_id: telegramId,
      username: username,
      tier_id: tierId,
      duration_days: 30
    })
  });
  return await response.json();
}

Python

import requests

API_KEY = 'YOUR_API_KEY'
BASE_URL = 'https://myportal.channelmod.com/api/v1'

# Get all members
def get_members():
    response = requests.get(
        f'{BASE_URL}/members',
        headers={'Authorization': f'Bearer {API_KEY}'}
    )
    return response.json()

# Generate access codes
def generate_codes(tier_id, quantity=10):
    response = requests.post(
        f'{BASE_URL}/access-codes',
        headers={
            'Authorization': f'Bearer {API_KEY}',
            'Content-Type': 'application/json'
        },
        json={
            'tier_id': tier_id,
            'quantity': quantity,
            'duration_days': 30
        }
    )
    return response.json()

PHP

<?php
$api_key = 'YOUR_API_KEY';
$base_url = 'https://myportal.channelmod.com/api/v1';

// Get all members
function getMembers() {
    global $api_key, $base_url;
    
    $ch = curl_init("$base_url/members");
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
        "Authorization: Bearer $api_key",
        "Content-Type: application/json"
    ]);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    
    $response = curl_exec($ch);
    curl_close($ch);
    
    return json_decode($response, true);
}
?>

cURL

# List all members
curl -X GET "https://myportal.channelmod.com/api/v1/members" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"

# Create access codes
curl -X POST "https://myportal.channelmod.com/api/v1/access-codes" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"tier_id": 1, "quantity": 10, "duration_days": 30}'

Manage Portal

Upgrade Your Plan

Select a new package for your portal. Your features will be upgraded immediately.

AI Token Add-ons

Increase your monthly AI Chat token allowance with these add-ons.

Change Password

Copy Settings From Another Portal

Warning: This will overwrite the current portal's settings with settings from the selected source portal. This cannot be undone.

  • Bot Settings (commands, prompts, wake words)
  • Scheduled Messages
  • Link Configurations (per tier)
  • Color Schemes & Themes
  • Donation & Giveaway Settings
  • Bot Tokens (Telegram, Discord, Twitch)
  • Existing User Codes/Sessions
  • Admin User Accounts

Create New Ticket

Ticket #000

Transfer Portal

Warning - This Action is Irreversible
  • You will permanently lose access to this portal
  • The new owner will assume all billing responsibility
  • Any unpaid invoices will transfer to the new owner
  • This action cannot be undone
Portal:

The new owner must have an existing ChannelMod account