Skill: grizzlysms-git/grizzly-sms-mcp (version 1.1.3)

--- name: grizzly_sms description: SMS verification and virtual phone numbers via Grizzly SMS API metadata: {"openclaw":{"primaryEnv":"GRIZZLY_SMS_API_KEY","askForEnvInDialog":true}} --- # Grizzly SMS Skill Use this skill when the user needs: SMS verification, virtual numbers (Uber, Telegram, WhatsApp, Instagram, etc.), balance, prices, countries, services, or **account registration** with a rented phone number. ## API Key — Ask in Dialog **Before running any Grizzly command**, you MUST ask the user for the API key (unless they already gave it in this conversation): > Please provide your Grizzly SMS API key. Register on grizzlysms.com, then go to the API section (grizzlysms.com/docs) and copy the key. **When the user provides the key in chat** — use it immediately. Pass it via exec env on every Grizzly call. Do NOT tell the user to set environment variables or edit config. The exec tool accepts env overrides; use them. ``` exec(command="node {baseDir}/scripts/grizzly-cli.mjs get_services", env={"GRIZZLY_SMS_API_KEY": "<exact_key_user_sent>"}) ``` Example: user sends [REDACTED_SECRET] → use `env={"GRIZZLY_SMS_API_KEY": [REDACTED_SECRET]}` in exec. Then proceed with get_services, request_number, etc. If the key is already in config (skills.entries.grizzly_sms.env), omit env. Otherwise always ask and pass via env. **DO NOT** ask the user to set GRIZZLY_SMS_API_KEY in environment variables or config files when they already provided the key in chat. Use it directly. ## How to Call There is NO tool named grizzly_sms.get_services(). You MUST use the **exec** tool. Example: ``` exec(command="node {baseDir}/scripts/grizzly-cli.mjs get_services", env={"GRIZZLY_SMS_API_KEY": "<user_key>"}) ``` Use host=gateway only if tools.exec.host is configured for gateway. OpenClaw replaces {baseDir} with the skill folder path. ## Commands (run via exec) | What to do | Exec command | |------------|--------------| | List services (find Uber) | `node {baseDir}/scripts/grizzly-cli.mjs get_services` | | List countries (Brazil=73) | `node {baseDir}/scripts/grizzly-cli.mjs get_countries` | | Check balance | `node {baseDir}/scripts/grizzly-cli.mjs get_balance` | | Get crypto wallet for top-up | `node {baseDir}/scripts/grizzly-cli.mjs get_wallet` | | Request number | `node {baseDir}/scripts/grizzly-cli.mjs request_number ub 73` | | Get SMS code | `node {baseDir}/scripts/grizzly-cli.mjs get_status <activationId>` | | Complete activation | `node {baseDir}/scripts/grizzly-cli.mjs set_status <activationId> 6` | ## Balance & Crypto Top-up When the user asks about **balance**, **top-up**, **replenish**, or gets **NO_BALANCE**: 1. **get_balance** — show current balance (e.g. ACCESS_BALANCE:10.50) 2. **get_wallet** — returns `wallet_address` for USDT (TRC-20) 3. Tell the user: *Send USDT (TRC-20 network) to this address. Minimum 50 USD. Funds are credited automatically to your Grizzly balance.* Format the wallet address for easy copying (monospace on Telegram). Example: ``` Balance: `10.50` USD Crypto wallet (USDT TRC-20): [REDACTED_SECRET] Min top-up: 50 USD. Funds credit automatically. ``` You are NOT handling crypto transactions — you only retrieve and display the wallet address from the Grizzly API so the user can send USDT from their own wallet. ## Full Registration Workflow (any service, any country) When the user asks to "register an account for [service] in [country]" (e.g. Uber in Brazil, Instagram in Jamaica): 1. **Ask for API key** (if not in config) 2. **Resolve service and country codes** — exec get_services and get_countries with env, parse JSON to find the code for the requested service (e.g. Uber → ub, Instagram → ig) and country (e.g. Brazil → 73, Jamaica → lookup in get_countries output) 3. **Request number** — exec request_number &lt;service&gt; &lt;countryId&gt; with env, save activationId and phone number 4. **Open browser and register** — use the **browser** tool to: - Navigate to the service registration URL (see table below) - Fill the phone number field with the rented number - Fill other required fields (email, name, etc.) — ask user if needed - Submit the form 5. **Poll for SMS** — exec get_status &lt;activationId&gt; with env until SMS code arrives 6. **Enter code in browser** — use browser tool to fill the verification code field and submit 7. **Complete activation** — exec set_status &lt;activationId&gt; 6 with env ## Registration URLs (for browser tool) | Service | Registration URL | |---------|------------------| | Uber | https://riders.uber.com/ | | Instagram | https://www.instagram.com/accounts/emailsignup/ | | Telegram | https://web.telegram.org/ | | WhatsApp | https://web.whatsapp.com/ | | Facebook | https://www.facebook.com/reg/ | | Google | https://accounts.google.com/signup | Use browser.navigate, browser.fill, browser.click as needed. Set browser headless=false so the user can see the process on Mac. ## Output Formatting (for user messages) When sending phone numbers, activation IDs, or SMS codes to the user, always format them for easy copying: - **Phone number** — on its own line, clearly labeled - **Activation ID (actId)** — on its own line, labeled - **SMS code** — on its own line, labeled **If the channel is Telegram** — wrap each value in monospace using triple backticks. Example: ``` Phone: `+15551234567` Activation ID: `12345678` SMS code: `847291` ``` Or as a compact block: ``` `+15551234567` | actId: `12345678` | SMS: `847291` ``` **If the channel is not Telegram** — use plain labeled format with clear line breaks. Avoid extra punctuation around the values so the user can select and copy easily. ## Service codes: tg, wa, ig, ub, fb, go

path: .claude/settings.local.json
content: {
  "permissions": {
    "allow": [
      "Bash(npm install)",
      "Bash(npm run build:*)",
      "Bash(git add:*)",
      "Bash(git remote add:*)"
    ],
    "deny": []
  }
}

path: CONFIG.md
content: # OpenClaw Configuration for Grizzly SMS Skill

OpenClaw works with **skills only** (no mcpServers). This skill uses the **exec** tool to run scripts that call the Grizzly API.

## Config Location

- **macOS**: `~/.openclaw/openclaw.json`
- **Windows**: `%APPDATA%\.openclaw\openclaw.json`
- **Linux**: `~/.openclaw/openclaw.json`

## Required Configuration

### 1. Load the skill

**Option A — Install from GitHub (recommended):**
```bash
openclaw skills add https://github.com/GrizzlySMS-Git/grizzly-sms-mcp
```

**Option B — Add via extraDirs** (if you cloned manually):
```json5
{
  "skills": {
    "load": {
      "extraDirs": ["/path/to/grizzly-sms-mcp"]
    }
  }
}
```

### 2. Enable skill (API key optional)

**Option A — API key in config** (key is always available):

```json5
{
  "skills": {
    "entries": {
      "grizzly_sms": {
        "enabled": true,
        "env": {
          "GRIZZLY_SMS_API_KEY": "your_api_key_from_grizzlysms_com"
        }
      }
    }
  }
}
```

**Option B — API key in dialog** (agent asks during conversation):

```json5
{
  "skills": {
    "entries": {
      "grizzly_sms": {
        "enabled": true
      }
    }
  }
}
```

When the user asks for something (e.g. "register an Instagram account for Jamaica"), the agent will ask: *Please provide your Grizzly SMS API key*. After the user provides it, the agent passes it via exec env.

## Full Example (merge with your config)

```json5
{
  "skills": {
    "load": {
      "extraDirs": ["/path/to/grizzly-sms-mcp"]
    },
    "entries": {
      "grizzly_sms": {
        "enabled": true
      }
    }
  }
}
```

## Setup Steps

1. Ensure the skill folder is at the path in `extraDirs`
2. (Optional) Add API key in `env` — or let the agent ask for it in the dialog
3. Restart: `npx openclaw gateway restart`

### 3. Enable browser tool (for registration workflow)

To let the agent open a browser and fill registration forms, enable the **browser** tool. Add to `openclaw.json`:

```json5
{
  "browser": {
    "enabled": true,
    "headless": false
  },
  "agents": {
    "list": [
      {
        "id": "main",
        "tools": {
          "alsoAllow": ["agents_list", "exec", "browser"]
        }
      }
    ]
  }
}
```

On Mac, run `openclaw browser install` once to download Chromium. The browser will open visibly (headless: false) so the user can see the registration process.

### 4. Ensure exec tool is available

The agent must use the **exec** tool to run the script. With `tools.profile: "coding"`, exec is usually included. If the agent says it cannot call methods, add:

```json5
{
  "agents": {
    "list": [
      {
        "id": "main",
        "tools": {
          "alsoAllow": ["agents_list", "exec", "browser"]
        }
      }
    ]
  }
}
```

### 5. Allow exec on gateway host

If you get "exec tool was not permitted to run on the gateway host", configure exec to run on the gateway and add approvals.

**Option A — Allowlist (recommended):** Add to `openclaw.json`:

```json5
{
  "tools": {
    "exec": {
      "host": "gateway",
      "security": "allowlist",
      "ask": "on-miss"
    }
  }
}
```

Then create or edit `~/.openclaw/exec-approvals.json` (macOS) and add `node` to the allowlist. Run `which node` to get your path:

```json
{
  "version": 1,
  "defaults": {
    "security": "allowlist",
    "ask": "on-miss",
    "askFallback": "deny"
  },
  "agents": {
    "main": {
      "security": "allowlist",
      "ask": "on-miss",
      "allowlist": [
        { "pattern": "/opt/homebrew/bin/node" },
        { "pattern": "/usr/local/bin/node" }
      ]
    }
  }
}
```

**Option B — Full (dev only, less secure):** If you trust the environment:

```json5
{
  "tools": {
    "exec": {
      "host": "gateway",
      "security": "full",
      "ask": "off"
    }
  }
}
```

Restart after changes: `npx openclaw gateway restart`

## Important

- **No mcpServers** — OpenClaw uses skills + exec only
- **Node.js** — The script requires Node.js on the gateway host
- **Browser tool** — For full registration workflow (open browser, fill forms), enable browser and add it to tools.alsoAllow
- **Grizzly MCP in Docker** — Not used; the skill calls Grizzly API directly via the script
- Get API key: register on [grizzlysms.com](https://grizzlysms.com/), then go to the API section ([grizzlysms.com/docs](https://grizzlysms.com/docs)) and copy the key


path: README.md
content: # Grizzly SMS — MCP Server & OpenClaw Skill

[English](#english) | [Русский](#russian)

---

<a name="english"></a>
## English

MCP (Model Context Protocol) server and **OpenClaw Skill** for integrating with [Grizzly SMS](https://grizzlysms.com/) — a platform for SMS verification codes and virtual phone numbers. Compatible with Cursor, Claude Desktop, OpenClaw (MCP and Skill modes).

### What This Project Provides

| Mode | Description | Use Case |
|------|-------------|----------|
| **MCP Server** | Standards-based MCP server exposing Grizzly API tools | Cursor, Claude Desktop, OpenClaw with mcpServers |
| **OpenClaw Skill** | Instruction-based skill using exec + CLI script | OpenClaw skills-only setup (no mcpServers) |

### Features

#### MCP Server

- **Phone operations:** `request_number`, `get_status`, `set_status`
- **Account:** `get_balance`
- **Info:** `get_countries`, `get_services`, `get_prices`

#### OpenClaw Skill

- **Dialog-based API key:** Bot asks for the key during the conversation
- **Balance & top-up:** Check balance and provide crypto wallet (USDT TRC-20) for top-up
- **Number lifecycle:** Request number, poll for SMS, complete or cancel activation
- **Full registration workflow:** Resolve service/country codes → rent number → open browser → fill forms → enter SMS code
- **Formatted output:** Phone, activation ID, and SMS in copy-friendly format (monospace on Telegram)

### OpenClaw Skill Pipeline

1. **API key** — Bot asks: *Please provide your Grizzly SMS API key*
2. **Balance & top-up** — Bot can show balance and crypto wallet address for USDT TRC-20 top-up
3. **Number** — Bot rents a number for the requested service and country
4. **Status** — Bot can cancel an activation or request a new SMS
5. **SMS** — Bot polls and returns the verification code
6. **Complete** — Bot marks activation complete after code is used

See [CONFIG.md](CONFIG.md) for OpenClaw skill setup.

### Prerequisites

- Node.js 18+
- Grizzly SMS API key — register at [grizzlysms.com](https://grizzlysms.com/), then get it from the [API section](https://grizzlysms.com/docs)

---

### Installation

```bash
git clone https://github.com/GrizzlySMS-Git/grizzly-sms-mcp.git
cd grizzly-sms-mcp
npm install
npm run build
```

---

### Configuration: MCP Server (Cursor, Claude Desktop, OpenClaw mcpServers)

#### Cursor

Location: `%APPDATA%\Cursor\User\globalStorage\mcp.json` (Windows) | `~/Library/Application Support/Cursor/User/globalStorage/mcp.json` (macOS) | `~/.config/Cursor/User/globalStorage/mcp.json` (Linux)

```json
{
  "mcpServers": {
    "grizzly-sms": {
      "command": "node",
      "args": ["/absolute/path/to/grizzly-sms-mcp/dist/index.js"],
      "env": {
        "GRIZZLY_SMS_API_KEY": "your_api_key",
        "GRIZZLY_SMS_BASE_URL": "https://api.grizzlysms.com"
      }
    }
  }
}
```

#### OpenClaw (mcpServers)

Location: `~/.openclaw/openclaw.json` (macOS/Linux) | `%APPDATA%\.openclaw\openclaw.json` (Windows)

```json
{
  "agents": {
    "list": [{
      "id": "main",
      "mcpServers": {
        "grizzly-sms": {
          "command": "node",
          "args": ["/absolute/path/to/grizzly-sms-mcp/dist/index.js"],
          "env": {
            "GRIZZLY_SMS_API_KEY": "your_api_key",
            "GRIZZLY_SMS_BASE_URL": "https://api.grizzlysms.com"
          }
        }
      }
    }
  }
}
```

Use absolute paths. Restart after changes: `openclaw gateway restart`

---

### Configuration: OpenClaw Skill (skills-only, no mcpServers)

1. Add skill path to `openclaw.json`:

```json
{
  "skills": {
    "load": {
      "extraDirs": ["/absolute/path/to/grizzly-sms-mcp"]
    },
    "entries": {
      "grizzly_sms": {
        "enabled": true
      }
    }
  }
}
```

2. Enable **exec** and optionally **browser** tools for the agent
3. Restart: `npx openclaw gateway restart`

Full setup (exec approvals, browser tool, API key in dialog) — see [CONFIG.md](CONFIG.md).

---

### MCP Tools Reference

| Tool | Parameters | Description |
|------|------------|-------------|
| `request_number` | service (required), country (optional), maxPrice, providerIds, exceptProviderIds | Rent a virtual number |
| `get_status` | activationId (required) | Get activation status and SMS code |
| `set_status` | activationId, status (6=complete, 8=cancel) | Change activation status |
| `get_balance` | — | Check balance |
| `get_wallet` | — | Get USDT TRC-20 wallet address for top-up |
| `get_countries` | — | List countries |
| `get_services` | — | List services |
| `get_prices` | service, country (optional) | Get prices |

### Common Service Codes

| Code | Service |
|------|---------|
| tg | Telegram |
| wa | WhatsApp |
| ig | Instagram |
| fb | Facebook |
| go | Google |
| ub | Uber |

### Common Country IDs

| ID | Country |
|----|---------|
| 73 | Brazil |
| 1 | Ukraine |
| 16 | England |
| 187 | USA |
| 22 | India |

---

### Project Structure

```
grizzly-sms-mcp/
├── SKILL.md           # OpenClaw skill instructions
├── CONFIG.md          # OpenClaw skill config guide
├── clawhub.json       # ClawHub metadata
├── scripts/
│   └── grizzly-cli.mjs # CLI for OpenClaw exec
├── src/               # MCP server (TypeScript)
│   ├── index.ts
│   └── grizzly-sms-client.ts
├── docs/
├── package.json
└── README.md
```

---

### Development

```bash
npm run dev      # Development mode
npm run build    # Build MCP server
npm start        # Run MCP server
npm test         # Run tests
npm run test:api # Test API methods
```

---

### Troubleshooting

- **GRIZZLY_SMS_API_KEY required** — Set in `.env`, config, or provide in chat (Skill mode)
- **BAD_KEY** — Verify API key at [grizzlysms.com](https://grizzlysms.com/)
- **NO_BALANCE** — Top up at [grizzlysms.com](https://grizzlysms.com/) (USDT TRC-20 supported)
- **exec not permitted** — Configure exec approvals; see [CONFIG.md](CONFIG.md)

---

### Support

- API docs: [grizzlysms.com/docs](https://grizzlysms.com/docs)
- Website: [grizzlysms.com](https://grizzlysms.com/)
- Issues: [GitHub Issues](https://github.com/GrizzlySMS-Git/grizzly-sms-mcp/issues)

---

### License

MIT — see [LICENSE](LICENSE)

---

<a name="russian"></a>
## Русский

MCP (Model Context Protocol) сервер и **OpenClaw Skill** для интеграции с [Grizzly SMS](https://grizzlysms.com/) — платформой SMS верификации и виртуальных номеров. Совместимо с Cursor, Claude Desktop, OpenClaw (режимы MCP и Skill).

### Что предоставляет проект

| Режим | Описание | Когда использовать |
|-------|----------|--------------------|
| **MCP Server** | MCP‑сервер с инструментами Grizzly API | Cursor, Claude Desktop, OpenClaw с mcpServers |
| **OpenClaw Skill** | Skill на exec + CLI‑скрипт | OpenClaw только со skills (без mcpServers) |

### Возможности

#### MCP Server

- **Номера:** `request_number`, `get_status`, `set_status`
- **Аккаунт:** `get_balance`
- **Справочники:** `get_countries`, `get_services`, `get_prices`

#### OpenClaw Skill

- **API‑ключ в диалоге:** бот запрашивает ключ в чате
- **Баланс и пополнение:** показывает баланс и криптокошелёк (USDT TRC-20) для пополнения
- **Жизненный цикл номера:** аренда номера, ожидание SMS, завершение или отмена активации
- **Полный workflow регистрации:** определение сервиса/страны → аренда номера → браузер → заполнение форм → ввод SMS‑кода
- **Форматированный вывод:** номер, ID активации и SMS в удобном для копирования виде (моноширинный текст в Telegram)

### Пайплайн OpenClaw Skill

1. **API‑ключ** — бот спрашивает: *Выдайте API ключ Grizzly SMS*
2. **Баланс и пополнение** — бот показывает баланс и адрес кошелька USDT TRC-20
3. **Номер** — бот арендует номер для указанного сервиса и страны
4. **Статус** — бот может отменить активацию или запросить новый SMS
5. **SMS** — бот опрашивает статус и возвращает код
6. **Завершение** — бот помечает активацию выполненной после использования кода

Подробная настройка — в [CONFIG.md](CONFIG.md).

### Требования

- Node.js 18+
- API‑ключ Grizzly SMS — регистрация на [grizzlysms.com](https://grizzlysms.com/), ключ в [разделе API](https://grizzlysms.com/docs)

---

### Установка

```bash
git clone https://github.com/GrizzlySMS-Git/grizzly-sms-mcp.git
cd grizzly-sms-mcp
npm install
npm run build
```

---

### Конфигурация: MCP Server (Cursor, Claude Desktop, OpenClaw mcpServers)

#### Cursor

Путь: `%APPDATA%\Cursor\User\globalStorage\mcp.json` (Windows) | `~/Library/Application Support/Cursor/User/globalStorage/mcp.json` (macOS) | `~/.config/Cursor/User/globalStorage/mcp.json` (Linux)

```json
{
  "mcpServers": {
    "grizzly-sms": {
      "command": "node",
      "args": ["/абсолютный/путь/к/grizzly-sms-mcp/dist/index.js"],
      "env": {
        "GRIZZLY_SMS_API_KEY": "ваш_api_ключ",
        "GRIZZLY_SMS_BASE_URL": "https://api.grizzlysms.com"
      }
    }
  }
}
```

#### OpenClaw (mcpServers)

Путь: `~/.openclaw/openclaw.json` (macOS/Linux) | `%APPDATA%\.openclaw\openclaw.json` (Windows)

```json
{
  "agents": {
    "list": [{
      "id": "main",
      "mcpServers": {
        "grizzly-sms": {
          "command": "node",
          "args": ["/абсолютный/путь/к/grizzly-sms-mcp/dist/index.js"],
          "env": {
            "GRIZZLY_SMS_API_KEY": "ваш_api_ключ",
            "GRIZZLY_SMS_BASE_URL": "https://api.grizzlysms.com"
          }
        }
      }
    }
  }
}
```

Используйте абсолютные пути. После изменений: `openclaw gateway restart`

---

### Конфигурация: OpenClaw Skill (только skills, без mcpServers)

1. Добавьте путь к skill в `openclaw.json`:

```json
{
  "skills": {
    "load": {
      "extraDirs": ["/абсолютный/путь/к/grizzly-sms-mcp"]
    },
    "entries": {
      "grizzly_sms": {
        "enabled": true
      }
    }
  }
}
```

2. Включите инструменты **exec** и по необходимости **browser**
3. Перезапуск: `npx openclaw gateway restart`

Полная настройка (exec approvals, browser, API key в диалоге) — в [CONFIG.md](CONFIG.md).

---

### Справка по MCP‑инструментам

| Инструмент | Параметры | Описание |
|------------|-----------|----------|
| `request_number` | service (обяз.), country (опц.), maxPrice, providerIds, exceptProviderIds | Аренда виртуального номера |
| `get_status` | activationId (обяз.) | Статус активации и SMS‑код |
| `set_status` | activationId, status (6=завершить, 8=отменить) | Изменение статуса |
| `get_balance` | — | Баланс |
| `get_wallet` | — | Адрес кошелька USDT TRC-20 для пополнения |
| `get_countries` | — | Список стран |
| `get_services` | — | Список сервисов |
| `get_prices` | service, country (опц.) | Цены |

### Коды сервисов

| Код | Сервис |
|-----|--------|
| tg | Telegram |
| wa | WhatsApp |
| ig | Instagram |
| fb | Facebook |
| go | Google |
| ub | Uber |

### ID стран

| ID | Страна |
|----|--------|
| 73 | Бразилия |
| 1 | Украина |
| 16 | Англия |
| 187 | США |
| 22 | Индия |

---

### Решение проблем

- **GRIZZLY_SMS_API_KEY required** — Задайте в `.env`, конфиге или передайте в чате (Skill)
- **BAD_KEY** — Проверьте ключ на [grizzlysms.com](https://grizzlysms.com/)
- **NO_BALANCE** — Пополните на [grizzlysms.com](https://grizzlysms.com/) (USDT TRC-20)
- **exec not permitted** — Настройте exec approvals в [CONFIG.md](CONFIG.md)

---

### Поддержка

- API: [grizzlysms.com/docs](https://grizzlysms.com/docs)
- Сайт: [grizzlysms.com](https://grizzlysms.com/)
- Issues: [GitHub Issues](https://github.com/GrizzlySMS-Git/grizzly-sms-mcp/issues)

---

### Лицензия

MIT — см. [LICENSE](LICENSE)


path: claude-desktop-config.json
content: {
  "mcpServers": {
    "grizzly-sms": {
      "command": "node",
      "args": ["C:/path/to/mcp-grizzly-sms/dist/index.js"],
      "env": {
        "GRIZZLY_SMS_API_KEY": "YOUR_API_KEY_HERE",
        "GRIZZLY_SMS_BASE_URL": "https://api.grizzlysms.com"
      }
    }
  }
}

path: clawhub.json
content: {
  "name": "Grizzly SMS",
  "tagline": "SMS verification & virtual numbers — MCP server + OpenClaw Skill",
  "description": "MCP server and OpenClaw Skill for Grizzly SMS API. Request virtual numbers for Telegram, WhatsApp, Instagram, Uber and 500+ services. Check SMS codes, manage activations, get balance, crypto wallet for top-up (USDT TRC-20). OpenClaw Skill: API key in dialog, full registration workflow, formatted output. Compatible with Cursor, Claude Desktop, OpenClaw.",
  "category": "productivity",
  "tags": ["sms", "verification", "mcp", "openclaw", "skill", "grizzly-sms", "otp", "phone-numbers", "virtual-numbers"],
  "version": "1.0.0",
  "license": "MIT",
  "pricing": "free",
  "homepage": "https://github.com/GrizzlySMS-Git/grizzly-sms-mcp",
  "support_url": "https://github.com/GrizzlySMS-Git/grizzly-sms-mcp/issues",
  "support": "https://grizzlysms.com/docs"
}


path: docker-compose.yml
content: services:
  grizzly-mcp:
    build: .
    ports:
      - "3000:3000"
    environment:
      - GRIZZLY_SMS_API_KEY=${GRIZZLY_SMS_API_KEY}
      - GRIZZLY_SMS_BASE_URL=${GRIZZLY_SMS_BASE_URL:-https://api.grizzlysms.com}
    restart: unless-stopped


path: docs/GRIZZLY-SMS.postman_collection.json
content: {
	"info": {
		"_postman_id": "ed51dbd4-c588-47ac-a61c-6ba27b776e9f",
		"name": "GRIZZLY-SMS",
		"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
		"_exporter_id": "15603002"
	},
	"item": [
		{
			"name": "available quantity",
			"request": {
				"method": "GET",
				"header": [],
				"url": {
					"raw": "https://api.grizzlysms.com/stubs/handler_api.php?[REDACTED_SECRET]",
					"protocol": "https",
					"host": [
						"api",
						"grizzlysms",
						"com"
					],
					"path": [
						"stubs",
						"handler_api.php"
					],
					"query": [
						{
							"key": "api_key",
							"value": "{{GRIZZLY_SMS_API_KEY}}"
						},
						{
							"key": "action",
							"value": "getNumbersStatus"
						},
						{
							"key": "country",
							"value": "$country",
							"disabled": true
						},
						{
							"key": "operator",
							"value": "mts",
							"disabled": true
						}
					]
				}
			},
			"response": [
				{
					"name": "New Request",
					"originalRequest": {
						"method": "GET",
						"header": [],
						"url": {
							"raw": "https://api.grizzlysms.com/stubs/handler_api.php?[REDACTED_SECRET]",
							"protocol": "https",
							"host": [
								"api",
								"grizzlysms",
								"com"
							],
							"path": [
								"stubs",
								"handler_api.php"
							],
							"query": [
								{
									"key": "api_key",
									"value": "{{GRIZZLY_SMS_API_KEY}}"
								},
								{
									"key": "action",
									"value": "getNumbersStatus"
								},
								{
									"key": "country",
									"value": "$country",
									"disabled": true
								},
								{
									"key": "operator",
									"value": "mts",
									"disabled": true
								}
							]
						}
					},
					"status": "OK",
					"code": 200,
					"_postman_previewlanguage": "",
					"header": [
						{
							"key": "Date",
							"value": "Thu, 07 Aug 2025 20:26:51 GMT"
						},
						{
							"key": "Content-Type",
							"value": "text/html; charset=UTF-8"
						},
						{
							"key": "Transfer-Encoding",
							"value": "chunked"
						},
						{
							"key": "Connection",
							"value": "keep-alive"
						},
						{
							"key": "Content-Encoding",
							"value": "gzip"
						},
						{
							"key": "x-frame-options",
							"value": "DENY always"
						},
						{
							"key": "content-security-policy",
							"value": "frame-ancestors 'self'"
						},
						{
							"key": "strict-transport-security",
							"value": "max-age=15724800; includeSubDomains"
						},
						{
							"key": "cf-cache-status",
							"value": "DYNAMIC"
						},
						{
							"key": "Server",
							"value": "cloudflare"
						},
						{
							"key": "CF-RAY",
							"value": "96b982e75cd5542c-TLL"
						}
					],
					"cookie": [],
					"body": "{\n  \"aww\": \"4758\",\n  \"awv\": \"6950\",\n  \"baa\": \"4823\",\n  \"bii\": \"4787\",\n  \"agj\": \"5571\",\n  \"aor\": \"3699\",\n  \"agl\": \"4793\",\n  \"ya\": \"5184\",\n  \"aow\": \"4837\",\n  \"bah\": \"4072\",\n  \"pz\": \"3353\",\n  \"hw\": \"957\",\n  \"baq\": \"4793\",\n  \"apd\": \"4794\",\n  \"qf\": \"4837\",\n  \"yq\": \"4857\",\n  \"yr\": \"4826\",\n  \"ahb\": \"4989\",\n  \"bay\": \"4668\",\n  \"ie\": \"4903\",\n  \"ig\": \"2\",\n  \"yw\": \"3545\",\n  \"qq\": \"4030\",\n  \"ij\": \"2989\",\n  \"im\": \"5053\",\n  \"qv\": \"4830\",\n  \"ip\": \"4825\",\n  \"za\": \"4993\",\n  \"qx\": \"3733\",\n  \"bjr\": \"4008\",\n  \"am\": \"4232\",\n  \"bju\": \"4008\",\n  \"bbl\": \"4857\",\n  \"zh\": \"4518\",\n  \"aq\": \"4552\",\n  \"ahx\": \"4826\",\n  \"zk\": \"4670\",\n  \"bsd\": \"4793\",\n  \"re\": \"2549\",\n  \"bbu\": \"4857\",\n  \"zo\": \"4944\",\n  \"aqd\": \"4541\",\n  \"zz\": \"4858\",\n  \"rr\": \"4702\",\n  \"bss\": \"3836\",\n  \"jn\": \"4794\",\n  \"aqt\": \"3727\",\n  \"bsx\": \"4793\",\n  \"ry\": \"4858\",\n  \"jq\": \"2242\",\n  \"bsz\": \"4007\",\n  \"bl\": \"5129\",\n  \"bks\": \"4008\",\n  \"bo\": \"2830\",\n  \"ait\": \"4857\",\n  \"aiv\": \"3669\",\n  \"bkz\": \"4792\",\n  \"bw\": \"3744\",\n  \"bz\": \"3404\",\n  \"kc\": \"4668\",\n  \"ajd\": \"4354\",\n  \"ble\": \"4008\",\n  \"sn\": \"5062\",\n  \"kf\": \"4826\",\n  \"bts\": \"4008\",\n  \"abd\": \"4833\",\n  \"abc\": \"4825\",\n  \"abe\": \"5124\",\n  \"btv\": \"4008\",\n  \"kt\": \"5075\",\n  \"blr\": \"5048\",\n  \"btz\": \"4793\",\n  \"cn\": \"4226\",\n  \"abk\": \"4856\",\n  \"abn\": \"3723\",\n  \"tc\": \"4756\",\n  \"blx\": \"3976\",\n  \"abq\": \"4793\",\n  \"tg\": \"498\",\n  \"ti\": \"3979\",\n  \"lc\": \"4678\",\n  \"tn\": \"4155\",\n  \"lf\": \"3307\",\n  \"akd\": \"4794\",\n  \"li\": \"4299\",\n  \"ts\": \"2286\",\n  \"df\": \"4855\",\n  \"tw\": \"4250\",\n  \"tx\": \"4567\",\n  \"dh\": \"3885\",\n  \"beh\": \"4040\",\n  \"asv\": \"4825\",\n  \"do\": \"4887\",\n  \"acl\": \"4825\",\n  \"dp\": \"4680\",\n  \"ua\": \"4034\",\n  \"ub\": \"4087\",\n  \"dr\": \"4420\",\n  \"lz\": \"4907\",\n  \"ds\": \"4434\",\n  \"bet\": \"3906\",\n  \"bex\": \"4793\",\n  \"mb\": \"0\",\n  \"uk\": \"4442\",\n  \"ul\": \"4924\",\n  \"acx\": \"4825\",\n  \"me\": \"5008\",\n  \"acz\": \"4792\",\n  \"mj\": \"4474\",\n  \"ada\": \"4939\",\n  \"mm\": \"3154\",\n  \"mo\": \"5035\",\n  \"alo\": \"4836\",\n  \"bfh\": \"4038\",\n  \"mt\": \"4324\",\n  \"et\": \"5100\",\n  \"bfr\": \"4857\",\n  \"adt\": \"4607\",\n  \"ew\": \"5111\",\n  \"vi\": \"4522\",\n  \"vk\": \"4312\",\n  \"vm\": \"4652\",\n  \"nf\": \"5022\",\n  \"vp\": \"4853\",\n  \"boh\": \"4793\",\n  \"fb\": \"2852\",\n  \"bgb\": \"4040\",\n  \"aup\": \"6098\",\n  \"fd\": \"4348\",\n  \"bwv\": \"3228\",\n  \"vz\": \"4193\",\n  \"bgj\": \"4857\",\n  \"bor\": \"4007\",\n  \"nv\": \"4350\",\n  \"wa\": \"828\",\n  \"wb\": \"786\",\n  \"nz\": \"4740\",\n  \"fs\": \"4907\",\n  \"fu\": \"5072\",\n  \"fx\": \"4958\",\n  \"avj\": \"4825\",\n  \"oi\": \"2202\",\n  \"ok\": \"2773\",\n  \"ws\": \"0\",\n  \"bhg\": \"4760\",\n  \"wx\": \"3796\",\n  \"bpn\": \"4008\",\n  \"bpp\": \"4793\",\n  \"anq\": \"4793\",\n  \"ot\": \"3819\",\n  \"go\": \"0\",\n  \"gp\": \"4087\",\n  \"ox\": \"4908\",\n  \"bhq\": \"4793\",\n  \"bpy\": \"4793\",\n  \"awb\": \"4857\",\n  \"bpz\": \"4008\",\n  \"gx\": \"4583\",\n  \"bhy\": \"4825\",\n  \"xk\": \"4691\",\n  \"afy\": \"4826\",\n  \"bqc\": \"4008\",\n  \"xo\": \"4856\",\n  \"xr\": \"4978\",\n  \"aoi\": \"3695\",\n  \"pm\": \"2238\",\n  \"xv\": \"4875\",\n  \"agd\": \"4786\",\n  \"aol\": \"2952\"\n}"
				}
			]
		},
		{
			"name": "balance",
			"request": {
				"method": "GET",
				"header": [],
				"url": {
					"raw": "https://api.grizzlysms.com/stubs/handler_api.php?[REDACTED_SECRET]",
					"protocol": "https",
					"host": [
						"api",
						"grizzlysms",
						"com"
					],
					"path": [
						"stubs",
						"handler_api.php"
					],
					"query": [
						{
							"key": "api_key",
							"value": "{{GRIZZLY_SMS_API_KEY}}"
						},
						{
							"key": "action",
							"value": "getBalance"
						}
					]
				}
			},
			"response": [
				{
					"name": "New Request",
					"originalRequest": {
						"method": "GET",
						"header": [],
						"url": {
							"raw": "https://api.grizzlysms.com/stubs/handler_api.php?[REDACTED_SECRET]",
							"protocol": "https",
							"host": [
								"api",
								"grizzlysms",
								"com"
							],
							"path": [
								"stubs",
								"handler_api.php"
							],
							"query": [
								{
									"key": "api_key",
									"value": "{{GRIZZLY_SMS_API_KEY}}"
								},
								{
									"key": "action",
									"value": "getBalance"
								}
							]
						}
					},
					"status": "OK",
					"code": 200,
					"_postman_previewlanguage": "",
					"header": [
						{
							"key": "Date",
							"value": "Thu, 07 Aug 2025 20:29:50 GMT"
						},
						{
							"key": "Content-Type",
							"value": "text/html; charset=UTF-8"
						},
						{
							"key": "Transfer-Encoding",
							"value": "chunked"
						},
						{
							"key": "Connection",
							"value": "keep-alive"
						},
						{
							"key": "Content-Encoding",
							"value": "gzip"
						},
						{
							"key": "x-frame-options",
							"value": "DENY always"
						},
						{
							"key": "content-security-policy",
							"value": "frame-ancestors 'self'"
						},
						{
							"key": "strict-transport-security",
							"value": "max-age=15724800; includeSubDomains"
						},
						{
							"key": "cf-cache-status",
							"value": "DYNAMIC"
						},
						{
							"key": "Server",
							"value": "cloudflare"
						},
						{
							"key": "CF-RAY",
							"value": "96b98743992f32d6-TLL"
						}
					],
					"cookie": [],
					"body": "ACCESS_BALANCE:17.154"
				}
			]
		},
		{
			"name": "Request number",
			"request": {
				"method": "GET",
				"header": [],
				"url": {
					"raw": "https://api.grizzlysms.com/stubs/handler_api.php?[REDACTED_SECRET]",
					"protocol": "https",
					"host": [
						"api",
						"grizzlysms",
						"com"
					],
					"path": [
						"stubs",
						"handler_api.php"
					],
					"query": [
						{
							"key": "api_key",
							"value": "{{GRIZZLY_SMS_API_KEY}}"
						},
						{
							"key": "action",
							"value": "getNumber"
						},
						{
							"key": "service",
							"value": "go"
						},
						{
							"key": "forward",
							"value": "0"
						},
						{
							"key": "operator",
							"value": "$operator",
							"disabled": true
						},
						{
							"key": "ref",
							"value": "$ref",
							"disabled": true
						},
						{
							"key": "country",
							"value": "33",
							"description": "6,33 for google"
						},
						{
							"key": "phoneException",
							"value": "$phoneException",
							"disabled": true
						},
						{
							"key": "maxPrice",
							"value": "maxPrice"
						},
						{
							"key": "useCashBack",
							"value": "$useCashBack",
							"disabled": true
						},
						{
							"key": "activationType",
							"value": "0"
						},
						{
							"key": "language",
							"value": ""
						},
						{
							"key": "userId",
							"value": "$userId",
							"disabled": true
						}
					]
				}
			},
			"response": [
				{
					"name": "New Request",
					"originalRequest": {
						"method": "GET",
						"header": [],
						"url": {
							"raw": "https://api.grizzlysms.com/stubs/handler_api.php?[REDACTED_SECRET]",
							"protocol": "https",
							"host": [
								"api",
								"grizzlysms",
								"com"
							],
							"path": [
								"stubs",
								"handler_api.php"
							],
							"query": [
								{
									"key": "api_key",
									"value": "{{GRIZZLY_SMS_API_KEY}}"
								},
								{
									"key": "action",
									"value": "getNumber"
								},
								{
									"key": "service",
									"value": "go"
								},
								{
									"key": "forward",
									"value": "0"
								},
								{
									"key": "operator",
									"value": "$operator",
									"disabled": true
								},
								{
									"key": "ref",
									"value": "$ref",
									"disabled": true
								},
								{
									"key": "country",
									"value": "6"
								},
								{
									"key": "phoneException",
									"value": "$phoneException",
									"disabled": true
								},
								{
									"key": "maxPrice",
									"value": "maxPrice"
								},
								{
									"key": "useCashBack",
									"value": "$useCashBack",
									"disabled": true
								},
								{
									"key": "activationType",
									"value": "0"
								},
								{
									"key": "language",
									"value": ""
								},
								{
									"key": "userId",
									"value": "$userId",
									"disabled": true
								}
							]
						}
					},
					"status": "OK",
					"code": 200,
					"_postman_previewlanguage": "",
					"header": [
						{
							"key": "Date",
							"value": "Thu, 07 Aug 2025 20:39:06 GMT"
						},
						{
							"key": "Content-Type",
							"value": "text/html; charset=UTF-8"
						},
						{
							"key": "Transfer-Encoding",
							"value": "chunked"
						},
						{
							"key": "Connection",
							"value": "keep-alive"
						},
						{
							"key": "Content-Encoding",
							"value": "gzip"
						},
						{
							"key": "x-frame-options",
							"value": "DENY always"
						},
						{
							"key": "content-security-policy",
							"value": "frame-ancestors 'self'"
						},
						{
							"key": "strict-transport-security",
							"value": "max-age=15724800; includeSubDomains"
						},
						{
							"key": "cf-cache-status",
							"value": "DYNAMIC"
						},
						{
							"key": "Server",
							"value": "cloudflare"
						},
						{
							"key": "CF-RAY",
							"value": "96b994d82804543a-TLL"
						}
					],
					"cookie": [],
					"body": "ACCESS_NUMBER:3936040355:6285872391152"
				}
			]
		},
		{
			"name": "Operators",
			"request": {
				"method": "GET",
				"header": [],
				"url": {
					"raw": "https://api.grizzlysms.com/stubs/handler_api.php?[REDACTED_SECRET]",
					"protocol": "https",
					"host": [
						"api",
						"grizzlysms",
						"com"
					],
					"path": [
						"stubs",
						"handler_api.php"
					],
					"query": [
						{
							"key": "api_key",
							"value": "{{GRIZZLY_SMS_API_KEY}}"
						},
						{
							"key": "action",
							"value": "getOperators"
						},
						{
							"key": "country",
							"value": "$country",
							"disabled": true
						}
					]
				}
			},
			"response": [
				{
					"name": "New Request",
					"originalRequest": {
						"method": "GET",
						"header": [],
						"url": {
							"raw": "https://api.grizzlysms.com/stubs/handler_api.php?[REDACTED_SECRET]",
							"protocol": "https",
							"host": [
								"api",
								"grizzlysms",
								"com"
							],
							"path": [
								"stubs",
								"handler_api.php"
							],
							"query": [
								{
									"key": "api_key",
									"value": "{{GRIZZLY_SMS_API_KEY}}"
								},
								{
									"key": "action",
									"value": "getOperators"
								},
								{
									"key": "country",
									"value": "$country",
									"disabled": true
								}
							]
						}
					},
					"status": "OK",
					"code": 200,
					"_postman_previewlanguage": "json",
					"header": [
						{
							"key": "Date",
							"value": "Thu, 07 Aug 2025 20:35:38 GMT"
						},
						{
							"key": "Content-Type",
							"value": "application/json",
							"name": "Content-Type",
							"description": "",
							"type": "text"
						},
						{
							"key": "Transfer-Encoding",
							"value": "chunked"
						},
						{
							"key": "Connection",
							"value": "keep-alive"
						},
						{
							"key": "Content-Encoding",
							"value": "gzip"
						},
						{
							"key": "x-frame-options",
							"value": "DENY always"
						},
						{
							"key": "content-security-policy",
							"value": "frame-ancestors 'self'"
						},
						{
							"key": "strict-transport-security",
							"value": "max-age=15724800; includeSubDomains"
						},
						{
							"key": "cf-cache-status",
							"value": "DYNAMIC"
						},
						{
							"key": "Server",
							"value": "cloudflare"
						},
						{
							"key": "CF-RAY",
							"value": "96b98fc7ddaa5439-TLL"
						}
					],
					"cookie": [
						{
							"expires": "Invalid Date"
						}
					],
					"body": "{\n    \"status\": \"success\",\n    \"countryOperators\": {\n        \"0\": [\n            \"beeline\",\n            \"megafon\",\n            \"mts\",\n            \"sber\",\n            \"tele2\",\n            \"rostelecom\",\n            \"aiva\",\n            \"yota\",\n            \"simsim\",\n            \"ttk\",\n            \"center2m\",\n            \"mtt\",\n            \"motiv\",\n            \"tinkoff\",\n            \"ezmobile\",\n            \"winmobile\",\n            \"lycamobile\",\n            \"matrix\",\n            \"danycom\",\n            \"mtt_virtual\",\n            \"gazprombank_mobile\",\n            \"vtb_mobile\",\n            \"mcn\",\n            \"aquafon\",\n            \"mir_telecom\",\n            \"a_mobile\"\n        ],\n        \"1\": [\n            \"life\",\n            \"mts\",\n            \"kyivstar\",\n            \"utel\",\n            \"vodafone\",\n            \"intertelecom\",\n            \"lycamobile\",\n            \"3mob\"\n        ],\n        \"2\": [\n            \"tele2\",\n            \"beeline\",\n            \"activ\",\n            \"altel\",\n            \"kcell\",\n            \"forte_mobile\"\n        ],\n        \"3\": [\n            \"unicom\",\n            \"chinamobile\",\n            \"china_unicom\"\n        ],\n        \"4\": [\n            \"tm\",\n            \"globe_telecom\",\n            \"smart\",\n            \"dito\"\n        ],\n        \"5\": [\n            \"telenor\",\n            \"ooredoo\",\n            \"mytel\",\n            \"mpt\"\n        ],\n        \"6\": [\n            \"indosat\",\n            \"telkomsel\",\n            \"axis\",\n            \"three\",\n            \"smartfren\",\n            \"byu\"\n        ],\n        \"7\": [\n            \"u_mobile\",\n            \"hotlink\",\n            \"digi\",\n            \"celcom\",\n            \"yoodo\",\n            \"xox\",\n            \"tune_talk\",\n            \"yes\",\n            \"unifi\"\n        ],\n        \"8\": [\n            \"econet\",\n            \"orange\",\n            \"safaricom\",\n            \"airtel\",\n            \"telkom\"\n        ],\n        \"9\": [\n            \"tigo\",\n            \"vodacom\",\n            \"airtel\",\n            \"ttcl\",\n            \"halotel\"\n        ],\n        \"10\": [\n            \"viettel\",\n            \"vinaphone\",\n            \"mobifone\",\n            \"vietnamobile\",\n            \"itelecom\",\n            \"wintel\"\n        ],\n        \"11\": [\n            \"beeline\",\n            \"o!\",\n            \"megacom\"\n        ],\n        \"13\": [\n            \"orange\",\n            \"pelephone\",\n            \"019mobile\",\n            \"golan_telecom\",\n            \"home_cellular\",\n            \"hot_mobile\",\n            \"rami_levy\",\n            \"jawwal\",\n            \"ooredoo\"\n        ],\n        \"14\": [\n            \"unicom\",\n            \"three\",\n            \"chinamobile\",\n            \"csl_mobile\",\n            \"imc\",\n            \"smartone\",\n            \"lucky_sim\"\n        ],\n        \"15\": [\n            \"orange\",\n            \"play\",\n            \"klucz\",\n            \"tmobile\",\n            \"plus\",\n            \"lycamobile\",\n            \"aero2\",\n            \"netia\",\n            \"e_telko\",\n            \"nju\",\n            \"a2_mobile\",\n            \"heyah\",\n            \"red_bull_mobile\",\n            \"plush\",\n            \"virgin\"\n        ],\n        \"16\": [\n            \"ezmobile\",\n            \"o2\",\n            \"ee\",\n            \"lebara\",\n            \"talk_telecom\",\n            \"cmlink\",\n            \"tmobile\",\n            \"lycamobile\",\n            \"three\",\n            \"vodafone\",\n            \"vectone\",\n            \"orange\",\n            \"teleena\",\n            \"giffgaff\",\n            \"tata_communications\",\n            \"airtel\",\n            \"tesco\"\n        ],\n        \"17\": [\n            \"orange\"\n        ],\n        \"18\": [\n            \"vodacom\",\n            \"orange\",\n            \"africel\",\n            \"airtel\"\n        ],\n        \"19\": [\n            \"glomobile\",\n            \"etisalat\",\n            \"mtn\",\n            \"airtel\",\n            \"mobile_9\"\n        ],\n        \"20\": [\n            \"3macao\"\n        ],\n        \"21\": [\n            \"orange\",\n            \"etisalat\",\n            \"vodafone\"\n        ],\n        \"22\": [\n            \"airtel\",\n            \"vodafone\"\n        ],\n        \"23\": [\n            \"lycamobile\",\n            \"48mobile\",\n            \"tesco\",\n            \"cablenet\",\n            \"vodafone\",\n            \"eir\"\n        ],\n        \"24\": [\n            \"metfone\",\n            \"smart\",\n            \"cellcard\"\n        ],\n        \"25\": [\n            \"unitel\",\n            \"telekom\",\n            \"tplus\",\n            \"etl\"\n        ],\n        \"26\": [\n            \"natcom\"\n        ],\n        \"27\": [\n            \"mtn\",\n            \"orange\",\n            \"moov\"\n        ],\n        \"28\": [\n            \"comium\",\n            \"qcell\",\n            \"gamcel\",\n            \"africel\"\n        ],\n        \"29\": [\n            \"mts\",\n            \"mobtel\",\n            \"vip\",\n            \"a1\",\n            \"globaltel\",\n            \"yettel\"\n        ],\n        \"30\": [\n            \"sabafon\",\n            \"mtn\",\n            \"yemen_mobile\"\n        ],\n        \"31\": [\n            \"vodacom\",\n            \"telkom\",\n            \"mtn\",\n            \"lycamobile\",\n            \"cell_c\"\n        ],\n        \"32\": [\n            \"orange\",\n            \"telekom\",\n            \"vodafone\",\n            \"digi\",\n            \"lycamobile\",\n            \"my_avon\",\n            \"runex_telecom\",\n            \"benefito_mobile\"\n        ],\n        \"33\": [\n            \"claro\",\n            \"movistar\",\n            \"tigo\",\n            \"virgin\",\n            \"wom\",\n            \"exito\",\n            \"etb\",\n            \"links_field\"\n        ],\n        \"34\": [\n            \"super\",\n            \"elisa\",\n            \"tele2\",\n            \"goodline\",\n            \"topconnect\"\n        ],\n        \"35\": [\n            \"azerfon\",\n            \"humans\",\n            \"azercell\"\n        ],\n        \"36\": [\n            \"cellular\",\n            \"lucky\",\n            \"rogers\",\n            \"telus\",\n            \"fido\",\n            \"chatrmobile\"\n        ],\n        \"37\": [\n            \"inwi\",\n            \"itissalat\",\n            \"orange\",\n            \"iam\"\n        ],\n        \"38\": [\n            \"airtel\",\n            \"mtn\",\n            \"millicom\",\n            \"vodafone\",\n            \"glomobile\"\n        ],\n        \"39\": [\n            \"movistar\",\n            \"claro\",\n            \"personal\",\n            \"tuenti\"\n        ],\n        \"40\": [\n            \"ucell\",\n            \"mts\",\n            \"uzmobile\",\n            \"mobiuz\",\n            \"beeline\",\n            \"humans\"\n        ],\n        \"41\": [\n            \"orange\",\n            \"mtn\",\n            \"nexttel\"\n        ],\n        \"42\": [\n            \"airtel\",\n            \"tigo\",\n            \"salam\"\n        ],\n        \"43\": [\n            \"vodafone\",\n            \"ortel_mobile\",\n            \"lycamobile\",\n            \"o2\",\n            \"lebara\",\n            \"fonic\",\n            \"telekom\"\n        ],\n        \"44\": [\n            \"tele2\",\n            \"telia\",\n            \"bite\"\n        ],\n        \"45\": [\n            \"tmobile\",\n            \"tele2\",\n            \"a1\",\n            \"tomato\",\n            \"telemach\",\n            \"bonbon\"\n        ],\n        \"46\": [\n            \"tele2\",\n            \"comviq\",\n            \"lycamobile\",\n            \"telenor\",\n            \"vectone\",\n            \"telia\",\n            \"vodafone\",\n            \"three\",\n            \"netmore\"\n        ],\n        \"47\": [\n            \"korek\",\n            \"asiacell\",\n            \"zain\"\n        ],\n        \"48\": [\n            \"lebara\",\n            \"lycamobile\",\n            \"l_mobi\",\n            \"vodafone\",\n            \"tmobile\",\n            \"kpn\",\n            \"odido\"\n        ],\n        \"49\": [\n            \"tele2\",\n            \"lmt\",\n            \"bite\",\n            \"xomobile\"\n        ],\n        \"50\": [\n            \"orange\",\n            \"tmobile\",\n            \"three\",\n            \"telering\",\n            \"a1\",\n            \"eety\",\n            \"hot_mobile\",\n            \"lidl\",\n            \"yesss\",\n            \"lycamobile\",\n            \"wowww\",\n            \"magenta\",\n            \"georg\"\n        ],\n        \"51\": [\n            \"mts\",\n            \"mdc\",\n            \"best\",\n            \"life\"\n        ],\n        \"52\": [\n            \"truemove\",\n            \"ais\",\n            \"dtac\",\n            \"my\",\n            \"cat_mobile\"\n        ],\n        \"53\": [\n            \"digitel\"\n        ],\n        \"54\": [\n            \"telcel\"\n        ],\n        \"55\": [\n            \"chunghwa\",\n            \"fareast\"\n        ],\n        \"56\": [\n            \"lycamobile\",\n            \"lebara\",\n            \"you_mobile\",\n            \"orange\",\n            \"movistar\",\n            \"vodafone\",\n            \"altecom\",\n            \"euskaltel\",\n            \"yoigo\",\n            \"llamaya\",\n            \"tmobile\",\n            \"cube_movil\",\n            \"masmovil\",\n            \"finetwork\"\n        ],\n        \"57\": [\n            \"aptel\",\n            \"hamrah_e_aval\",\n            \"irancell\",\n            \"rightel\",\n            \"samantel\",\n            \"azartel\",\n            \"shatel\",\n            \"taliya\",\n            \"mtn\",\n            \"tci\"\n        ],\n        \"58\": [\n            \"djezzy\",\n            \"mobilis\",\n            \"ooredoo\"\n        ],\n        \"59\": [\n            \"a1\",\n            \"telekom\",\n            \"telemach\"\n        ],\n        \"60\": [\n            \"grameenphone\",\n            \"airtel\"\n        ],\n        \"61\": [\n            \"orange\",\n            \"expresso\",\n            \"free\"\n        ],\n        \"62\": [\n            \"turk_telekom\",\n            \"turkcell\",\n            \"vodafone\"\n        ],\n        \"63\": [\n            \"tmobile\",\n            \"o2\",\n            \"vodafone\",\n            \"kaktus\"\n        ],\n        \"64\": [\n            \"airtel\",\n            \"etisalat\",\n            \"sltmobitel\",\n            \"dialog\",\n            \"hutch\"\n        ],\n        \"65\": [\n            \"movistar\"\n        ],\n        \"66\": [\n            \"telenor\",\n            \"zong\",\n            \"ufone\",\n            \"ptcl\",\n            \"jazz\",\n            \"sco\"\n        ],\n        \"67\": [\n            \"vodafone\",\n            \"2degree\",\n            \"one_nz\",\n            \"skinny\",\n            \"warehouse\",\n            \"spark\"\n        ],\n        \"68\": [\n            \"mtn\",\n            \"cellcom\",\n            \"orange\",\n            \"sotelgui\",\n            \"telecel\"\n        ],\n        \"69\": [\n            \"telecel\",\n            \"malitel\",\n            \"orange\"\n        ],\n        \"71\": [\n            \"mtn\",\n            \"safaricom\"\n        ],\n        \"72\": [\n            \"beeline\"\n        ],\n        \"73\": [\n            \"algartelecom\",\n            \"claro\",\n            \"tim\",\n            \"oi\",\n            \"vivo\",\n            \"correios_celular\",\n            \"nlt\",\n            \"arqia\",\n            \"cellular\",\n            \"links_field\",\n            \"surf\"\n        ],\n        \"74\": [\n            \"salaam\"\n        ],\n        \"75\": [\n            \"airtel\",\n            \"lycamobile\",\n            \"mtn\",\n            \"orange\",\n            \"k2_telecom\",\n            \"smile\",\n            \"smart\",\n            \"uganda_telecom\"\n        ],\n        \"76\": [\n            \"unitel\",\n            \"africel\"\n        ],\n        \"77\": [\n            \"vectone\",\n            \"epic\",\n            \"cyta\",\n            \"primetel\",\n            \"lemontel\",\n            \"cablenet\",\n            \"vodafone\"\n        ],\n        \"78\": [\n            \"lycamobile\",\n            \"sfr\",\n            \"lebara\",\n            \"vectone\",\n            \"syma_mobile\",\n            \"orange\",\n            \"bouygues\",\n            \"free\",\n            \"kena_mobile\"\n        ],\n        \"80\": [\n            \"vodacom\",\n            \"tmcel\"\n        ],\n        \"82\": [\n            \"orange\",\n            \"bandwidth\",\n            \"proximus\",\n            \"infrabel\",\n            \"base\",\n            \"nethys\",\n            \"vectone\",\n            \"lycamobile\"\n        ],\n        \"83\": [\n            \"vivacom\",\n            \"a1\",\n            \"telenor\",\n            \"yettel\"\n        ],\n        \"84\": [\n            \"yettel\",\n            \"tmobile\",\n            \"vodafone\"\n        ],\n        \"85\": [\n            \"orange\",\n            \"moldcell\",\n            \"unite\",\n            \"idc\"\n        ],\n        \"86\": [\n            \"lycamobile\",\n            \"kena_mobile\",\n            \"wind\",\n            \"vodafone\",\n            \"tim\",\n            \"ho\",\n            \"optima\",\n            \"digi\",\n            \"syma_mobile\",\n            \"nt_mobile\",\n            \"iliad\",\n            \"plintron\"\n        ],\n        \"87\": [\n            \"claro\",\n            \"personal\"\n        ],\n        \"88\": [\n            \"claro\"\n        ],\n        \"89\": [\n            \"ooredoo\",\n            \"orange\",\n            \"tunicell\"\n        ],\n        \"90\": [\n            \"movistar\"\n        ],\n        \"91\": [\n            \"telkomcel\",\n            \"telemor\",\n            \"timor_telecom\"\n        ],\n        \"92\": [\n            \"tigo\",\n            \"viva\"\n        ],\n        \"94\": [\n            \"claro\",\n            \"tigo\",\n            \"movistar\"\n        ],\n        \"95\": [\n            \"du\"\n        ],\n        \"96\": [\n            \"econet\"\n        ],\n        \"98\": [\n            \"mtn\",\n            \"zain\",\n            \"sudani_one\"\n        ],\n        \"99\": [\n            \"moov\"\n        ],\n        \"101\": [\n            \"claro\",\n            \"digi\",\n            \"tigo\",\n            \"movistar\",\n            \"red\"\n        ],\n        \"103\": [\n            \"digi\"\n        ],\n        \"105\": [\n            \"cnt_mobile\",\n            \"tuenti\",\n            \"claro\",\n            \"movistar\"\n        ],\n        \"108\": [\n            \"a1\",\n            \"hej\",\n            \"bh_telecom\"\n        ],\n        \"109\": [\n            \"claro\",\n            \"altice\",\n            \"viva\"\n        ],\n        \"110\": [\n            \"mtn\"\n        ],\n        \"112\": [\n            \"masmovil\"\n        ],\n        \"113\": [\n            \"cubacel\"\n        ],\n        \"114\": [\n            \"chinguitel\",\n            \"mattel\",\n            \"mauritel\"\n        ],\n        \"115\": [\n            \"africel\",\n            \"airtel\",\n            \"qcell\"\n        ],\n        \"116\": [\n            \"orange\",\n            \"zain\",\n            \"umniah\",\n            \"xpress\"\n        ],\n        \"117\": [\n            \"vodafone\",\n            \"lycamobile\",\n            \"nos\",\n            \"lebara\"\n        ],\n        \"119\": [\n            \"africel\",\n            \"viettel\",\n            \"telecel\",\n            \"econet\",\n            \"lacell\"\n        ],\n        \"120\": [\n            \"airtel\",\n            \"mtn\"\n        ],\n        \"123\": [\n            \"orange\",\n            \"mascom\",\n            \"be_mobile\"\n        ],\n        \"128\": [\n            \"geocell\",\n            \"hamrah_e_aval\",\n            \"magticom\",\n            \"beeline\"\n        ],\n        \"129\": [\n            \"cosmote\",\n            \"vodafone\",\n            \"q_telecom\",\n            \"ose\",\n            \"wind\"\n        ],\n        \"135\": [\n            \"cellcom\",\n            \"comium\",\n            \"libercell\",\n            \"libtelco\",\n            \"lonestar\"\n        ],\n        \"140\": [\n            \"airtel\",\n            \"mtn\"\n        ],\n        \"141\": [\n            \"o2\",\n            \"orange\"\n        ],\n        \"143\": [\n            \"indigo\",\n            \"megafon\"\n        ],\n        \"147\": [\n            \"mtn\",\n            \"airtel\",\n            \"zamtel\"\n        ],\n        \"148\": [\n            \"vivo\",\n            \"viva\",\n            \"team\"\n        ],\n        \"150\": [\n            \"airtel\"\n        ],\n        \"151\": [\n            \"claro\",\n            \"movistar\",\n            \"entel\",\n            \"wom\",\n            \"vodafone\"\n        ],\n        \"152\": [\n            \"telecel\",\n            \"onatel\",\n            \"airtel\"\n        ],\n        \"153\": [\n            \"ogero\",\n            \"alfa\",\n            \"touch\"\n        ],\n        \"155\": [\n            \"vodafone\",\n            \"telekom\"\n        ],\n        \"156\": [\n            \"claro\",\n            \"antel\"\n        ],\n        \"163\": [\n            \"dna\",\n            \"telia\",\n            \"elisa\"\n        ],\n        \"165\": [\n            \"tiptop\",\n            \"tango\",\n            \"orange\"\n        ],\n        \"172\": [\n            \"lycamobile\",\n            \"lebara\",\n            \"telenor\"\n        ],\n        \"173\": [\n            \"lebara\",\n            \"lycamobile\",\n            \"lidl\"\n        ],\n        \"174\": [\n            \"telia\",\n            \"my_call\",\n            \"lycamobile\"\n        ],\n        \"175\": [\n            \"optus\",\n            \"vodafone\",\n            \"telstra\",\n            \"lebara\",\n            \"pivotel\",\n            \"travelsim\"\n        ],\n        \"177\": [\n            \"zain\",\n            \"mtn\",\n            \"digitel\"\n        ],\n        \"182\": [\n            \"rakuten_mobile\",\n            \"docomo\"\n        ],\n        \"183\": [\n            \"vip\",\n            \"a1\",\n            \"telekom\",\n            \"lycamobile\"\n        ],\n        \"187\": [\n            \"tmobile\",\n            \"lycamobile\",\n            \"at_t\",\n            \"moabits\",\n            \"joltmobile\",\n            \"mint_mobile\",\n            \"us_mobile\",\n            \"textnow\",\n            \"boost_mobile\",\n            \"ultra_mobile\",\n            \"hello_mobile\",\n            \"h2o_wireless\",\n            \"physic\",\n            \"cricket_wireless\",\n            \"smartone\",\n            \"verizon\"\n        ],\n        \"189\": [\n            \"vodafone\"\n        ],\n        \"196\": [\n            \"maxx\",\n            \"starhub\",\n            \"singtel\",\n            \"simba\",\n            \"m1\"\n        ],\n        \"199\": [\n            \"epic\",\n            \"go\",\n            \"melita\"\n        ],\n        \"201\": [\n            \"gibtele\"\n        ]\n    }\n}"
				}
			]
		},
		{
			"name": "Request top countries by service",
			"request": {
				"method": "GET",
				"header": [],
				"url": {
					"raw": "https://api.grizzlysms.com/stubs/handler_api.php?[REDACTED_SECRET]",
					"protocol": "https",
					"host": [
						"api",
						"grizzlysms",
						"com"
					],
					"path": [
						"stubs",
						"handler_api.php"
					],
					"query": [
						{
							"key": "api_key",
							"value": "{{GRIZZLY_SMS_API_KEY}}"
						},
						{
							"key": "action",
							"value": "getTopCountriesByServiceRank"
						},
						{
							"key": "service",
							"value": "go"
						},
						{
							"key": "freePrice",
							"value": "$freePrice",
							"disabled": true
						}
					]
				}
			},
			"response": [
				{
					"name": "New Request",
					"originalRequest": {
						"method": "GET",
						"header": [],
						"url": {
							"raw": "https://api.grizzlysms.com/stubs/handler_api.php?[REDACTED_SECRET]",
							"protocol": "https",
							"host": [
								"api",
								"grizzlysms",
								"com"
							],
							"path": [
								"stubs",
								"handler_api.php"
							],
							"query": [
								{
									"key": "api_key",
									"value": "{{GRIZZLY_SMS_API_KEY}}"
								},
								{
									"key": "action",
									"value": "getTopCountriesByServiceRank"
								},
								{
									"key": "service",
									"value": "go"
								},
								{
									"key": "freePrice",
									"value": "$freePrice",
									"disabled": true
								}
							]
						}
					},
					"status": "OK",
					"code": 200,
					"_postman_previewlanguage": "json",
					"header": [
						{
							"key": "Date",
							"value": "Thu, 07 Aug 2025 20:37:53 GMT"
						},
						{
							"key": "Content-Type",
							"value": "application/json",
							"name": "Content-Type",
							"description": "",
							"type": "text"
						},
						{
							"key": "Transfer-Encoding",
							"value": "chunked"
						},
						{
							"key": "Connection",
							"value": "keep-alive"
						},
						{
							"key": "Content-Encoding",
							"value": "gzip"
						},
						{
							"key": "x-frame-options",
							"value": "DENY always"
						},
						{
							"key": "content-security-policy",
							"value": "frame-ancestors 'self'"
						},
						{
							"key": "strict-transport-security",
							"value": "max-age=15724800; includeSubDomains"
						},
						{
							"key": "cf-cache-status",
							"value": "DYNAMIC"
						},
						{
							"key": "Server",
							"value": "cloudflare"
						},
						{
							"key": "CF-RAY",
							"value": "96b99311b8e95434-TLL"
						}
					],
					"cookie": [
						{
							"expires": "Invalid Date"
						}
					],
					"body": "{\n    \"0\": {\n        \"retail_price\": 0.2,\n        \"country\": 6,\n        \"price\": 0.105,\n        \"count\": 4393\n    },\n    \"1\": {\n        \"retail_price\": 0.3075,\n        \"country\": 33,\n        \"price\": 0.205,\n        \"count\": 4861\n    },\n    \"2\": {\n        \"retail_price\": 0.315,\n        \"country\": 73,\n        \"price\": 0.21,\n        \"count\": 0\n    },\n    \"3\": {\n        \"retail_price\": 0.3,\n        \"country\": 16,\n        \"price\": 0.2,\n        \"count\": 0\n    },\n    \"4\": {\n        \"retail_price\": 0.24,\n        \"country\": 52,\n        \"price\": 0.16,\n        \"count\": 4456\n    },\n    \"5\": {\n        \"retail_price\": 0.255,\n        \"country\": 151,\n        \"price\": 0.17,\n        \"count\": 437\n    },\n    \"6\": {\n        \"retail_price\": 0.225,\n        \"country\": 39,\n        \"price\": 0.15,\n        \"count\": 68\n    },\n    \"7\": {\n        \"retail_price\": 0.39,\n        \"country\": 48,\n        \"price\": 0.26,\n        \"count\": 0\n    },\n    \"8\": {\n        \"retail_price\": 0.2,\n        \"country\": 4,\n        \"price\": 0.05,\n        \"count\": 2631\n    },\n    \"9\": {\n        \"retail_price\": 0.7455,\n        \"country\": 56,\n        \"price\": 0.497,\n        \"count\": 2231\n    },\n    \"10\": {\n        \"retail_price\": 0.4655,\n        \"country\": 108,\n        \"price\": 0.3103,\n        \"count\": 236\n    },\n    \"11\": {\n        \"retail_price\": 0.375,\n        \"country\": 46,\n        \"price\": 0.25,\n        \"count\": 0\n    },\n    \"12\": {\n        \"retail_price\": 0.2,\n        \"country\": 32,\n        \"price\": 0.1,\n        \"count\": 0\n    },\n    \"13\": {\n        \"retail_price\": 0.3,\n        \"country\": 115,\n        \"price\": 0.2,\n        \"count\": 0\n    },\n    \"14\": {\n        \"retail_price\": 0.81,\n        \"country\": 43,\n        \"price\": 0.54,\n        \"count\": 10\n    },\n    \"15\": {\n        \"retail_price\": 0.2625,\n        \"country\": 62,\n        \"price\": 0.175,\n        \"count\": 0\n    },\n    \"16\": {\n        \"retail_price\": 0.39,\n        \"country\": 15,\n        \"price\": 0.26,\n        \"count\": 0\n    },\n    \"17\": {\n        \"retail_price\": 0.375,\n        \"country\": 117,\n        \"price\": 0.25,\n        \"count\": 0\n    },\n    \"18\": {\n        \"retail_price\": 0.3,\n        \"country\": 187,\n        \"price\": 0.2,\n        \"count\": 32841\n    },\n    \"19\": {\n        \"retail_price\": 0.2,\n        \"country\": 8,\n        \"price\": 0.075,\n        \"count\": 0\n    },\n    \"20\": {\n        \"retail_price\": 0.3,\n        \"country\": 34,\n        \"price\": 0.2,\n        \"count\": 0\n    },\n    \"21\": {\n        \"retail_price\": 0.2475,\n        \"country\": 41,\n        \"price\": 0.165,\n        \"count\": 50\n    },\n    \"22\": {\n        \"retail_price\": 0.375,\n        \"country\": 129,\n        \"price\": 0.25,\n        \"count\": 0\n    },\n    \"23\": {\n        \"retail_price\": 0.3,\n        \"country\": 76,\n        \"price\": 0.2,\n        \"count\": 555\n    },\n    \"24\": {\n        \"retail_price\": 0.2,\n        \"country\": 14,\n        \"price\": 0.1,\n        \"count\": 53720\n    },\n    \"25\": {\n        \"retail_price\": 0.825,\n        \"country\": 78,\n        \"price\": 0.55,\n        \"count\": 4459\n    },\n    \"26\": {\n        \"retail_price\": 0.2,\n        \"country\": 0,\n        \"price\": 0.025,\n        \"count\": 49552\n    },\n    \"27\": {\n        \"retail_price\": 0.2,\n        \"country\": 7,\n        \"price\": 0.05,\n        \"count\": 513\n    },\n    \"28\": {\n        \"retail_price\": 0.45,\n        \"country\": 1,\n        \"price\": 0.3,\n        \"count\": 41\n    },\n    \"29\": {\n        \"retail_price\": 1.8,\n        \"country\": 175,\n        \"price\": 1.2,\n        \"count\": 21160\n    },\n    \"30\": {\n        \"retail_price\": 0.225,\n        \"country\": 85,\n        \"price\": 0.15,\n        \"count\": 365\n    },\n    \"31\": {\n        \"retail_price\": 0.285,\n        \"country\": 88,\n        \"price\": 0.19,\n        \"count\": 0\n    },\n    \"32\": {\n        \"retail_price\": 0.375,\n        \"country\": 63,\n        \"price\": 0.25,\n        \"count\": 0\n    },\n    \"33\": {\n        \"retail_price\": 0.6,\n        \"country\": 86,\n        \"price\": 0.4,\n        \"count\": 31881\n    },\n    \"34\": {\n        \"retail_price\": 0.375,\n        \"country\": 49,\n        \"price\": 0.25,\n        \"count\": 51\n    },\n    \"35\": {\n        \"retail_price\": 0.3,\n        \"country\": 13,\n        \"price\": 0.2,\n        \"count\": 0\n    },\n    \"36\": {\n        \"retail_price\": 0.45,\n        \"country\": 172,\n        \"price\": 0.3,\n        \"count\": 662\n    },\n    \"37\": {\n        \"retail_price\": 0.3,\n        \"country\": 22,\n        \"price\": 0.2,\n        \"count\": 0\n    },\n    \"38\": {\n        \"retail_price\": 0.225,\n        \"country\": 18,\n        \"price\": 0.15,\n        \"count\": 194\n    },\n    \"39\": {\n        \"retail_price\": 0.225,\n        \"country\": 36,\n        \"price\": 0.15,\n        \"count\": 53092\n    },\n    \"40\": {\n        \"retail_price\": 0.675,\n        \"country\": 67,\n        \"price\": 0.45,\n        \"count\": 372\n    },\n    \"41\": {\n        \"retail_price\": 0.9,\n        \"country\": 163,\n        \"price\": 0.6,\n        \"count\": 75\n    },\n    \"42\": {\n        \"retail_price\": 0.45,\n        \"country\": 59,\n        \"price\": 0.3,\n        \"count\": 10693\n    },\n    \"43\": {\n        \"retail_price\": 0.3,\n        \"country\": 54,\n        \"price\": 0.2,\n        \"count\": 0\n    },\n    \"44\": {\n        \"retail_price\": 0.3,\n        \"country\": 81,\n        \"price\": 0.2,\n        \"count\": 438\n    },\n    \"45\": {\n        \"retail_price\": 0.3,\n        \"country\": 128,\n        \"price\": 0.2,\n        \"count\": 461\n    },\n    \"46\": {\n        \"retail_price\": 0.2,\n        \"country\": 31,\n        \"price\": 0.083,\n        \"count\": 6942\n    },\n    \"47\": {\n        \"retail_price\": 0.225,\n        \"country\": 71,\n        \"price\": 0.15,\n        \"count\": 101\n    },\n    \"48\": {\n        \"retail_price\": 0.2,\n        \"country\": 45,\n        \"price\": 0.1,\n        \"count\": 1\n    },\n    \"49\": {\n        \"retail_price\": 0.45,\n        \"country\": 44,\n        \"price\": 0.3,\n        \"count\": 1\n    },\n    \"50\": {\n        \"retail_price\": 0.375,\n        \"country\": 77,\n        \"price\": 0.25,\n        \"count\": 155\n    },\n    \"51\": {\n        \"retail_price\": 0.2,\n        \"country\": 2,\n        \"price\": 0.05,\n        \"count\": 1212\n    },\n    \"52\": {\n        \"retail_price\": 3.75,\n        \"country\": 182,\n        \"price\": 2.5,\n        \"count\": 606\n    },\n    \"53\": {\n        \"retail_price\": 0.2625,\n        \"country\": 3,\n        \"price\": 0.175,\n        \"count\": 4\n    },\n    \"54\": {\n        \"retail_price\": 0.225,\n        \"country\": 10,\n        \"price\": 0.15,\n        \"count\": 860\n    },\n    \"55\": {\n        \"retail_price\": 0.375,\n        \"country\": 23,\n        \"price\": 0.25,\n        \"count\": 279\n    },\n    \"56\": {\n        \"retail_price\": 0.75,\n        \"country\": 50,\n        \"price\": 0.5,\n        \"count\": 8466\n    },\n    \"57\": {\n        \"retail_price\": 2.25,\n        \"country\": 196,\n        \"price\": 1.5,\n        \"count\": 862\n    },\n    \"58\": {\n        \"retail_price\": 0.675,\n        \"country\": 84,\n        \"price\": 0.45,\n        \"count\": 376\n    },\n    \"59\": {\n        \"retail_price\": 0.225,\n        \"country\": 24,\n        \"price\": 0.15,\n        \"count\": 774\n    },\n    \"60\": {\n        \"retail_price\": 0.42,\n        \"country\": 95,\n        \"price\": 0.28,\n        \"count\": 485\n    },\n    \"61\": {\n        \"retail_price\": 0.2475,\n        \"country\": 53,\n        \"price\": 0.165,\n        \"count\": 517\n    },\n    \"62\": {\n        \"retail_price\": 0.3,\n        \"country\": 83,\n        \"price\": 0.2,\n        \"count\": 0\n    },\n    \"63\": {\n        \"retail_price\": 0.225,\n        \"country\": 38,\n        \"price\": 0.15,\n        \"count\": 927\n    },\n    \"64\": {\n        \"retail_price\": 0.2,\n        \"country\": 9,\n        \"price\": 0.1,\n        \"count\": 0\n    },\n    \"65\": {\n        \"retail_price\": 0.2,\n        \"country\": 60,\n        \"price\": 0.12,\n        \"count\": 1602\n    },\n    \"66\": {\n        \"retail_price\": 0.225,\n        \"country\": 19,\n        \"price\": 0.15,\n        \"count\": 528\n    },\n    \"67\": {\n        \"retail_price\": 0.2,\n        \"country\": 109,\n        \"price\": 0.1,\n        \"count\": 163\n    },\n    \"68\": {\n        \"retail_price\": 0.225,\n        \"country\": 80,\n        \"price\": 0.15,\n        \"count\": 49\n    },\n    \"69\": {\n        \"retail_price\": 0.2,\n        \"country\": 66,\n        \"price\": 0.1,\n        \"count\": 0\n    },\n    \"70\": {\n        \"retail_price\": 0.39,\n        \"country\": 173,\n        \"price\": 0.26,\n        \"count\": 101\n    },\n    \"71\": {\n        \"retail_price\": 0.3,\n        \"country\": 135,\n        \"price\": 0.2,\n        \"count\": 531\n    },\n    \"72\": {\n        \"retail_price\": 1.05,\n        \"country\": 141,\n        \"price\": 0.7,\n        \"count\": 285\n    },\n    \"73\": {\n        \"retail_price\": 0.2,\n        \"country\": 64,\n        \"price\": 0.1,\n        \"count\": 0\n    },\n    \"74\": {\n        \"retail_price\": 0.225,\n        \"country\": 21,\n        \"price\": 0.15,\n        \"count\": 990\n    },\n    \"75\": {\n        \"retail_price\": 0.2,\n        \"country\": 123,\n        \"price\": 0.125,\n        \"count\": 656\n    },\n    \"76\": {\n        \"retail_price\": 0.75,\n        \"country\": 82,\n        \"price\": 0.5,\n        \"count\": 150\n    },\n    \"77\": {\n        \"retail_price\": 0.2,\n        \"country\": 11,\n        \"price\": 0.13,\n        \"count\": 206\n    },\n    \"78\": {\n        \"retail_price\": 0.525,\n        \"country\": 97,\n        \"price\": 0.35,\n        \"count\": 250\n    },\n    \"79\": {\n        \"retail_price\": 0.3,\n        \"country\": 168,\n        \"price\": 0.2,\n        \"count\": 58\n    },\n    \"80\": {\n        \"retail_price\": 0.2,\n        \"country\": 25,\n        \"price\": 0.125,\n        \"count\": 682\n    },\n    \"81\": {\n        \"retail_price\": 0.3,\n        \"country\": 185,\n        \"price\": 0.2,\n        \"count\": 166\n    },\n    \"82\": {\n        \"retail_price\": 0.225,\n        \"country\": 158,\n        \"price\": 0.15,\n        \"count\": 987\n    },\n    \"83\": {\n        \"retail_price\": 0.3581,\n        \"country\": 113,\n        \"price\": 0.2387,\n        \"count\": 581\n    },\n    \"84\": {\n        \"retail_price\": 0.3581,\n        \"country\": 100,\n        \"price\": 0.2387,\n        \"count\": 479\n    },\n    \"85\": {\n        \"retail_price\": 0.3,\n        \"country\": 47,\n        \"price\": 0.2,\n        \"count\": 329\n    },\n    \"86\": {\n        \"retail_price\": 0.315,\n        \"country\": 179,\n        \"price\": 0.21,\n        \"count\": 114\n    },\n    \"87\": {\n        \"retail_price\": 0.3,\n        \"country\": 140,\n        \"price\": 0.2,\n        \"count\": 486\n    },\n    \"88\": {\n        \"retail_price\": 0.2,\n        \"country\": 65,\n        \"price\": 0.1,\n        \"count\": 110\n    },\n    \"89\": {\n        \"retail_price\": 0.2,\n        \"country\": 96,\n        \"price\": 0.04,\n        \"count\": 0\n    },\n    \"90\": {\n        \"retail_price\": 0.2,\n        \"country\": 37,\n        \"price\": 0.1,\n        \"count\": 12987\n    },\n    \"91\": {\n        \"retail_price\": 0.39,\n        \"country\": 155,\n        \"price\": 0.26,\n        \"count\": 471\n    },\n    \"92\": {\n        \"retail_price\": 0.3,\n        \"country\": 92,\n        \"price\": 0.2,\n        \"count\": 583\n    },\n    \"93\": {\n        \"retail_price\": 0.3,\n        \"country\": 156,\n        \"price\": 0.2,\n        \"count\": 436\n    },\n    \"94\": {\n        \"retail_price\": 0.3,\n        \"country\": 51,\n        \"price\": 0.2,\n        \"count\": 85\n    },\n    \"95\": {\n        \"retail_price\": 0.3161,\n        \"country\": 161,\n        \"price\": 0.2107,\n        \"count\": 448\n    },\n    \"96\": {\n        \"retail_price\": 0.3161,\n        \"country\": 147,\n        \"price\": 0.2107,\n        \"count\": 724\n    },\n    \"97\": {\n        \"retail_price\": 15,\n        \"country\": 55,\n        \"price\": 10,\n        \"count\": 6\n    },\n    \"98\": {\n        \"retail_price\": 0.2,\n        \"country\": 94,\n        \"price\": 0.075,\n        \"count\": 0\n    },\n    \"99\": {\n        \"retail_price\": 0.3161,\n        \"country\": 139,\n        \"price\": 0.2107,\n        \"count\": 250\n    },\n    \"100\": {\n        \"retail_price\": 0.3161,\n        \"country\": 27,\n        \"price\": 0.2107,\n        \"count\": 922\n    },\n    \"101\": {\n        \"retail_price\": 0.36,\n        \"country\": 99,\n        \"price\": 0.24,\n        \"count\": 10530\n    },\n    \"102\": {\n        \"retail_price\": 0.3,\n        \"country\": 177,\n        \"price\": 0.2,\n        \"count\": 0\n    },\n    \"103\": {\n        \"retail_price\": 0.3,\n        \"country\": 26,\n        \"price\": 0.2,\n        \"count\": 744\n    },\n    \"104\": {\n        \"retail_price\": 0.3161,\n        \"country\": 130,\n        \"price\": 0.2107,\n        \"count\": 221\n    },\n    \"105\": {\n        \"retail_price\": 0.3161,\n        \"country\": 124,\n        \"price\": 0.2107,\n        \"count\": 296\n    },\n    \"106\": {\n        \"retail_price\": 0.2,\n        \"country\": 40,\n        \"price\": 0.065,\n        \"count\": 50\n    },\n    \"107\": {\n        \"retail_price\": 0.3,\n        \"country\": 126,\n        \"price\": 0.2,\n        \"count\": 25\n    },\n    \"108\": {\n        \"retail_price\": 0.225,\n        \"country\": 58,\n        \"price\": 0.15,\n        \"count\": 547\n    },\n    \"109\": {\n        \"retail_price\": 0.3161,\n        \"country\": 93,\n        \"price\": 0.2107,\n        \"count\": 357\n    },\n    \"110\": {\n        \"retail_price\": 0.39,\n        \"country\": 174,\n        \"price\": 0.26,\n        \"count\": 661\n    },\n    \"111\": {\n        \"retail_price\": 0.285,\n        \"country\": 106,\n        \"price\": 0.19,\n        \"count\": 250\n    },\n    \"112\": {\n        \"retail_price\": 0.39,\n        \"country\": 132,\n        \"price\": 0.26,\n        \"count\": 473\n    },\n    \"113\": {\n        \"retail_price\": 0.3161,\n        \"country\": 169,\n        \"price\": 0.2107,\n        \"count\": 54\n    },\n    \"114\": {\n        \"retail_price\": 0.2,\n        \"country\": 35,\n        \"price\": 0.05,\n        \"count\": 0\n    },\n    \"115\": {\n        \"retail_price\": 0.33,\n        \"country\": 166,\n        \"price\": 0.22,\n        \"count\": 34\n    },\n    \"116\": {\n        \"retail_price\": 0.3413,\n        \"country\": 70,\n        \"price\": 0.2275,\n        \"count\": 517\n    },\n    \"117\": {\n        \"retail_price\": 0.33,\n        \"country\": 121,\n        \"price\": 0.22,\n        \"count\": 390\n    },\n    \"118\": {\n        \"retail_price\": 0.3,\n        \"country\": 167,\n        \"price\": 0.2,\n        \"count\": 434\n    },\n    \"119\": {\n        \"retail_price\": 0.294,\n        \"country\": 87,\n        \"price\": 0.196,\n        \"count\": 422\n    },\n    \"120\": {\n        \"retail_price\": 0.3,\n        \"country\": 148,\n        \"price\": 0.2,\n        \"count\": 447\n    },\n    \"121\": {\n        \"retail_price\": 0.285,\n        \"country\": 146,\n        \"price\": 0.19,\n        \"count\": 56\n    },\n    \"122\": {\n        \"retail_price\": 0.375,\n        \"country\": 29,\n        \"price\": 0.25,\n        \"count\": 732\n    },\n    \"123\": {\n        \"retail_price\": 0.3581,\n        \"country\": 103,\n        \"price\": 0.2387,\n        \"count\": 353\n    },\n    \"124\": {\n        \"retail_price\": 0.378,\n        \"country\": 30,\n        \"price\": 0.252,\n        \"count\": 250\n    },\n    \"125\": {\n        \"retail_price\": 0.3161,\n        \"country\": 131,\n        \"price\": 0.2107,\n        \"count\": 450\n    },\n    \"126\": {\n        \"retail_price\": 0.3401,\n        \"country\": 142,\n        \"price\": 0.2267,\n        \"count\": 0\n    },\n    \"127\": {\n        \"retail_price\": 0.3401,\n        \"country\": 127,\n        \"price\": 0.2267,\n        \"count\": 422\n    },\n    \"128\": {\n        \"retail_price\": 0.225,\n        \"country\": 204,\n        \"price\": 0.15,\n        \"count\": 1000\n    },\n    \"129\": {\n        \"retail_price\": 0.33,\n        \"country\": 112,\n        \"price\": 0.22,\n        \"count\": 350\n    },\n    \"130\": {\n        \"retail_price\": 0.3165,\n        \"country\": 160,\n        \"price\": 0.211,\n        \"count\": 162\n    },\n    \"131\": {\n        \"retail_price\": 0.285,\n        \"country\": 189,\n        \"price\": 0.19,\n        \"count\": 150\n    },\n    \"132\": {\n        \"retail_price\": 0.3581,\n        \"country\": 101,\n        \"price\": 0.2387,\n        \"count\": 414\n    },\n    \"133\": {\n        \"retail_price\": 0.33,\n        \"country\": 150,\n        \"price\": 0.22,\n        \"count\": 543\n    },\n    \"134\": {\n        \"retail_price\": 0.3581,\n        \"country\": 107,\n        \"price\": 0.2387,\n        \"count\": 10475\n    },\n    \"135\": {\n        \"retail_price\": 0.315,\n        \"country\": 42,\n        \"price\": 0.21,\n        \"count\": 419\n    },\n    \"136\": {\n        \"retail_price\": 3.75,\n        \"country\": 165,\n        \"price\": 2.5,\n        \"count\": 418\n    },\n    \"137\": {\n        \"retail_price\": 0.45,\n        \"country\": 136,\n        \"price\": 0.3,\n        \"count\": 429\n    },\n    \"138\": {\n        \"retail_price\": 0.3,\n        \"country\": 178,\n        \"price\": 0.2,\n        \"count\": 150\n    },\n    \"139\": {\n        \"retail_price\": 0.2,\n        \"country\": 5,\n        \"price\": 0.075,\n        \"count\": 0\n    },\n    \"140\": {\n        \"retail_price\": 0.3,\n        \"country\": 184,\n        \"price\": 0.2,\n        \"count\": 200\n    },\n    \"141\": {\n        \"retail_price\": 0.33,\n        \"country\": 188,\n        \"price\": 0.22,\n        \"count\": 4\n    },\n    \"142\": {\n        \"retail_price\": 0.285,\n        \"country\": 114,\n        \"price\": 0.19,\n        \"count\": 438\n    },\n    \"143\": {\n        \"retail_price\": 0.33,\n        \"country\": 72,\n        \"price\": 0.22,\n        \"count\": 13257\n    },\n    \"144\": {\n        \"retail_price\": 0.3581,\n        \"country\": 89,\n        \"price\": 0.2387,\n        \"count\": 424\n    },\n    \"145\": {\n        \"retail_price\": 0.33,\n        \"country\": 125,\n        \"price\": 0.22,\n        \"count\": 515\n    },\n    \"146\": {\n        \"retail_price\": 0.33,\n        \"country\": 152,\n        \"price\": 0.22,\n        \"count\": 10754\n    },\n    \"147\": {\n        \"retail_price\": 0.45,\n        \"country\": 28,\n        \"price\": 0.3,\n        \"count\": 658\n    },\n    \"148\": {\n        \"retail_price\": 0.3,\n        \"country\": 186,\n        \"price\": 0.2,\n        \"count\": 249\n    },\n    \"149\": {\n        \"retail_price\": 0.33,\n        \"country\": 102,\n        \"price\": 0.22,\n        \"count\": 578\n    },\n    \"150\": {\n        \"retail_price\": 0.33,\n        \"country\": 153,\n        \"price\": 0.22,\n        \"count\": 10505\n    },\n    \"151\": {\n        \"retail_price\": 0.39,\n        \"country\": 183,\n        \"price\": 0.26,\n        \"count\": 103\n    },\n    \"152\": {\n        \"retail_price\": 0.3,\n        \"country\": 143,\n        \"price\": 0.2,\n        \"count\": 250\n    },\n    \"153\": {\n        \"retail_price\": 0.225,\n        \"country\": 75,\n        \"price\": 0.15,\n        \"count\": 382\n    },\n    \"154\": {\n        \"retail_price\": 0.2625,\n        \"country\": 137,\n        \"price\": 0.175,\n        \"count\": 418\n    },\n    \"155\": {\n        \"retail_price\": 0.3,\n        \"country\": 61,\n        \"price\": 0.2,\n        \"count\": 10513\n    },\n    \"156\": {\n        \"retail_price\": 0.3581,\n        \"country\": 79,\n        \"price\": 0.2387,\n        \"count\": 538\n    },\n    \"157\": {\n        \"retail_price\": 0.3581,\n        \"country\": 116,\n        \"price\": 0.2387,\n        \"count\": 470\n    },\n    \"158\": {\n        \"retail_price\": 0.3581,\n        \"country\": 134,\n        \"price\": 0.2387,\n        \"count\": 250\n    },\n    \"159\": {\n        \"retail_price\": 0.2,\n        \"country\": 91,\n        \"price\": 0.1,\n        \"count\": 0\n    },\n    \"160\": {\n        \"retail_price\": 0.3161,\n        \"country\": 119,\n        \"price\": 0.2107,\n        \"count\": 548\n    },\n    \"161\": {\n        \"retail_price\": 0.378,\n        \"country\": 69,\n        \"price\": 0.252,\n        \"count\": 473\n    },\n    \"162\": {\n        \"retail_price\": 0.3165,\n        \"country\": 164,\n        \"price\": 0.211,\n        \"count\": 170\n    },\n    \"163\": {\n        \"retail_price\": 0.3161,\n        \"country\": 104,\n        \"price\": 0.2107,\n        \"count\": 250\n    },\n    \"164\": {\n        \"retail_price\": 0.3,\n        \"country\": 154,\n        \"price\": 0.2,\n        \"count\": 404\n    },\n    \"165\": {\n        \"retail_price\": 0.3581,\n        \"country\": 145,\n        \"price\": 0.2387,\n        \"count\": 505\n    },\n    \"166\": {\n        \"retail_price\": 0.9,\n        \"country\": 199,\n        \"price\": 0.6,\n        \"count\": 0\n    },\n    \"167\": {\n        \"retail_price\": 0.3,\n        \"country\": 90,\n        \"price\": 0.2,\n        \"count\": 465\n    },\n    \"168\": {\n        \"retail_price\": 0.3161,\n        \"country\": 149,\n        \"price\": 0.2107,\n        \"count\": 527\n    },\n    \"169\": {\n        \"retail_price\": 0.4115,\n        \"country\": 171,\n        \"price\": 0.2743,\n        \"count\": 134\n    },\n    \"170\": {\n        \"retail_price\": 0.3161,\n        \"country\": 138,\n        \"price\": 0.2107,\n        \"count\": 446\n    },\n    \"171\": {\n        \"retail_price\": 0.2741,\n        \"country\": 98,\n        \"price\": 0.1827,\n        \"count\": 49\n    },\n    \"172\": {\n        \"retail_price\": 0.3581,\n        \"country\": 111,\n        \"price\": 0.2387,\n        \"count\": 859\n    },\n    \"173\": {\n        \"retail_price\": 0.3581,\n        \"country\": 133,\n        \"price\": 0.2387,\n        \"count\": 2382\n    },\n    \"174\": {\n        \"retail_price\": 0.3161,\n        \"country\": 162,\n        \"price\": 0.2107,\n        \"count\": 164\n    },\n    \"175\": {\n        \"retail_price\": 0.3,\n        \"country\": 17,\n        \"price\": 0.2,\n        \"count\": 10705\n    },\n    \"176\": {\n        \"retail_price\": 0.3,\n        \"country\": 159,\n        \"price\": 0.2,\n        \"count\": 451\n    },\n    \"177\": {\n        \"retail_price\": 0.3161,\n        \"country\": 118,\n        \"price\": 0.2107,\n        \"count\": 178\n    },\n    \"178\": {\n        \"retail_price\": 0.2,\n        \"country\": 20,\n        \"price\": 0.075,\n        \"count\": 0\n    },\n    \"179\": {\n        \"retail_price\": 0.3201,\n        \"country\": 181,\n        \"price\": 0.2134,\n        \"count\": 22\n    },\n    \"180\": {\n        \"retail_price\": 0.375,\n        \"country\": 57,\n        \"price\": 0.25,\n        \"count\": 542\n    },\n    \"181\": {\n        \"retail_price\": 0.285,\n        \"country\": 176,\n        \"price\": 0.19,\n        \"count\": 321\n    },\n    \"182\": {\n        \"retail_price\": 0.3,\n        \"country\": 74,\n        \"price\": 0.2,\n        \"count\": 609\n    },\n    \"183\": {\n        \"retail_price\": 0.4875,\n        \"country\": 144,\n        \"price\": 0.325,\n        \"count\": 200\n    },\n    \"184\": {\n        \"retail_price\": 0.33,\n        \"country\": 122,\n        \"price\": 0.22,\n        \"count\": 422\n    },\n    \"185\": {\n        \"retail_price\": 0.3,\n        \"country\": 157,\n        \"price\": 0.2,\n        \"count\": 10331\n    },\n    \"186\": {\n        \"retail_price\": 0.2,\n        \"country\": 203,\n        \"price\": 0.1,\n        \"count\": 0\n    },\n    \"187\": {\n        \"retail_price\": 0.3161,\n        \"country\": 120,\n        \"price\": 0.2107,\n        \"count\": 630\n    },\n    \"188\": {\n        \"retail_price\": 0.3581,\n        \"country\": 105,\n        \"price\": 0.2387,\n        \"count\": 413\n    },\n    \"189\": {\n        \"retail_price\": 0.3,\n        \"country\": 68,\n        \"price\": 0.2,\n        \"count\": 430\n    },\n    \"190\": {\n        \"retail_price\": 0.3581,\n        \"country\": 110,\n        \"price\": 0.2387,\n        \"count\": 383\n    },\n    \"191\": {\n        \"retail_price\": 7.125,\n        \"country\": 201,\n        \"price\": 4.75,\n        \"count\": 37\n    },\n    \"192\": {\n        \"retail_price\": 0.33,\n        \"country\": 170,\n        \"price\": 0.22,\n        \"count\": 114\n    },\n    \"193\": {\n        \"retail_price\": 0.3,\n        \"country\": 180,\n        \"price\": 0.2,\n        \"count\": 114\n    }\n}"
				}
			]
		},
		{
			"name": "active activations",
			"request": {
				"method": "GET",
				"header": [],
				"url": {
					"raw": "https://api.grizzlysms.com/stubs/handler_api.php?[REDACTED_SECRET]",
					"protocol": "https",
					"host": [
						"api",
						"grizzlysms",
						"com"
					],
					"path": [
						"stubs",
						"handler_api.php"
					],
					"query": [
						{
							"key": "api_key",
							"value": "{{GRIZZLY_SMS_API_KEY}}"
						},
						{
							"key": "action",
							"value": "getActiveActivations"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Change of activation status",
			"request": {
				"method": "GET",
				"header": [],
				"url": {
					"raw": "https://api.grizzlysms.com/stubs/handler_api.php?[REDACTED_SECRET]",
					"protocol": "https",
					"host": [
						"api",
						"grizzlysms",
						"com"
					],
					"path": [
						"stubs",
						"handler_api.php"
					],
					"query": [
						{
							"key": "api_key",
							"value": "{{GRIZZLY_SMS_API_KEY}}"
						},
						{
							"key": "action",
							"value": "setStatus",
							"description": "3 - request one more code (for free)\n\n6 - finish the activation *\n\n8 - report the fact that the number has been already used and cancel the activation"
						},
						{
							"key": "status",
							"value": "6"
						},
						{
							"key": "id",
							"value": "$id"
						},
						{
							"key": "forward",
							"value": "$forward",
							"disabled": true
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Get activation status",
			"request": {
				"method": "GET",
				"header": [],
				"url": {
					"raw": "https://api.grizzlysms.com/stubs/handler_api.php?[REDACTED_SECRET]",
					"protocol": "https",
					"host": [
						"api",
						"grizzlysms",
						"com"
					],
					"path": [
						"stubs",
						"handler_api.php"
					],
					"query": [
						{
							"key": "api_key",
							"value": "{{GRIZZLY_SMS_API_KEY}}"
						},
						{
							"key": "action",
							"value": "getStatus"
						},
						{
							"key": "id",
							"value": "3936051180"
						}
					]
				},
				"description": "StartFragment\n\n**Parameters:**\n\n$api_key - API key\n\n$id - Activation ID\n\n**ANSWER:**\n\nSTATUS_WAIT_CODE - waiting for SMS\n\nSTATUS_WAIT_RETRY: 'past, unmatched code' - waiting for code clarification\n\nSTATUS_CANCEL- the activation is canceled or completed\n\nSTATUS_OK: 'activation code' - code received\n\n**POSSIBLE MISTAKES:**\n\nNO_ACTIVATION - activation id does not exist\n\nERROR_SQL - sql-server error\n\nBAD_KEY - invalid API key\n\nBAD_ACTION - incorrect action\n\nEndFragment"
			},
			"response": []
		},
		{
			"name": "Get activation history",
			"request": {
				"method": "GET",
				"header": [],
				"url": {
					"raw": "https://api.grizzlysms.com/stubs/handler_api.php?[REDACTED_SECRET]",
					"protocol": "https",
					"host": [
						"api",
						"grizzlysms",
						"com"
					],
					"path": [
						"stubs",
						"handler_api.php"
					],
					"query": [
						{
							"key": "api_key",
							"value": "{{GRIZZLY_SMS_API_KEY}}"
						},
						{
							"key": "action",
							"value": "getHistory"
						},
						{
							"key": "start",
							"value": "1723063870"
						},
						{
							"key": "end",
							"value": "1754599872"
						},
						{
							"key": "offset",
							"value": "0"
						},
						{
							"key": "limit",
							"value": "100"
						}
					]
				}
			},
			"response": []
		}
	],
	"variable": [
		{
			"key": "GRIZZLY_SMS_API_KEY",
			"value": [REDACTED_SECRET],
			"type": "default"
		}
	]
}

path: docs/api-protocol-for-working-with-grizzly-sms.json
content: {
  "openapi": "3.0.0",
  "info": {
    "title": "API protocol for working with Grizzly SMS",
    "version": "2.0"
  },
  "servers": [
    {
      "url": "/api/v2",
      "description": "API protocol v2"
    }
  ],
  "paths": {
    "/countries": {
      "get": {
        "tags": [
          "Countries"
        ],
        "summary": "Get the list of countries",
        "operationId": "8a9892aff609d25e16f24349821dc0e8",
        "parameters": [
          {
            "$ref": "#/components/parameters/size"
          },
          {
            "$ref": "#/components/parameters/page"
          },
          {
            "$ref": "#/components/parameters/sort"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "properties": {
                          "id": {
                            "type": "integer"
                          },
                          "name": {
                            "type": "string"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "meta": {
                      "$ref": "#/components/schemas/PaginationMetaData"
                    }
                  },
                  "type": "object"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerErrorResponse"
          }
        }
      }
    },
    "/currencies": {
      "get": {
        "tags": [
          "Currencies"
        ],
        "summary": "Получить доступные валюты",
        "operationId": "6eff50d579152595d9de31b9c18e1fa5",
        "responses": {
          "200": {
            "$ref": "#/components/responses/CurrenciesResponse"
          },
          "500": {
            "$ref": "#/components/responses/ServerErrorResponse"
          }
        }
      }
    },
    "/currencies/{currency}/rates": {
      "get": {
        "tags": [
          "Currencies"
        ],
        "summary": "Получить курс валют",
        "operationId": "8a1246fecce0205fd66e292217cb2368",
        "parameters": [
          {
            "$ref": "#/components/parameters/currency"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/CurrencyResponse"
          },
          "500": {
            "$ref": "#/components/responses/ServerErrorResponse"
          }
        }
      }
    },
    "/emails": {
      "get": {
        "tags": [
          "Emails"
        ],
        "summary": "Get the list of active purchases",
        "operationId": "7f17119e77aad0c154d2f5e600ef092a",
        "parameters": [
          {
            "$ref": "#/components/parameters/search"
          },
          {
            "$ref": "#/components/parameters/size"
          },
          {
            "$ref": "#/components/parameters/page"
          },
          {
            "$ref": "#/components/parameters/sort"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/EmailActivation"
                      }
                    }
                  },
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedResponse"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntityResponse"
          },
          "500": {
            "$ref": "#/components/responses/ServerErrorResponse"
          }
        },
        "security": [
          {
            "x_api_key": []
          }
        ]
      },
      "post": {
        "tags": [
          "Emails"
        ],
        "summary": "Purchase an activation by mail",
        "operationId": "22164e5067a27560b8fbf28b2ac1f019",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "site",
                  "mailDomain"
                ],
                "properties": {
                  "site": {
                    "description": "Website which an activation is purchased for",
                    "type": "string",
                    "example": "telegram.com"
                  },
                  "mailDomain": {
                    "description": "Mail domain",
                    "type": "string",
                    "example": "gmail.com"
                  }
                },
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/EmailActivationSuccessResponse"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntityResponse"
          },
          "500": {
            "$ref": "#/components/responses/ServerErrorResponse"
          }
        },
        "security": [
          {
            "x_api_key": []
          }
        ]
      }
    },
    "/emails/batch": {
      "post": {
        "tags": [
          "Emails"
        ],
        "summary": "Купить активацию по почте пачками",
        "operationId": "7892a59d83e6e38d154854fe1f1b065f",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "site",
                  "mailDomain",
                  "count"
                ],
                "properties": {
                  "site": {
                    "description": "Website which an activation is purchased for",
                    "type": "string",
                    "example": "telegram.com"
                  },
                  "mailDomain": {
                    "description": "Mail domain",
                    "type": "string",
                    "example": "gmail.com"
                  },
                  "count": {
                    "description": "Количество почт для активации (от 1 до 10)",
                    "type": "integer",
                    "maximum": 10,
                    "minimum": 1,
                    "example": 5
                  }
                },
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "422": {
            "$ref": "#/components/responses/UnprocessableEntityResponse"
          },
          "500": {
            "$ref": "#/components/responses/ServerErrorResponse"
          }
        },
        "security": [
          {
            "x_api_key": []
          }
        ]
      }
    },
    "/emails/{emailId}": {
      "get": {
        "tags": [
          "Emails"
        ],
        "summary": "Check status of the activation by mail",
        "operationId": "c57ebd15edbfa8625b8a60984b76e3c6",
        "parameters": [
          {
            "$ref": "#/components/parameters/emailId"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/EmailActivationSuccessResponse"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedResponse"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundResponse"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntityResponse"
          },
          "500": {
            "$ref": "#/components/responses/ServerErrorResponse"
          }
        },
        "security": [
          {
            "x_api_key": []
          }
        ]
      },
      "delete": {
        "tags": [
          "Emails"
        ],
        "summary": "Cancel the purchase of an activation by mail",
        "operationId": "20dae8daa691db1282f0d1d268dbac44",
        "parameters": [
          {
            "$ref": "#/components/parameters/emailId"
          }
        ],
        "responses": {
          "204": {
            "description": "OK"
          },
          "500": {
            "$ref": "#/components/responses/ServerErrorResponse"
          }
        },
        "security": [
          {
            "x_api_key": []
          }
        ]
      }
    },
    "/emails/{emailId}/reorder": {
      "post": {
        "tags": [
          "Emails"
        ],
        "summary": "Reorder an activation by mail",
        "operationId": "bb0d53e0557982f130c1540ed663e831",
        "parameters": [
          {
            "$ref": "#/components/parameters/emailId"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/EmailActivationSuccessResponse"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundResponse"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntityResponse"
          },
          "500": {
            "$ref": "#/components/responses/ServerErrorResponse"
          }
        },
        "security": [
          {
            "x_api_key": []
          }
        ]
      }
    },
    "/emails/domains": {
      "get": {
        "tags": [
          "Emails"
        ],
        "summary": "Get the list of available domains",
        "operationId": "59f271906bdbc81b6b2cdd4213b01775",
        "parameters": [
          {
            "name": "site",
            "in": "query",
            "description": "Website which an activation is purchased for",
            "schema": {
              "type": "string",
              "example": "telegram.com"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "properties": {
                          "name": {
                            "description": "Domain name",
                            "type": "string"
                          },
                          "cost": {
                            "description": "Price",
                            "type": "number",
                            "format": "float"
                          },
                          "currency": {
                            "description": "Currency",
                            "type": "string",
                            "enum": [
                              643,
                              840,
                              978,
                              156
                            ]
                          },
                          "count": {
                            "description": "Number of available mails",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      }
                    }
                  },
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedResponse"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntityResponse"
          },
          "500": {
            "$ref": "#/components/responses/ServerErrorResponse"
          }
        },
        "security": [
          {
            "x_api_key": []
          }
        ]
      }
    },
    "/operators": {
      "get": {
        "tags": [
          "Operators"
        ],
        "summary": "Получить список операторов",
        "operationId": "a27167dfe500e0a841f4ec437746668a",
        "parameters": [
          {
            "$ref": "#/components/parameters/size"
          },
          {
            "$ref": "#/components/parameters/page"
          },
          {
            "$ref": "#/components/parameters/sort"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "properties": {
                          "name": {
                            "type": "string"
                          },
                          "countries": {
                            "type": "array",
                            "items": {
                              "properties": {
                                "id": {
                                  "type": "integer"
                                },
                                "name": {
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            }
                          }
                        },
                        "type": "object"
                      }
                    },
                    "meta": {
                      "$ref": "#/components/schemas/PaginationMetaData"
                    }
                  },
                  "type": "object"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerErrorResponse"
          }
        }
      }
    },
    "/partners/products": {
      "get": {
        "tags": [
          "Partners"
        ],
        "summary": "Get the list of partner products",
        "operationId": "9565043c8945ee70d7398d683fd7f3fa",
        "parameters": [
          {
            "$ref": "#/components/parameters/size"
          },
          {
            "$ref": "#/components/parameters/page"
          },
          {
            "$ref": "#/components/parameters/sort"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "properties": {
                          "id": {
                            "type": "integer"
                          },
                          "name": {
                            "type": "string"
                          },
                          "group": {
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "meta": {
                      "$ref": "#/components/schemas/PaginationMetaData"
                    }
                  },
                  "type": "object"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerErrorResponse"
          }
        }
      }
    },
    "/services": {
      "get": {
        "tags": [
          "Services"
        ],
        "summary": "Get the list of services",
        "operationId": "88756177d58c6102fd2f0a1ac6056b21",
        "parameters": [
          {
            "$ref": "#/components/parameters/size"
          },
          {
            "$ref": "#/components/parameters/page"
          },
          {
            "$ref": "#/components/parameters/sort"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "properties": {
                          "code": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "meta": {
                      "$ref": "#/components/schemas/PaginationMetaData"
                    }
                  },
                  "type": "object"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerErrorResponse"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "EmailActivation": {
        "description": "Activation by mail",
        "required": [
          "id",
          "status",
          "cost",
          "currency",
          "date"
        ],
        "properties": {
          "id": {
            "description": "ID",
            "type": "integer"
          },
          "site": {
            "description": "Website which an activation is purchased for",
            "type": "string"
          },
          "email": {
            "description": "Mail",
            "type": "string"
          },
          "status": {
            "description": "Activation status",
            "type": "string",
            "enum": [
              "WAIT",
              "CANCEL",
              "SUCCESS"
            ]
          },
          "value": {
            "description": "Code",
            "type": "string"
          },
          "cost": {
            "description": "Price",
            "type": "number",
            "format": "float"
          },
          "currency": {
            "description": "Currency",
            "type": "string",
            "enum": [
              643,
              840,
              978,
              156
            ]
          },
          "date": {
            "description": "Date of creation",
            "type": "string",
            "format": "date-time",
            "example": "2025-03-06T11:04:07.000000Z"
          },
          "full_message": {
            "description": "Full text of the email",
            "type": "string"
          }
        },
        "type": "object"
      },
      "PaginationMetaData": {
        "description": "Pagination metadata",
        "required": [
          "page",
          "size",
          "sort",
          "total"
        ],
        "properties": {
          "page": {
            "description": "Number of the page containing data",
            "type": "integer",
            "example": 1
          },
          "size": {
            "description": "Size of the page containing data",
            "type": "integer",
            "example": 10
          },
          "sort": {
            "description": "Sorting data by several fields",
            "type": "object",
            "additionalProperties": {
              "type": "enum",
              "enum": [
                "asc",
                "desc"
              ]
            }
          },
          "total": {
            "description": "Total number",
            "type": "integer",
            "example": 100
          }
        },
        "type": "object"
      }
    },
    "responses": {
      "CurrencyResponse": {
        "description": "OK",
        "content": {
          "application/json": {
            "schema": {
              "required": [
                "data"
              ],
              "properties": {
                "data": {
                  "required": [
                    "updated_utc",
                    "updated_unix",
                    "rates"
                  ],
                  "properties": {
                    "updated_utc": {
                      "type": "string",
                      "format": "date-time",
                      "example": "2025-03-18T11:40:37Z"
                    },
                    "updated_unix": {
                      "type": "integer",
                      "example": 1742298037
                    },
                    "rates": {
                      "type": "object",
                      "example": {
                        "643": 81.4522,
                        "840": 1
                      },
                      "additionalProperties": {
                        "type": "number",
                        "format": "float",
                        "example": 81.4522
                      }
                    }
                  },
                  "type": "object"
                }
              },
              "type": "object"
            }
          }
        }
      },
      "CurrenciesResponse": {
        "description": "OK",
        "content": {
          "application/json": {
            "schema": {
              "required": [
                "data"
              ],
              "properties": {
                "data": {
                  "type": "object",
                  "example": {
                    "840": "USD"
                  },
                  "additionalProperties": {
                    "type": "string"
                  }
                }
              },
              "type": "object"
            }
          }
        }
      },
      "EmailActivationSuccessResponse": {
        "description": "OK",
        "content": {
          "application/json": {
            "schema": {
              "required": [
                "data"
              ],
              "properties": {
                "data": {
                  "$ref": "#/components/schemas/EmailActivation"
                }
              },
              "type": "object"
            }
          }
        }
      },
      "NotFoundResponse": {
        "description": "NOT_FOUND",
        "content": {
          "application/json": {
            "schema": {
              "required": [
                "title",
                "details"
              ],
              "properties": {
                "title": {
                  "description": "Error code",
                  "type": "string"
                },
                "details": {
                  "description": "Error details",
                  "type": "string"
                }
              },
              "type": "object"
            }
          }
        }
      },
      "ServerErrorResponse": {
        "description": "SERVER_ERROR",
        "content": {
          "application/json": {
            "schema": {
              "required": [
                "title",
                "details"
              ],
              "properties": {
                "title": {
                  "description": "Error code",
                  "type": "string"
                },
                "details": {
                  "description": "Error details",
                  "type": "string"
                }
              },
              "type": "object"
            }
          }
        }
      },
      "UnauthorizedResponse": {
        "description": "UNAUTHORIZED",
        "content": {
          "application/json": {
            "schema": {
              "required": [
                "title",
                "details"
              ],
              "properties": {
                "title": {
                  "description": "Error code",
                  "type": "string",
                  "enum": [
                    "MISSING_API_KEY",
                    "BAD_API_KEY"
                  ]
                },
                "details": {
                  "description": "Error details",
                  "type": "string"
                }
              },
              "type": "object"
            }
          }
        }
      },
      "UnprocessableEntityResponse": {
        "description": "UNPROCESSABLE_ENTITY",
        "content": {
          "application/json": {
            "schema": {
              "required": [
                "title",
                "details",
                "errors"
              ],
              "properties": {
                "title": {
                  "description": "Error code",
                  "type": "string"
                },
                "details": {
                  "description": "Error details",
                  "type": "string"
                },
                "errors": {
                  "type": "object",
                  "example": {
                    "parameter1": [
                      "The parameter1 is required.",
                      "The parameter1 must be a number."
                    ],
                    "parameter2": [
                      "The parameter2 must be a number."
                    ]
                  },
                  "additionalProperties": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                }
              },
              "type": "object"
            }
          }
        }
      }
    },
    "parameters": {
      "currency": {
        "name": "currency",
        "in": "path",
        "description": "Currency",
        "schema": {
          "type": "integer"
        }
      },
      "emailId": {
        "name": "emailId",
        "in": "path",
        "description": "Email activation ID",
        "schema": {
          "type": "integer"
        }
      },
      "search": {
        "name": "search",
        "in": "query",
        "description": "Search bar",
        "schema": {
          "type": "string"
        }
      },
      "size": {
        "name": "size",
        "in": "query",
        "description": "Size of the page containing data",
        "schema": {
          "type": "integer"
        }
      },
      "page": {
        "name": "page",
        "in": "query",
        "description": "Number of the page containing data",
        "schema": {
          "type": "integer"
        }
      },
      "from": {
        "name": "from",
        "in": "query",
        "description": "Дата начала периода в формате ISO 8601 YYYY-MM-DDTHH:MM:SSZ",
        "schema": {
          "type": "string"
        }
      },
      "to": {
        "name": "to",
        "in": "query",
        "description": "Дата до периода в формате ISO 8601 YYYY-MM-DDTHH:MM:SSZ",
        "schema": {
          "type": "string"
        }
      },
      "sort": {
        "name": "sort",
        "in": "query",
        "description": "Sorting data by several fields",
        "required": false,
        "style": "deepObject",
        "explode": true,
        "schema": {
          "properties": {
            "id": {
              "description": "Parameters used for filtering and navigation in lists",
              "type": "string",
              "default": "desc",
              "enum": [
                "asc",
                "desc"
              ]
            }
          },
          "type": "object"
        }
      },
      "status": {
        "name": "status",
        "in": "query",
        "description": "Фильтр по статусам",
        "required": false,
        "style": "deepObject",
        "explode": true,
        "schema": {
          "properties": {
            "id": {
              "description": "Параметры, используемые для фильтрации по статусам активации(3-STATUS_WAIT, 4-STATUS_CANCEL, 5-STATUS_SUCCESS, 6-STATUS_CANCEL_AFTER_SUCCESS)",
              "type": "string",
              "default": "desc",
              "enum": [
                "3",
                "4",
                "5",
                "6"
              ]
            }
          },
          "type": "object"
        }
      },
      "userId": {
        "name": "userId",
        "in": "path",
        "description": "User ID",
        "schema": {
          "type": "integer"
        }
      },
      "countryId": {
        "name": "countryId",
        "in": "path",
        "description": "Country ID",
        "schema": {
          "type": "integer"
        }
      }
    },
    "securitySchemes": {
      "x_api_key": {
        "type": "apiKey",
        "description": "A short description for security scheme",
        "name": "X-API-Key",
        "in": "header"
      },
      "temp_mobile_key": {
        "type": "apiKey",
        "description": "Mobile app token",
        "name": "X-Temp-Mobile-Key",
        "in": "header"
      }
    }
  },
  "tags": [
    {
      "name": "Countries",
      "description": "Countries"
    },
    {
      "name": "Currencies",
      "description": "Курсы валют"
    },
    {
      "name": "Partners",
      "description": "Partners"
    },
    {
      "name": "Services",
      "description": "Services"
    },
    {
      "name": "Emails",
      "description": "Emails"
    },
    {
      "name": "Operators",
      "description": "Operators"
    }
  ]
}

path: docs/services.json
content: code: full
name: Full Rent
f: 0

code: full
f: 0
name: Full rent

code: ig
f: 0
name: Instagram+Threads

code: fb
f: 0
name: facebook

code: go
f: 0
name: Google,youtube,Gmail

code: wa
f: 0
name: Whatsapp

code: tg
f: 0
name: Telegram

code: wx
f: 0
name: Apple

code: hw
f: 0
name: Alipay/Alibaba/1688

code: oi
f: 0
name: Tinder

code: am
f: 0
name: Amazon

code: lf
f: 0
name: TikTok/Douyin

code: ot
f: 0
name: Any other

code: vi
f: 0
name: Viber

code: mm
f: 0
name: Microsoft

code: tw
f: 0
name: Twitter

code: wb
f: 0
name: WeChat

code: sg
f: 0
name: OZON

code: pm
f: 0
name: AOL

code: ub
f: 0
name: Uber

code: bnu
f: 0
name: Qpon

code: yw
f: 0
name: Grindr

code: ev
f: 0
name: Picpay 

code: abu
f: 0
name: BPJSTK

code: ka
f: 0
name: Shopee

code: ni
f: 0
name: Gojek

code: mb
f: 0
name: Yahoo

code: vk
f: 0
name: vk.com

code: bw
f: 0
name: Signal

code: vz
f: 0
name: Hinge

code: gp
f: 0
name: Ticketmaster

code: ds
f: 0
name: Discord

code: li
f: 0
name: Baidu

code: jg
f: 0
name: Grab

code: jr
f: 0
name: Samokat

code: ew
f: 0
name: Nike

code: cq
f: 0
name: Mercado

code: me
f: 0
name: Line messenger

code: uu
f: 0
name: Wildberries

code: nv
f: 0
name: Naver

code: ts
f: 0
name: PayPal

code: ya
f: 0
name: Yandex/Uber

code: yl
f: 0
name: Yalla

code: qf
f: 0
name: RedBook

code: xh
f: 0
name: OVO

code: atu
f: 0
name: Sber/Cooper

code: ju
f: 0
name: Indomaret

code: aaa
f: 0
name: Nubank

code: cn
f: 0
name: Fiverr

code: vr
f: 0
name: MotorkuX

code: bdp
f: 0
name: Kredito

code: fr
f: 0
name: Dana

code: dl
f: 0
name: Lazada

code: fk
f: 0
name: BLIBLI

code: aez
f: 0
name: Shein

code: ki
f: 0
name: 99app

code: dh
f: 0
name: eBay

code: abk
f: 0
name: GMX

code: nz
f: 0
name: Foodpanda

code: nc
f: 0
name: Payoneer

code: tl
f: 0
name: Truecaller

code: ue
f: 0
name: Onet

code: sn
f: 0
name: OLX

code: tn
f: 0
name: LinkedIN

code: acz
f: 0
name: Claude 

code: pf
f: 0
name: pof.com

code: awv
f: 0
name: Wallapop

code: pc
f: 0
name: Casino/bet/gambling

code: za
f: 0
name: JDcom

code: bab
f: 0
name: Opera Mini

code: mg
f: 0
name: Magnit

code: pd
f: 0
name: IFood

code: aym
f: 0
name: Langit Musik

code: axx
f: 0
name: Shopback

code: ok
f: 0
name: ok.ru

code: blz
f: 0
name: MiniPay

code: asy
f: 0
name: Fore Coffee

code: bcx
f: 0
name: Bantusaku

code: nf
f: 0
name: Netflix

code: mo
f: 0
name: Bumble

code: tm
f: 0
name: Akulaku

code: pz
f: 0
name: Lidl

code: xd
f: 0
name: Tokopedia

code: ky
f: 0
name: SpatenOktoberfest

code: ta
f: 0
name: Wink

code: ep
f: 0
name: Temu

code: agj
f: 0
name: Marktplaats

code: amy
f: 0
name: Otzovik

code: jq
f: 0
name: Paysafecard

code: do
f: 0
name: Leboncoin

code: df
f: 0
name: Happn

code: vm
f: 0
name: OkCupid

code: agb
f: 0
name: Smiles

code: xk
f: 0
name: DiDi

code: aup
f: 0
name: Botim

code: akd
f: 0
name:  Feels

code: xm
f: 0
name: Letual

code: wd
f: 0
name: Столото

code: bxp
f: 0
name: Tennents

code: yx
f: 0
name: JTExpress

code: wr
f: 0
name: Walmart

code: rr
f: 0
name: Wolt

code: om
f: 0
name: Corona

code: ve
f: 0
name: Dream11

code: bnl
f: 0
name: Reddit

code: blt
f: 0
name: INDOPAKET

code: zk
f: 0
name: Deliveroo

code: bd
f: 0
name: X5ID

code: fu
f: 0
name: Snapchat

code: im
f: 0
name: Imo

code: akl
f: 0
name: DOKU

code: gf
f: 0
name: GoogleVoice

code: kj
f: 0
name: YAPPY

code: aqj
f: 0
name: BigBasket

code: kc
f: 0
name: Vinted

code: bdg
f: 0
name: HUD

code: tx
f: 0
name: Bolt

code: aff
f: 0
name: C6 Bank

code: ajj
f: 0
name: Rebtel

code: aem
f: 0
name: AstraPay

code: bih
f: 0
name: Indosaku

code: fd
f: 0
name: Mamba

code: sy
f: 0
name: Brahma

code: ly
f: 0
name: Olacabs

code: adw
f: 0
name: Profi

code: kl
f: 0
name: kolesa.kz

code: bdo
f: 0
name: AdaModal

code: lc
f: 0
name: Subito

code: aik
f: 0
name: ZUS Coffee

code: asb
f: 0
name: YUEWEN 阅文集团

code: kt
f: 0
name: KakaoTalk

code: ua
f: 0
name: BlaBlaCar

code: vg
f: 0
name: ShellBox

code: ada
f: 0
name: TRUTH SOCIAL

code: ac
f: 0
name: DoorDash

code: adj
f: 0
name: RummyCircle

code: bxw
f: 0
name: Credinex

code: agd
f: 0
name: Grailed

code: xt
f: 0
name: Flipkart

code: btx
f: 0
name: Amap 高德地图

code: bz
f: 0
name: Blizzard

code: ahx
f: 0
name: Bitrue

code: bwv
f: 0
name: Manus

code: akp
f: 0
name: Her

code: afd
f: 0
name: Astra Otoshop

code: ft
f: 0
name: Bookmakers

code: qh
f: 0
name: Oriflame

code: aq
f: 0
name: Glovo

code: da
f: 0
name: MTS CashBack

code: fv
f: 0
name: Vidio

code: wh
f: 0
name: TanTan

code: aka
f: 0
name: LinkAja

code: acm
f: 0
name: Razer

code: als
f: 0
name: Greggs 

code: lj
f: 0
name: Santander

code: ahl
f: 0
name: Maxim

code: agl
f: 0
name: Betano

code: kv
f: 0
name: Rush

code: bo
f: 0
name: Wise

code: uk
f: 0
name: Airbnb

code: aba
f: 0
name: Rappi

code: bit
f: 0
name: Домклик

code: apq
f: 0
name: WePoker

code: cy
f: 0
name: PSA

code: aqt
f: 0
name: Skrill

code: blr
f: 0
name: DocuSign

code: abc
f: 0
name: Taptap Send

code: alp
f: 0
name: Mera Gaon

code: zs
f: 0
name: Bilibili

code: ij
f: 0
name: Revolut

code: qq
f: 0
name: Tencent QQ

code: abn
f: 0
name: Bybit

code: aeu
f: 0
name: TheFork

code: bnt
f: 0
name: Treasury

code: ars
f: 0
name: Bingo Plus

code: aex
f: 0
name: Neon

code: bgt
f: 0
name: Alfamidi

code: st
f: 0
name: Auchan

code: bex
f: 0
name: Whatnot

code: mi
f: 0
name: Zupee

code: bcq
f: 0
name: Mantan

code: bkd
f: 0
name: Sahibinden

code: bls
f: 0
name: WeTV

code: aqm
f: 0
name: Tala

code: ma
f: 0
name: Mail.ru

code: acw
f: 0
name: YouDo

code: aey
f: 0
name: Next

code: uz
f: 0
name: OffGamers

code: cp
f: 0
name: Uklon

code: blh
f: 0
name: Winner

code: bqm
f: 0
name: Beebs

code: bxr
f: 0
name: AlFursan

code: bc
f: 0
name: GCash

code: byd
f: 0
name: Airtasker

code: baq
f: 0
name: Redbubble

code: mx
f: 0
name: SoulApp

code: abo
f: 0
name: WEBDE

code: bhb
f: 0
name: Wuling

code: bai
f: 0
name: SNKRDUNK

code: rd
f: 0
name: Lenta

code: ir
f: 0
name: Chispa

code: ee
f: 0
name: Twilio

code: acr
f: 0
name: QwikCilver

code: bwy
f: 0
name: Монетка

code: hx
f: 0
name: AliExpress

code: tz
f: 0
name: Leyka

code: auc
f: 0
name: TotalPass

code: qj
f: 0
name: Whoosh

code: bn
f: 0
name: Alfagift

code: gq
f: 0
name: Freelancer

code: awq
f: 0
name: Atlas Earth

code: fz
f: 0
name: KFC

code: bui
f: 0
name: OKbet

code: bxv
f: 0
name: PAPER

code: aux
f: 0
name: Lightning AI

code: tu
f: 0
name: Lyft

code: rl
f: 0
name: inDriver

code: bfg
f: 0
name: EMAG

code: agg
f: 0
name: OneForma

code: azn
f: 0
name: UFC

code: btn
f: 0
name: Itau

code: afn
f: 0
name: roomster

code: ark
f: 0
name: SageMaker Studio Lab

code: kk
f: 0
name: Idealista

code: bwx
f: 0
name: Chagee

code: zb
f: 0
name: FreeNow

code: pr
f: 0
name: Trendyol

code: sh
f: 0
name: Vkusvill

code: ban
f: 0
name: BLINK by BonusLink

code: mt
f: 0
name: Steam

code: gj
f: 0
name: Carousell

code: yk
f: 0
name: SportMaster

code: nl
f: 0
name: Myntra

code: bau
f: 0
name: FieldStar

code: aow
f: 0
name: Geekay

code: aon
f: 0
name: Binance

code: cb
f: 0
name: Bazos

code: ami
f: 0
name: TEAMORU

code: qv
f: 0
name: Badoo

code: acu
f: 0
name: CityMall

code: byp
f: 0
name: Kaito

code: ang
f: 0
name: TOMORO COFFEE

code: aqy
f: 0
name: SAPO

code: aiw
f: 0
name: Roblox

code: qt
f: 0
name: MoneyСontrol

code: amb
f: 0
name: Vercel

code: bfa
f: 0
name: Webmotors 

code: afo
f: 0
name: KION 

code: bga
f: 0
name: LPTracker

code: axn
f: 0
name: FastMoss

code: bwu
f: 0
name: SkyBet

code: et
f: 0
name: Clubhouse

code: jx
f: 0
name: Swiggy

code: hu
f: 0
name: Ukrnet

code: afs
f: 0
name: Privalia

code: abg
f: 0
name: PagBank

code: apd
f: 0
name: 2dehands

code: uf
f: 0
name: Eneba

code: asa
f: 0
name: Habby

code: dg
f: 0
name: Mercari

code: sa
f: 0
name: AGIBANK

code: il
f: 0
name: IQOS

code: agv
f: 0
name: DoneDeal

code: dj
f: 0
name: LUKOIL-AZS

code: bl
f: 0
name: BIGO LIVE

code: anh
f: 0
name: Cadbury

code: xs
f: 0
name: GroupMe

code: aig
f: 0
name: Five Surveys

code: agm
f: 0
name: CMB

code: pu
f: 0
name: Justdating

code: ng
f: 0
name: FunPay

code: xx
f: 0
name: Joyride

code: btr
f: 0
name: Duet

code: aje
f: 0
name: CupidMedia

code: asf
f: 0
name: TextFree

code: bsa
f: 0
name: will

code: bmt
f: 0
name: Worldgas

code: bon
f: 0
name: RetailMeNot

code: alg
f: 0
name: Ankama

code: abl
f: 0
name: gpnbonus

code: aor
f: 0
name: OKX

code: bvh
f: 0
name: ParenTeam

code: zp
f: 0
name: Pinduoduo

code: avj
f: 0
name: SumUp 

code: afz
f: 0
name: Klarna

code: bvi
f: 0
name: Salams

code: bpg
f: 0
name: НаПоправку

code: aug
f: 0
name: Magnit Market

code: aiz
f: 0
name: Brevo

code: apr
f: 0
name: Capital One

code: aij
f: 0
name: NEQUI

code: hb
f: 0
name: Twitch

code: ano
f: 0
name: Shopify

code: ayz
f: 0
name: Kimi

code: ie
f: 0
name: bet365

code: abe
f: 0
name: Foodora

code: bdr
f: 0
name: Yara Farmcare

code: em
f: 0
name: ZéDelivery

code: ani
f: 0
name: Talabat

code: bas
f: 0
name: Stoiximan

code: re
f: 0
name: Coinbase

code: btv
f: 0
name: Radiate

code: avy
f: 0
name: BV

code: abq
f: 0
name: Upwork

code: ber
f: 0
name: Gumtree

code: qx
f: 0
name: WorldRemit

code: sr
f: 0
name: Starbucks

code: bgj
f: 0
name: MoonPay

code: bob
f: 0
name: Shell GO

code: qy
f: 0
name: Zhihu

code: ef
f: 0
name: Nextdoor

code: bej
f: 0
name: KERETAKU 

code: rt
f: 0
name: hily

code: ael
f: 0
name: Cloud Manager

code: wu
f: 0
name: PrivetMir

code: axp
f: 0
name: ChargePoint

code: bki
f: 0
name: MyACUVUE

code: kf
f: 0
name: Weibo

code: nt
f: 0
name: Sravni

code: blp
f: 0
name: MEEFF

code: azi
f: 0
name: TheL

code: awg
f: 0
name: Natura Avon

code: abh
f: 0
name: UOL Host

code: bbu
f: 0
name: InternationalCupid

code: bou
f: 0
name: 汇旺 Huione Pay

code: fh
f: 0
name: Lalamove

code: anm
f: 0
name: CaltexGO

code: ah
f: 0
name: EscapeFromTarkov

code: ais
f: 0
name: DiDiFood

code: bws
f: 0
name: Citygo

code: aeh
f: 0
name: Apteka Aprel

code: bxy
f: 0
name: MAX

code: gs
f: 0
name: SamsungShop

code: nq
f: 0
name: Trip

code: rj
f: 0
name: Detskiy mir

code: bwa
f: 0
name: Hostinger

code: arf
f: 0
name: Enjoei

code: xr
f: 0
name: Tango

code: bni
f: 0
name: Pets4Homes

code: bfv
f: 0
name: Chocofamily

code: afm
f: 0
name: myboost

code: zl
f: 0
name: Airtel

code: ajq
f: 0
name: MyValue

code: aua
f: 0
name: 同程旅行 Tongcheng Travel

code: ayb
f: 0
name: AsianDating

code: bgx
f: 0
name: Paxel

code: brr
f: 0
name: LemFi

code: atn
f: 0
name: Fawry

code: brk
f: 0
name: Indeed

code: hp
f: 0
name: Meesho

code: bcg
f: 0
name: 2ГИС

code: dr
f: 0
name: OpenAI

code: anx
f: 0
name: InfinitePay

code: hz
f: 0
name: Drom

code: us
f: 0
name: IRCTC

code: ann
f: 0
name: Bradesco

code: bte
f: 0
name: CROCOBET

code: bvf
f: 0
name: GymPlius

code: md
f: 0
name: Banks

code: bmk
f: 0
name: Автополе

code: bxj
f: 0
name: Quero-Quero PAG

code: zh
f: 0
name: Zoho

code: asp
f: 0
name: PhonePe

code: app
f: 0
name: ClassPass

code: vy
f: 0
name: Meta

code: arx
f: 0
name: Zinia

code: te
f: 0
name: eFood

code: sd
f: 0
name: dodopizza

code: bvs
f: 0
name: Вчасно

code: pw
f: 0
name: SellMonitor

code: atr
f: 0
name: RIDE 

code: awu
f: 0
name: MosGram

code: ake
f: 0
name: DIKIDI

code: bbk
f: 0
name: FilipinoCupid

code: kh
f: 0
name: Bukalapak

code: byf
f: 0
name: SeaBank

code: auh
f: 0
name: KeeTa 美团

code: brq
f: 0
name: Фармленд

code: ls
f: 0
name: Careem

code: ahe
f: 0
name: Bunq

code: avm
f: 0
name: Instacart

code: aat
f: 0
name: TamTam

code: ari
f: 0
name: Ring4

code: bvu
f: 0
name: SwaRail 

code: aoh
f: 0
name: YooMoney

code: bbm
f: 0
name: TrueMoney

code: akr
f: 0
name: Voi

code: awr
f: 0
name: KCEX

code: adz
f: 0
name: Shokoladnica

code: ait
f: 0
name: FeetFinder

code: bhl
f: 0
name: ati su

code: ard
f: 0
name: Maya

code: gk
f: 0
name: AptekaRU

code: apg
f: 0
name: Damai

code: ahb
f: 0
name: Ubisoft

code: bbq
f: 0
name: Chime

code: oc
f: 0
name: DealShare

code: ajm
f: 0
name: Gener8

code: atq
f: 0
name: PQHosting

code: hc
f: 0
name: MOMO

code: ht
f: 0
name: Bitso

code: lm
f: 0
name: FarPost

code: ahc
f: 0
name: START

code: arp
f: 0
name: Continente

code: auu
f: 0
name: Chetire Lapi

code: km
f: 0
name: Rozetka

code: ul
f: 0
name: Getir

code: agk
f: 0
name: Ipsos iSay

code: avk
f: 0
name: Quoka 

code: bku
f: 0
name: NL International

code: adi
f: 0
name: Zepto

code: alt
f: 0
name: Segari

code: bpq
f: 0
name: MChat

code: ff
f: 0
name: AVON

code: sw
f: 0
name: NCsoft

code: bv
f: 0
name: Metro

code: aoe
f: 0
name: Sendwave

code: cw
f: 0
name: PaddyPower

code: dp
f: 0
name: ProtonMail

code: rn
f: 0
name: neftm

code: bfw
f: 0
name: Finya

code: un
f: 0
name: humblebundle

code: bre
f: 0
name: Лемана ПРО

code: aps
f: 0
name: Skelbiu

code: bbl
f: 0
name: Autodesk

code: bkx
f: 0
name: Mi Gente

code: ex
f: 0
name: Linode

code: anc
f: 0
name: VARUS

code: bsu
f: 0
name: Dingtone

code: kx
f: 0
name: Vivo

code: rq
f: 0
name: AptekiPlus

code: abx
f: 0
name: Kaching

code: auj
f: 0
name: High 5 Casino

code: bdd
f: 0
name: BetMen

code: biq
f: 0
name: Xpress Super App

code: bme
f: 0
name: myIM3

code: bpt
f: 0
name: SerpApi 

code: ty
f: 0
name: Okey

code: aeg
f: 0
name: Flowwow

code: afw
f: 0
name: Packeta

code: agn
f: 0
name: Velobayk

code: alo
f: 0
name: Profee

code: bii
f: 0
name: MEXC

code: bly
f: 0
name: COSMOTE

code: qe
f: 0
name: GG

code: ayc
f: 0
name: HungerStation

code: btw
f: 0
name: CloudTips

code: gr
f: 0
name: Astropay

code: wc
f: 0
name: Craigslist

code: ane
f: 0
name: Supercell

code: ti
f: 0
name: cryptocom

code: bgy
f: 0
name: Astro

code: bpv
f: 0
name: Портал

code: vs
f: 0
name: WinzoGame

code: ze
f: 0
name: Shpock

code: bli
f: 0
name: Scalapay

code: oj
f: 0
name: LoveRu

code: apf
f: 0
name: Carrefour

code: bij
f: 0
name: Prodege

code: acg
f: 0
name: KoronaPay

code: aha
f: 0
name: Angel One

code: akj
f: 0
name: Easycash

code: aoi
f: 0
name: Cryptonow

code: apw
f: 0
name: Bankiros

code: azx
f: 0
name: ToYou

code: ui
f: 0
name: RuTube

code: zo
f: 0
name: Kaggle

code: agi
f: 0
name: Njuškalo

code: aql
f: 0
name: Xigua Video 西瓜视频

code: tk
f: 0
name: MVideo

code: adp
f: 0
name: Cabify

code: aul
f: 0
name: Alignable

code: bh
f: 0
name: Uteka

code: bwi
f: 0
name: CIMB

code: byc
f: 0
name: Vantage

code: jv
f: 0
name: Consultant

code: yy
f: 0
name: Venmo

code: afq
f: 0
name: MagaLu

code: bfr
f: 0
name: Dott

code: bxs
f: 0
name: LikeCard

code: dc
f: 0
name: YikYak

code: gt
f: 0
name: Gett

code: bpz
f: 0
name: Just Eat

code: nr
f: 0
name: Tosla

code: ahk
f: 0
name: BlinBeri

code: bqp
f: 0
name: Zara

code: auf
f: 0
name: PREMIER

code: azg
f: 0
name: LODA

code: nh
f: 0
name: AlloBank

code: tv
f: 0
name: Flink

code: aok
f: 0
name: NETELLER

code: io
f: 0
name: ZdravCity

code: sv
f: 0
name: Dostavista

code: xy
f: 0
name: Depop

code: zr
f: 0
name: Papara

code: ajn
f: 0
name: Gopuff

code: bco
f: 0
name: Ситилинк

code: bgn
f: 0
name: Veeka

code: fw
f: 0
name: 99acres

code: hm
f: 0
name: Globus

code: acb
f: 0
name: Spark Driver

code: agx
f: 0
name: MeiQFashion

code: bhe
f: 0
name: Jago

code: bry
f: 0
name: Mobile DE

code: ns
f: 0
name: Oldubil

code: amz
f: 0
name: ImmoScout24

code: blm
f: 0
name: Epic Games 

code: bye
f: 0
name: WhatsApp Business

code: tf
f: 0
name: Noon

code: afa
f: 0
name: CDEK

code: ajy
f: 0
name: All Access

code: aaz
f: 0
name: Ozan

code: aol
f: 0
name: Paysera

code: blc
f: 0
name: Дикси

code: bwd
f: 0
name: Fetch

code: of
f: 0
name: urent/jet/RuSharing

code: alm
f: 0
name: Muzz

code: beo
f: 0
name: BigPay

code: bjz
f: 0
name: Jeevansathi

code: bra
f: 0
name: Touch n Go TNG

code: ama
f: 0
name: WooPlus

code: avb
f: 0
name: Tealive

code: bst
f: 0
name: AdmiralBet

code: yn
f: 0
name: Allegro

code: bny
f: 0
name: Suno

code: bxf
f: 0
name: Disney Plus

code: pp
f: 0
name: Huya

code: afu
f: 0
name: VseInstrumenty

code: bwe
f: 0
name: Immutable Play

code: wm
f: 0
name: 99Speed

code: zu
f: 0
name: BigC

code: abp
f: 0
name: D5BET

code: ad
f: 0
name: Iti

code: aev
f: 0
name: Inshallah

code: aln
f: 0
name: Remotasks

code: anj
f: 0
name: Gemini

code: asi
f: 0
name: OMODA

code: axk
f: 0
name: BandinginAja

code: azc
f: 0
name: CoreAsia

code: beq
f: 0
name: Литрес

code: bgq
f: 0
name: Zalabin

code: bkb
f: 0
name: CMK Club

code: blx
f: 0
name: 2ememain

code: bnr
f: 0
name: Семейная команда

code: bpi
f: 0
name: Askable

code: btc
f: 0
name: Depinsim

code: bvb
f: 0
name: Uphold

code: cg
f: 0
name: Gemgala

code: eb
f: 0
name: Voltz

code: fy
f: 0
name: Mylove

code: ho
f: 0
name: Cathay

code: qd
f: 0
name: Taobao

code: rz
f: 0
name: EasyPay

code: tp
f: 0
name: IndiaGold

code: vh
f: 0
name: Shtolle

code: xf
f: 0
name: LightChat

code: yv
f: 0
name: IPLwin

code: acd
f: 0
name: Cloud.ru

code: agz
f: 0
name: Jiva Petani

code: aiq
f: 0
name: Prime Opinion

code: akf
f: 0
name: Ollis

code: aof
f: 0
name: Guzman y Gomez

code: atb
f: 0
name: Movider

code: auq
f: 0
name: WeLive 

code: azu
f: 0
name: Ninjaz

code: bdn
f: 0
name: Teman Prima

code: bfj
f: 0
name: Good Morning Global

code: bhg
f: 0
name: Telz

code: biz
f: 0
name: BeCharge

code: bms
f: 0
name: Playpark

code: bol
f: 0
name: My TELUS

code: bqb
f: 0
name: Weex

code: bxo
f: 0
name: 悠遊卡 EasyCard

code: cx
f: 0
name: Icrypex

code: so
f: 0
name: RummyWealth

code: zm
f: 0
name: OfferUp

code: aep
f: 0
name: Slickcall

code: ahn
f: 0
name: Riv Gosh

code: alc
f: 0
name: Facily

code: att
f: 0
name: BCD travel

code: avf
f: 0
name: ONESIAM

code: aww
f: 0
name: Pecunpay

code: ayv
f: 0
name: myTVSUPER

code: bal
f: 0
name: Moka

code: bcf
f: 0
name: Hoff

code: bed
f: 0
name: NetBet

code: bgi
f: 0
name: SuperLive

code: bib
f: 0
name: myBCA

code: bjr
f: 0
name: Pony

code: blq
f: 0
name: Ari10

code: bpa
f: 0
name: OP Braga

code: bqs
f: 0
name: CGV

code: bun
f: 0
name: Fat Llama

code: bwq
f: 0
name: AmazingTalker

code: byl
f: 0
name: Nala

code: dq
f: 0
name: IceCasino

code: fs
f: 0
name: Şikayet var

code: hi
f: 0
name: JungleeRummy

code: jj
f: 0
name: Aitu

code: mq
f: 0
name: GMNG

code: os
f: 0
name: Dhani

code: th
f: 0
name: WestStein

code: yo
f: 0
name: Amasia

code: adl
f: 0
name: EarnEasy

code: afe
f: 0
name: GovBr

code: agt
f: 0
name: Uralairlines

code: ak
f: 0
name: Douyu

code: alv
f: 0
name: TIER

code: anw
f: 0
name: Premmia

code: apk
f: 0
name: Liberty

code: ara
f: 0
name: Shareful

code: asu
f: 0
name: Replit

code: axs
f: 0
name: AIS PLAY

code: azk
f: 0
name: KreditMart

code: bba
f: 0
name: SwitchUp

code: bkn
f: 0
name: betlive

code: bto
f: 0
name: Планета АВТО

code: bvl
f: 0
name: psysu

code: bxg
f: 0
name: BAT

code: co
f: 0
name: Rediffmail

code: gh
f: 0
name: GyFTR

code: lt
f: 0
name: BitClout

code: no
f: 0
name: Virgo

code: qn
f: 0
name: Blued 

code: xn
f: 0
name: Familia

code: zd
f: 0
name: Zilch

code: abb
f: 0
name: Coca-Cola

code: acl
f: 0
name: swissmoney

code: ahf
f: 0
name: GAIL`s Bakery

code: ajb
f: 0
name: Beri zaryad

code: amm
f: 0
name: punjab citizen

code: aqc
f: 0
name: Omne by FWD

code: aru
f: 0
name: UNNI 강남언니

code: bdv
f: 0
name: Mudah

code: bfz
f: 0
name: Snapmint

code: bhs
f: 0
name: Bingo Cash

code: bjk
f: 0
name: ElectroPay

code: bnc
f: 0
name: Infomaniak

code: bsl
f: 0
name: Oskelly

code: buf
f: 0
name: Web8

code: bwf
f: 0
name: MyGo

code: gz
f: 0
name: LYKA

code: it
f: 0
name: CashApp

code: kq
f: 0
name: FotoCasa

code: mk
f: 0
name: LongHu

code: rf
f: 0
name: Akudo

code: sz
f: 0
name: Pivko24

code: uq
f: 0
name: TopDetal

code: wo
f: 0
name: Parkplus

code: yh
f: 0
name: hh

code: zx
f: 0
name: CommunityGaming

code: aew
f: 0
name: Flip

code: ai
f: 0
name: CELEBe

code: ajr
f: 0
name: boku

code: ape
f: 0
name: Toutiao 

code: aqu
f: 0
name: KBX

code: asl
f: 0
name: Familhao

code: aub
f: 0
name: Smitten

code: avn
f: 0
name: G42

code: axl
f: 0
name: Viralmu

code: azd
f: 0
name: Вплюсе

code: bav
f: 0
name: LeoList

code: bcw
f: 0
name: Online Check Writer

code: bgr
f: 0
name: Superbank

code: bns
f: 0
name: PAC Cash

code: bpk
f: 0
name: Huggies

code: btd
f: 0
name: Volcengine 火山引擎

code: bvc
f: 0
name: ELEV8

code: bx
f: 0
name: Dosi

code: ch
f: 0
name: Pocket52

code: ec
f: 0
name: RummyCulture

code: js
f: 0
name: GolosZa

code: ne
f: 0
name: Coindcx

code: tr
f: 0
name: Paysend

code: xg
f: 0
name: FortunaSK

code: aau
f: 0
name: RockeTreach

code: ace
f: 0
name: Tata Neu

code: ady
f: 0
name: TOKYO-CITY

code: aki
f: 0
name: tiketcom

code: amc
f: 0
name: Fortune Slots

code: apt
f: 0
name: Airwallex

code: atd
f: 0
name: BUKA

code: aur
f: 0
name: The Concert

code: awh
f: 0
name: NGCASH

code: azv
f: 0
name: Tangga

code: bfn
f: 0
name: Tualang Honey

code: bhh
f: 0
name: Appen

code: bja
f: 0
name: QuackQuack Dating App

code: bky
f: 0
name: Tesco

code: bqc
f: 0
name: Wigl

code: bsb
f: 0
name: Fasset

code: bvw
f: 0
name: Rida

code: fa
f: 0
name: XadrezFeliz

code: ik
f: 0
name: GuruBets

code: mc
f: 0
name: Michat

code: nw
f: 0
name: Ximalaya

code: uh
f: 0
name: Yubo

code: xu
f: 0
name: RecargaPay

code: zn
f: 0
name: Biedronka

code: acv
f: 0
name: A23

code: aeq
f: 0
name: Godrej

code: agh
f: 0
name: Getnet

code: aho
f: 0
name: Upland

code: ajk
f: 0
name: Venteny

code: aox
f: 0
name: Aukro

code: aqk
f: 0
name: Richkart

code: avg
f: 0
name: Hooked Protocol

code: ax
f: 0
name: CrefisaMais

code: ayw
f: 0
name: E4B 

code: bee
f: 0
name: SKO

code: bic
f: 0
name: Marktde

code: bjt
f: 0
name: OCBC

code: bnm
f: 0
name: TangoMe

code: bpb
f: 0
name: Outbox

code: bqv
f: 0
name: Yuzu

code: bsv
f: 0
name: AmarthaFin

code: bur
f: 0
name: Tayyab

code: hj
f: 0
name: Nykaa

code: jl
f: 0
name: Hopi

code: vb
f: 0
name: Korablik

code: wz
f: 0
name: FoxFord

code: yp
f: 0
name: Payzapp

code: aab
f: 0
name: BharatPe

code: aby
f: 0
name: ITMS

code: ado
f: 0
name: Jasper Home Fashions

code: agu
f: 0
name: Marlboro 

code: alw
f: 0
name: Vida

code: apl
f: 0
name: Sideline

code: arc
f: 0
name: CHECK24

code: asw
f: 0
name: ACSON

code: auk
f: 0
name: STB Union

code: avz
f: 0
name: Getsbet

code: axu
f: 0
name: Sipay

code: azm
f: 0
name: Ticket Plus

code: bbc
f: 0
name: SparkBlend

code: bde
f: 0
name: Шаверно

code: bfc
f: 0
name: Tomei

code: bir
f: 0
name: FloatMe

code: bko
f: 0
name: Vision Plus

code: bmi
f: 0
name: Sisal

code: brs
f: 0
name: MioDottore

code: btp
f: 0
name: Связь ON

code: bvm
f: 0
name: Тикетон

code: bxh
f: 0
name: Acordo Certo

code: eq
f: 0
name: Qoo10

code: lw
f: 0
name: MrGreen

code: np
f: 0
name: Siply

code: ps
f: 0
name: Zdorov

code: qo
f: 0
name: Moneylion

code: si
f: 0
name: Cita Previa

code: xo
f: 0
name: Notifire

code: afx
f: 0
name: Gamesofa

code: ahi
f: 0
name: Daki

code: ajc
f: 0
name: Pochta Rossii

code: amp
f: 0
name: VerifyKit

code: aoo
f: 0
name: Pegasus Airlines

code: aqd
f: 0
name: Pesohere

code: arv
f: 0
name: DARKSIDE

code: ato
f: 0
name: Podrygka

code: auy
f: 0
name: LivU

code: ayn
f: 0
name: Lime

code: bad
f: 0
name: ALL IT

code: bby
f: 0
name: TATA 1mg

code: bdw
f: 0
name: Valora 

code: bhu
f: 0
name: TMTW

code: bjl
f: 0
name: Digio

code: bnd
f: 0
name: КуулКлевер

code: bow
f: 0
name: Affirm

code: bqn
f: 0
name: Upward

code: bsm
f: 0
name: Ahlan

code: bug
f: 0
name: 2GO

code: bwg
f: 0
name: Бристоль

code: fi
f: 0
name: Dundle

code: ha
f: 0
name: My11Circle

code: iy
f: 0
name: FoodHub

code: kr
f: 0
name: Eyecon

code: ml
f: 0
name: ApostaGanha

code: rg
f: 0
name: Porbet

code: yi
f: 0
name: Yemeksepeti

code: zy
f: 0
name: Nttgame

code: abr
f: 0
name: Privy

code: adc
f: 0
name: PlayOJO

code: ago
f: 0
name: Servify

code: aic
f: 0
name: Whoscall

code: ajt
f: 0
name: Gorod

code: aqv
f: 0
name: Doorverse

code: asn
f: 0
name: Boletomovil

code: avq
f: 0
name: Wego

code: aze
f: 0
name: beehiiv

code: baw
f: 0
name: Leadgid

code: bes
f: 0
name: RusNovo

code: bgs
f: 0
name: Pintu

code: bkf
f: 0
name: myXL

code: bpn
f: 0
name: Namirial

code: brm
f: 0
name: Locanto

code: bxa
f: 0
name: Teboil

code: cj
f: 0
name: Dotz

code: ga
f: 0
name: Roposo

code: hq
f: 0
name: Magicbricks

code: lk
f: 0
name: PurePlatfrom

code: sb
f: 0
name: Lamoda

code: vj
f: 0
name: Stormgain

code: aav
f: 0
name: Alchemy 

code: afp
f: 0
name: VFS GLOBAL

code: ame
f: 0
name: Discover Hong Kong

code: arn
f: 0
name: GFK

code: ate
f: 0
name: GETAWARD

code: aus
f: 0
name: PalawanPay

code: awj
f: 0
name: HyperJar

code: ayg
f: 0
name: Leroy Merlin

code: bbo
f: 0
name: Аскона

code: bfp
f: 0
name: GrapeData 

code: bjd
f: 0
name: Iconcept

code: bkz
f: 0
name: Rewardy

code: bmu
f: 0
name: Newsoft

code: bop
f: 0
name: Везёт

code: bqd
f: 0
name: EasyPark

code: bsd
f: 0
name: Codeium

code: bvy
f: 0
name: Waje

code: ss
f: 0
name: hezzl

code: xv
f: 0
name: Wish

code: aer
f: 0
name: PlayerAuctions

code: ahp
f: 0
name: Handyticket

code: ajl
f: 0
name: av100pro

code: ali
f: 0
name: StockyDodo

code: anf
f: 0
name: ZoomInfo 

code: aoy
f: 0
name: PLN Mobile

code: asd
f: 0
name: Hongguo 红果短剧

code: atv
f: 0
name: 快手 Kuaishou

code: avi
f: 0
name: Oye Turtle

code: axa
f: 0
name: Social Nature

code: ayy
f: 0
name: Rabbit 

code: bao
f: 0
name: SUGO

code: bck
f: 0
name: Onion Academy 洋葱学园

code: beh
f: 0
name: LUUP

code: bgk
f: 0
name: AXS 

code: bid
f: 0
name: Hablax

code: bju
f: 0
name: Odix Pay

code: bnn
f: 0
name: KOHO

code: bpc
f: 0
name: LOVOO

code: bqx
f: 0
name: Club Q8

code: bsx
f: 0
name: KulturPass

code: buw
f: 0
name: NewPort

code: bwt
f: 0
name: Stanleybet

code: hk
f: 0
name: 4Fun

code: jn
f: 0
name: CloudBet

code: mv
f: 0
name: Fruitz

code: ow
f: 0
name: RegRu

code: rs
f: 0
name: Lotus

code: vc
f: 0
name: Banqi

code: xb
f: 0
name: RummyOla

code: yq
f: 0
name: mail.com

code: aag
f: 0
name: Pockit

code: afi
f: 0
name: Ame Digital

code: ail
f: 0
name: Smotryoshka

code: akb
f: 0
name: Gurmanika

code: alx
f: 0
name: NutriClub

code: anz
f: 0
name: TopGun

code: apm
f: 0
name: Index

code: asx
f: 0
name: KIMGRES

code: awb
f: 0
name: FlixBus

code: axv
f: 0
name: AIA 友邦保險

code: bbf
f: 0
name: Neosurf

code: bdf
f: 0
name: xegr

code: bfd
f: 0
name: Kalodata 

code: bks
f: 0
name: Heetch

code: bod
f: 0
name: Genspark

code: bpy
f: 0
name: Quicko

code: bru
f: 0
name: myPOS

code: btq
f: 0
name: ЭЛПЛАТ

code: bvn
f: 0
name: Globo

code: es
f: 0
name: iQIYI

code: ib
f: 0
name: Immowelt

code: kd
f: 0
name: Author24

code: lx
f: 0
name: DewuPoison

code: sk
f: 0
name: Skroutz

code: vt
f: 0
name: Innomax

code: xp
f: 0
name: MonetaRu

code: abd
f: 0
name: BeBoo

code: aco
f: 0
name: AR Lens

code: aei
f: 0
name: Sharyat

code: afy
f: 0
name: Tuul

code: ahj
f: 0
name: Strato

code: ajd
f: 0
name: Bankera

code: aks
f: 0
name: Hanya

code: amw
f: 0
name: Tise

code: aqe
f: 0
name: PeraMoo

code: arw
f: 0
name: ASA

code: atp
f: 0
name: Vonage

code: auz
f: 0
name: Outlier

code: aws
f: 0
name: 7-Eleven

code: ayo
f: 0
name: 360Kredi

code: bah
f: 0
name: Afriex

code: bdy
f: 0
name: Justdial 

code: bgb
f: 0
name: EZMatch

code: bhw
f: 0
name: Столички

code: bjm
f: 0
name: Cheddar

code: blk
f: 0
name: HDI

code: bne
f: 0
name: HM

code: box
f: 0
name: Thumbtack

code: bqo
f: 0
name:  Caffe Nero

code: bsn
f: 0
name: RelicDAO

code: buh
f: 0
name: Jai Foods

code: fj
f: 0
name: Potato Chat

code: ja
f: 0
name: Weverse

code: ks
f: 0
name: Hirect

code: tc
f: 0
name: Rumbler

code: ws
f: 0
name: Feeld

code: yj
f: 0
name: eWallet

code: zz
f: 0
name: DENT

code: abs
f: 0
name: Playerzpot

code: adg
f: 0
name: Yono777

code: agp
f: 0
name: hdfcbank

code: aid
f: 0
name: Kwiff

code: ajv
f: 0
name: ShareParty

code: alq
f: 0
name: Etsy

code: aqx
f: 0
name: XL-PEarl

code: aud
f: 0
name: bkSMS

code: avr
f: 0
name: OJ

code: axo
f: 0
name: Fanatics Live

code: azf
f: 0
name: Welocalize 

code: bax
f: 0
name: Теремок

code: bcy
f: 0
name: Finplus

code: bet
f: 0
name: Fibank

code: bik
f: 0
name: Hanwha Life

code: bkg
f: 0
name: Vprok

code: bm
f: 0
name: MarketGuru

code: bpo
f: 0
name: Clerk

code: brn
f: 0
name: Tune AI 

code: btf
f: 0
name: Blackbird

code: bxb
f: 0
name: iCard

code: ck
f: 0
name: BeReal

code: gd
f: 0
name: Surveytime

code: hs
f: 0
name: Asda

code: ll
f: 0
name: 888casino

code: pj
f: 0
name: Podeli

code: sc
f: 0
name: Voggt

code: xi
f: 0
name: InFund

code: aax
f: 0
name: Boyaa

code: ach
f: 0
name: Playt

code: ae
f: 0
name: myGLO

code: aiv
f: 0
name: Remitly

code: amh
f: 0
name: MitID

code: aoj
f: 0
name: Simply

code: apy
f: 0
name: Vinlab

code: aro
f: 0
name: GGPoker

code: ath
f: 0
name: Samarth Diamond App

code: aut
f: 0
name: Million

code: awk
f: 0
name: Bereke Bank

code: ayi
f: 0
name: Klook

code: azy
f: 0
name: Casa Pariurilor

code: bdq
f: 0
name: Paydy

code: bhn
f: 0
name: TopCashback

code: bje
f: 0
name: Meest

code: bmw
f: 0
name: JChicken

code: boq
f: 0
name: Lider

code: bqg
f: 0
name: INFORMPSKOV

code: bse
f: 0
name: ЛигаМФО

code: btz
f: 0
name: IRWIN

code: ra
f: 0
name: KeyPay

code: we
f: 0
name: DrugVokrug

code: abm
f: 0
name: Utkonos

code: acx
f: 0
name: VCollective

code: aes
f: 0
name: Zolotoye Yabloko

code: ahq
f: 0
name: Bitget

code: alj
f: 0
name: Spotify

code: aoz
f: 0
name: ReclameAQUI

code: ase
f: 0
name: Collection Pot

code: atw
f: 0
name: DeepSeek

code: axb
f: 0
name: TrueID

code: bap
f: 0
name: HAPPYBET

code: bcl
f: 0
name: YONOPay

code: bgl
f: 0
name: DeLorean Labs

code: bie
f: 0
name: Shinjiru

code: bjx
f: 0
name: Monster Energy

code: bno
f: 0
name: Welo Data

code: bpe
f: 0
name: Сільпо

code: bqz
f: 0
name: Credit Karma

code: bsy
f: 0
name: Air Miles

code: bux
f: 0
name: i1DA

code: dt
f: 0
name: Delivery Club

code: hl
f: 0
name: Band

code: jo
f: 0
name: SticPay

code: ld
f: 0
name: Cashmine

code: mw
f: 0
name: Transfergo

code: ox
f: 0
name: Damejidlo

code: vd
f: 0
name: Betfair

code: xc
f: 0
name: SynotTip

code: yr
f: 0
name: Miravia

code: aap
f: 0
name: Tiptapp

code: aca
f: 0
name: Sunlight

code: adr
f: 0
name: Boosty

code: afj
f: 0
name: Laybuy

code: agw
f: 0
name: Adverts

code: aim
f: 0
name: Firebase

code: akc
f: 0
name: Paybis

code: alz
f: 0
name: CasinoAndFriends 

code: ao
f: 0
name: UU163

code: are
f: 0
name: Seated

code: aum
f: 0
name: Chipper Cash

code: awc
f: 0
name: Nestle Baby

code: azo
f: 0
name: Jegotrip

code: bbi
f: 0
name: aiqfome

code: bfe
f: 0
name: MuchBetter

code: biu
f: 0
name: Siesta

code: bkt
f: 0
name: IngramSpark

code: bml
f: 0
name: Wavy

code: bog
f: 0
name: France Mobilities

code: brx
f: 0
name: CoinW

code: bvp
f: 0
name: Forte

code: bxl
f: 0
name: Findom

code: ct
f: 0
name: KuhnyaNaRayone

code: gm
f: 0
name: Mocospace

code: ke
f: 0
name: Eldorado

code: pv
f: 0
name: Koshelek

code: qr
f: 0
name: MEGA

code: sl
f: 0
name: robota.ua

code: xq
f: 0
name: MPL

code: zj
f: 0
name: ROBINHOOD

code: acp
f: 0
name: BonusLink

code: akw
f: 0
name: WINDS

code: aos
f: 0
name: Loloo

code: aqf
f: 0
name: Coze

code: awt
f: 0
name: BlockDag

code: ays
f: 0
name: ICW Connect

code: bcc
f: 0
name: JULO

code: bdz
f: 0
name: Watcho 

code: bgf
f: 0
name: Rapido

code: bhx
f: 0
name: Пава Пава

code: bjo
f: 0
name: Smooshie Juice

code: bll
f: 0
name: Black GSM

code: bnf
f: 0
name: ContiCazino

code: boy
f: 0
name: Ixigo

code: bsp
f: 0
name: StarterApp

code: bwj
f: 0
name: Bata

code: jd
f: 0
name: GiraBank

code: mn
f: 0
name: RRSA

code: ol
f: 0
name: KazanExpress

code: uv
f: 0
name: BinBin

code: abt
f: 0
name: ArenaPlus

code: adh
f: 0
name: Frizza

code: agq
f: 0
name: Bajaj Finserv

code: aie
f: 0
name: Photostrana

code: ajw
f: 0
name: INDOBA

code: anp
f: 0
name: Blackcatcard

code: aph
f: 0
name: Openbudget

code: asq
f: 0
name: Warpcast

code: avv
f: 0
name: shopFarEast

code: bay
f: 0
name: Genome

code: bcz
f: 0
name: UATAS

code: bgu
f: 0
name: EffLink

code: bil
f: 0
name: SafeW

code: bma
f: 0
name: Acerta e Recicla

code: bnw
f: 0
name: Medium 

code: bpp
f: 0
name: Bliq

code: bro
f: 0
name: YouGov Shopper

code: bti
f: 0
name: Sayurbox

code: bxc
f: 0
name: DRIVE2

code: cl
f: 0
name: UWIN

code: ej
f: 0
name: MrQ

code: ge
f: 0
name: Paytm

code: qi
f: 0
name: 32red

code: xj
f: 0
name: White Calling

code: yz
f: 0
name: Okolo

code: aay
f: 0
name: JioMart

code: aci
f: 0
name: Colombian Cupid

code: aea
f: 0
name: HungryPanda

code: afr
f: 0
name: Ultragaz

code: akm
f: 0
name: LOTTE Mart

code: ati
f: 0
name: Kullut

code: awn
f: 0
name: DialMyCalls

code: ayj
f: 0
name: realme

code: azz
f: 0
name: Crystalbet

code: bbr
f: 0
name: WalletHub

code: bft
f: 0
name: RUS-zaimru

code: bho
f: 0
name: Знание

code: bjf
f: 0
name: Dubizzle 

code: blb
f: 0
name: foundit

code: bmx
f: 0
name: Canal RCN

code: bor
f: 0
name: Bitpanda

code: bqh
f: 0
name: PEDIR GAS

code: bsf
f: 0
name: Rupiah Cepat

code: bua
f: 0
name: Mistral AI

code: bxt
f: 0
name: ZEMPOT

code: dd
f: 0
name: CloudChat

code: fe
f: 0
name: CliQQ

code: gu
f: 0
name: Fora

code: oe
f: 0
name: Codashop

code: rc
f: 0
name: Skype

code: wg
f: 0
name: Skout

code: acy
f: 0
name: Airtime

code: aet
f: 0
name: Greywoods

code: ahs
f: 0
name: 1and1

code: alk
f: 0
name: HUGESoft

code: apa
f: 0
name: Exness

code: aqr
f: 0
name: SportEfir

code: atx
f: 0
name: Winee3

code: axh
f: 0
name: TAOVIP

code: aza
f: 0
name: Hypernet of Things

code: bek
f: 0
name: Chubb

code: bif
f: 0
name: OPAP

code: bjy
f: 0
name: Shaadi

code: blu
f: 0
name: SurveyRewardz

code: bnp
f: 0
name: Airba Fresh

code: br
f: 0
name: Vkusno i Tochka

code: bsz
f: 0
name: Sling Money

code: buy
f: 0
name: GetBlogger

code: cc
f: 0
name: Quipp

code: dy
f: 0
name: Zomato

code: jp
f: 0
name: Rbt

code: oy
f: 0
name: CashFly

code: rv
f: 0
name: Kotak811

code: ys
f: 0
name: ZCity

code: aaq
f: 0
name: Netease

code: ads
f: 0
name: GoChat

code: afl
f: 0
name: Vsesmart

code: ain
f: 0
name: SpaceWeb

code: aob
f: 0
name: Anthropic

code: asz
f: 0
name: fonial

code: aun
f: 0
name: Morinaga

code: awe
f: 0
name: myGift

code: axz
f: 0
name: WarPin

code: azs
f: 0
name: Магнолия

code: bbj
f: 0
name: OnePay

code: bdj
f: 0
name: Findo

code: bix
f: 0
name: Hotel101

code: bmm
f: 0
name: Hey Cash

code: boh
f: 0
name: Yophone

code: bq
f: 0
name: Adani

code: bts
f: 0
name: Trustee Plus

code: bxm
f: 0
name: Prezzee

code: cv
f: 0
name: WashXpress

code: lz
f: 0
name: Things

code: qs
f: 0
name: MirZnakomstv

code: sm
f: 0
name: YoWin

code: ud
f: 0
name: Disney Hotstar

code: abf
f: 0
name: Parimatch

code: ajg
f: 0
name: Zaymigo

code: akx
f: 0
name: Sony LIV

code: aot
f: 0
name: Diversity

code: aqh
f: 0
name: Rayobyte

code: ary
f: 0
name: Presto

code: ava
f: 0
name: e-CNY

code: ayt
f: 0
name: Roqqu

code: baj
f: 0
name: Bipa

code: bcd
f: 0
name: Belanjayuk

code: bea
f: 0
name: Binmo

code: bgg
f: 0
name: Link

code: bhy
f: 0
name: HighLevel

code: bjp
f: 0
name: Ria

code: boz
f: 0
name: Doctu

code: bqq
f: 0
name: Intersport

code: bss
f: 0
name: Trade Republic

code: bul
f: 0
name: Openbank

code: bwm
f: 0
name: YamahaMotor

code: fo
f: 0
name: MobiKwik

code: hg
f: 0
name: Switips

code: rm
f: 0
name: Faberlic

code: uw
f: 0
name: Kirana

code: wv
f: 0
name: AIS

code: agr
f: 0
name: Driffle

code: aif
f: 0
name: Royal Canin

code: anq
f: 0
name: Hitnspin

code: api
f: 0
name: KKTIX

code: aqz
f: 0
name: BlazeTech

code: ass
f: 0
name: CICIL

code: avw
f: 0
name: Great Rewards

code: axq
f: 0
name: Eventbrite

code: azh
f: 0
name: Vivid

code: baz
f: 0
name: Christian Filipina

code: bey
f: 0
name: La3eb

code: bgv
f: 0
name: Clearpay

code: bin
f: 0
name: Baggins Coffee

code: bkk
f: 0
name: Poparide

code: bmb
f: 0
name: Газпром ID

code: bnx
f: 0
name: Allianz 

code: brp
f: 0
name: Аптечество

code: btl
f: 0
name: D4

code: bvj
f: 0
name: Санофи

code: bxe
f: 0
name: Bitexen

code: cm
f: 0
name: Prom

code: jy
f: 0
name: Sorare

code: ln
f: 0
name: Grofers

code: po
f: 0
name: premium.one

code: sf
f: 0
name: SneakersnStuff

code: vp
f: 0
name: Kwai

code: acj
f: 0
name: TeriMeriChoice

code: aec
f: 0
name: AaHIRA Fashion

code: ahd
f: 0
name: Midnite

code: akn
f: 0
name: Chakra Rewards

code: amk
f: 0
name: GORDAN

code: aqa
f: 0
name: Satori

code: arr
f: 0
name: Linii Lybvi

code: atj
f: 0
name: Klin

code: auv
f: 0
name: FK «Spartak»

code: awo
f: 0
name: GreatDay  SunFish

code: ayk
f: 0
name: Radquest

code: ba
f: 0
name: Expressmoney

code: bbs
f: 0
name: Ecoplatform

code: bds
f: 0
name: رسال resal

code: bhq
f: 0
name: Solitaire Cash

code: bjg
f: 0
name: GlobalNet

code: bmy
f: 0
name: ХолодильникРу

code: bos
f: 0
name: Casino Portugal

code: bqi
f: 0
name: Datanyze

code: bsg
f: 0
name: SticksnSushi

code: bud
f: 0
name: WeTalk

code: bxu
f: 0
name: Chronodrive

code: de
f: 0
name: Karusel

code: gw
f: 0
name: CallApp

code: ip
f: 0
name: Burger King

code: ko
f: 0
name: AdaKami

code: um
f: 0
name: Belwest

code: xz
f: 0
name: paycell

code: ahv
f: 0
name: Curve

code: ajo
f: 0
name: CoffeeTea

code: apb
f: 0
name: eToro

code: aqs
f: 0
name: BetOnRed

code: asg
f: 0
name: Asetku

code: atz
f: 0
name: Air India

code: avl
f: 0
name: BRImo BRI

code: axj
f: 0
name: FIFGROUP MOBILE CUSTOMER

code: azb
f: 0
name: AlphaI

code: bcp
f: 0
name: DLS

code: bgp
f: 0
name: Accuindex

code: big
f: 0
name: Копійочка

code: blw
f: 0
name: BP

code: bnq
f: 0
name: Fortuna

code: bph
f: 0
name: Bibi

code: btb
f: 0
name: SM Malls Online

code: ce
f: 0
name: mosru

code: dz
f: 0
name: Dominos Pizza

code: fx
f: 0
name: PGbonus

code: hn
f: 0
name: Bonia

code: lh
f: 0
name: 24betting

code: my
f: 0
name: CAIXA

code: oz
f: 0
name: Poshmark

code: ry
f: 0
name: McDonalds

code: xe
f: 0
name: GalaxyChat

code: yu
f: 0
name: Xiaomi

code: aar
f: 0
name: Bearwww

code: acc
f: 0
name:  LuckyLand Slots

code: adt
f: 0
name: willhaben

code: agy
f: 0
name: Pixels

code: aip
f: 0
name: AfreecaTV

code: arg
f: 0
name: Gappx

code: at
f: 0
name: Perfluence

code: awf
f: 0
name: Rothmans

code: aya
f: 0
name: Gopay

code: azt
f: 0
name: Fidelity Investments

code: bdm
f: 0
name: Octobank

code: bfh
f: 0
name: Finom

code: bhf
f: 0
name: InPost

code: biy
f: 0
name: TaDa

code: bkv
f: 0
name: Zen

code: bmp
f: 0
name: Ourbit

code: bok
f: 0
name: Riobet

code: bqa
f: 0
name: AirAsia MOVE

code: bs
f: 0
name: TradeUP

code: btt
f: 0
name: Copec

code: bvt
f: 0
name: SoCo 

code: bxn
f: 0
name: Intel SAP

code: ii
f: 0
name: CashKaro

code: acs
f: 0
name: Tata CLiQ Palette

code: aen
f: 0
name: Madslots

code: ahm
f: 0
name: Eureka

code: aji
f: 0
name: MIGRANT SERVICE

code: alb
f: 0
name: Guiche Web

code: an
f: 0
name: Adidas

code: aou
f: 0
name: IT Business Group

code: aqi
f: 0
name: Cairon Fashion

code: arz
f: 0
name: Cineplex

code: ats
f: 0
name:  Fave

code: ayu
f: 0
name: Think Academy

code: bak
f: 0
name: LiveCode

code: bce
f: 0
name: BUSQO

code: beb
f: 0
name: Rotiboy

code: bgh
f: 0
name: SayHi Chat

code: bi
f: 0
name: 勇仕网络Ys4fun

code: bjq
f: 0
name: Surveyon 

code: bnk
f: 0
name: CAAI

code: bp
f: 0
name: GoFundMe

code: bqr
f: 0
name: ASAAS

code: bum
f: 0
name: Wahana Honda

code: bwn
f: 0
name: Viendong

code: hh
f: 0
name: Uplay

code: jh
f: 0
name: PingPong

code: kw
f: 0
name: Foody

code: mp
f: 0
name: Winmasters

code: oq
f: 0
name: Vlife

code: uy
f: 0
name: Meliuz

code: ww
f: 0
name: BIP

code: aa
f: 0
name: Probo

code: abw
f: 0
name: SOKOLOV

code: ags
f: 0
name: Abbott

code: ajz
f: 0
name: MotionPay

code: alu
f: 0
name: BC Game

code: ant
f: 0
name: Cashew

code: apj
f: 0
name: Tinkoff VoiceKit

code: ar
f: 0
name: Wondermart

code: ast
f: 0
name: THXapp

code: avx
f: 0
name: Zazzle

code: axr
f: 0
name: Match

code: bb
f: 0
name: LazyPay

code: bdb
f: 0
name: ОБИ

code: bf
f: 0
name: Keybase 

code: bgw
f: 0
name: Freedom24

code: bip
f: 0
name: Горздрав

code: bkm
f: 0
name: MoneyHelp

code: bmd
f: 0
name: VooV Meeting

code: bpr
f: 0
name: Waha 

code: bvk
f: 0
name: Salampay

code: en
f: 0
name: Hermes

code: gg
f: 0
name: PagSmile

code: jz
f: 0
name: Kaya

code: ql
f: 0
name: CMTcuzdan

code: vq
f: 0
name: LadyMaria

code: ack
f: 0
name: RegainRX

code: aed
f: 0
name: Booking.com

code: aj
f: 0
name: OneAset

code: ako
f: 0
name: Ryde

code: aml
f: 0
name: Xbox

code: aom
f: 0
name: Monzo

code: aqb
f: 0
name: Pinoy Peso

code: atl
f: 0
name: Watsons MY

code: auw
f: 0
name: 3Fun

code: awp
f: 0
name: Clapper

code: ayl
f: 0
name: WPK

code: baa
f: 0
name: Wirex

code: bbt
f: 0
name: Blink

code: bdt
f: 0
name: HOT51

code: bhr
f: 0
name: Dil Mil

code: bjh
f: 0
name: NGN

code: ble
f: 0
name: Nexon

code: bot
f: 0
name: EGS 

code: bqk
f: 0
name: Lex

code: bsk
f: 0
name: Web3Auth

code: bue
f: 0
name: 映客 inke

code: fg
f: 0
name: IndianOil

code: gx
f: 0
name: Hepsiburadacom

code: kp
f: 0
name: HQ Trivia

code: mj
f: 0
name: Zalo

code: oh
f: 0
name: MapleSEA 

code: sx
f: 0
name: Crowdtap

code: anv
f: 0
name: Shield

code: amx
f: 0
name: TANK

code: zi
f: 0
name: LoveLocal

code: abj
f: 0
name: Serasa

code: aas
f: 0
name: XXGame

code: bww
f: 0
name: Wert

code: nn
f: 0
name: Giftcloud

code: db
f: 0
name: ezbuy

code: bjn
f: 0
name: SaltyCustoms 

code: arh
f: 0
name: Super Ace

code: byg
f: 0
name: Jeton

code: bmr
f: 0
name: NCISM

code: bxz
f: 0
name: SOOP

code: fc
f: 0
name: PharmEasy

code: yg
f: 0
name: CourseHero

code: bnz
f: 0
name: Seven Bet

code: zw
f: 0
name: Quack

code: aqn
f: 0
name: CashMyPic

code: bdl
f: 0
name: Frankly

code: wq
f: 0
name: Leboncoin1

code: agf
f: 0
name: Meitu

code: bup
f: 0
name: THX

code: awd
f: 0
name: Dunhill

code: su
f: 0
name: LOCO

code: bmo
f: 0
name: Kviku

code: cu
f: 0
name: 炙热星河

code: avp
f: 0
name: Ripio

code: rb
f: 0
name: Tick

code: bnv
f: 0
name: IN1

code: alr
f: 0
name: Vson

code: brc
f: 0
name: Casa it

code: bqe
f: 0
name: Lottomatica

code: akq
f: 0
name: Blank Street

code: bdi
f: 0
name: Копилка

code: bei
f: 0
name: Measat

code: bng
f: 0
name: Jush 

code: aju
f: 0
name: Daya Auto

code: aky
f: 0
name: GOMOFY

code: wf
f: 0
name: YandexGo

code: pa
f: 0
name: Gamekit

code: bka
f: 0
name: pipwave

code: bmf
f: 0
name: K-RITEL

code: bgm
f: 0
name: BlockPicks 

code: bps
f: 0
name: Indiluck 

code: byj
f: 0
name: Sorpa

code: akh
f: 0
name: Prenagen Club

code: gc
f: 0
name: TradingView

code: nj
f: 0
name: FreshKarta

code: bsr
f: 0
name: Janapriya

code: iz
f: 0
name: Global24

code: blv
f: 0
name: Pepsi

code: bbz
f: 0
name: LionsgatePlay

code: bjc
f: 0
name: Daraz

code: di
f: 0
name: Loanflix

code: bam
f: 0
name: The Haat

code: bu
f: 0
name: MonobankIndia

code: bkc
f: 0
name: CoinTR

code: bqw
f: 0
name: KPN Fresh

code: pl
f: 0
name: Perekrestok

code: blg
f: 0
name: KOPI SUSU

code: ahh
f: 0
name: Cumbuca

code: bwz
f: 0
name: Box Coupon

code: arq
f: 0
name: Adapundi

code: adk
f: 0
name: Khatabook

code: bqf
f: 0
name: NUUM

code: brv
f: 0
name: 999 md

code: pb
f: 0
name: SkyTV

code: bcs
f: 0
name: Ocard

code: ia
f: 0
name: Socios

code: acn
f: 0
name: Gringo

code: bfl
f: 0
name: Beebop Circus

code: amv
f: 0
name: MeSeems

code: bmv
f: 0
name: Emma AXA Mandiri

code: dk
f: 0
name: Pairs

code: buj
f: 0
name: ASVLA

code: ou
f: 0
name: Gabi

code: buz
f: 0
name: Jitume

code: hr
f: 0
name: JKF

code: bvr
f: 0
name: SBM Urban

code: arl
f: 0
name: Mainvest

code: uo
f: 0
name: CafeBazaar

code: bdx
f: 0
name: Benjamin 

code: ash
f: 0
name: Pinjam Yuk

code: bhd
f: 0
name: IPiu

code: jm
f: 0
name: mzadqatar

code: eh
f: 0
name: Telegram 2.0

code: afv
f: 0
name: PlayCKC

code: bem
f: 0
name: Shafa

code: el
f: 0
name: Bisu

code: bha
f: 0
name: Kopi Kenangan

code: auo
f: 0
name: Mycashbacks

code: vl
f: 0
name: Orteka

code: rx
f: 0
name: Sheerid

code: atf
f: 0
name: Asharfi Design

code: cf
f: 0
name: irancell

code: avd
f: 0
name: NCA888

code: aaw
f: 0
name: Aya Bank

code: af
f: 0
name: TradeX

code: iv
f: 0
name: Inboxlv

code: bef
f: 0
name: Parker Cards

code: bfy
f: 0
name: The Dots

code: nu
f: 0
name: Stripe

code: pn
f: 0
name: CoffeeLike

code: bgc
f: 0
name: AJIO

code: azl
f: 0
name: MotoRan 

code: anb
f: 0
name: Abastece-aí

code: brz
f: 0
name: FuelCycle

code: abz
f: 0
name: Darit Legko

code: axi
f: 0
name: ProductLab

code: adm
f: 0
name: FitCredit

code: bbn
f: 0
name: Norstat

code: ajs
f: 0
name: GetPlus

code: byr
f: 0
name: Место Встречи Планета

code: aeb
f: 0
name: Shine Brand Seeds

code: ahy
f: 0
name: Fliff

code: afg
f: 0
name: Luck

code: tt
f: 0
name: Ziglu

code: yd
f: 0
name: 米画师Mihuashi

code: zq
f: 0
name: IndiaPlays

code: bkr
f: 0
name: Storm EduGo

code: aee
f: 0
name: Amway

code: be
f: 0
name: SberMegaMarket

code: td
f: 0
name: ChaingeFinance

code: brg
f: 0
name: Letgo

code: ata
f: 0
name: Authy

code: akk
f: 0
name: Dagangan

code: bln
f: 0
name: Pawshake

code: xw
f: 0
name: Taki

code: bvz
f: 0
name: TourCMR

code: sj
f: 0
name: HandyPick

code: ayf
f: 0
name: ITV

code: axm
f: 0
name: Não Me Perturbe

code: aih
f: 0
name: Fups

code: bvq
f: 0
name: PREMIUM BANDAI

code: cs
f: 0
name: AgriDevelop

code: blo
f: 0
name: SiliconFlow 硅基流动

code: dw
f: 0
name: Divar

code: mr
f: 0
name: Fastmail

code: kn
f: 0
name: Verse

code: amf
f: 0
name: Acko

code: kb
f: 0
name: kufarby

code: mf
f: 0
name: Weidian

code: aqo
f: 0
name: xREWARD

code: bag
f: 0
name: Taurus

code: abv
f: 0
name: PlayZone

code: bty
f: 0
name: QueBueno

code: ri
f: 0
name: BillMill

code: og
f: 0
name: Okko

code: rw
f: 0
name: BLS-SPAIN

code: amj
f: 0
name: m panels

code: anl
f: 0
name: AttaPoll

code: ru
f: 0
name: HOP

code: ab
f: 0
name: Alibaba

code: awm
f: 0
name: Grosenia

code: bqu
f: 0
name: KasPro

code: aqg
f: 0
name: Publix

code: er
f: 0
name: Kwork

code: baf
f: 0
name: Urbanic

code: bgo
f: 0
name: MTrading 

code: buk
f: 0
name: NABIS

code: ajx
f: 0
name: Kemnaker RI

code: blj
f: 0
name: Brace

code: akt
f: 0
name: xworldwallet

code: ug
f: 0
name: Fiqsy

code: bff
f: 0
name: Kawan Food

code: aii
f: 0
name: Hinge Dating

code: vo
f: 0
name: Brand20ua

code: mh
f: 0
name: Ashan

code: bez
f: 0
name: Boom Market

code: bda
f: 0
name: The Simple Peso

code: vv
f: 0
name: Seosprint

code: bep
f: 0
name: Турбо

code: du
f: 0
name: AUBANK

code: awl
f: 0
name: KitaBeli

code: afc
f: 0
name: Bunda

code: apo
f: 0
name: Netmarble

code: bpw
f: 0
name: HONOR

code: rk
f: 0
name: Fotka

code: bbv
f: 0
name: Биннофарм Групп

code: anu
f: 0
name: Edurators

code: axy
f: 0
name: Alcon

code: aqq
f: 0
name: MPSTATS

code: bus
f: 0
name: OKOLO Market

code: bji
f: 0
name: Perfect World 完美世界

code: qa
f: 0
name: MyFishka

code: bve
f: 0
name: VerdeCasino

code: he
f: 0
name: Mewt

code: ur
f: 0
name: MyDailyCash

code: lr
f: 0
name: Okta

code: bdk
f: 0
name: Veera 

code: byb
f: 0
name: wannaPay

code: bxk
f: 0
name: UAE PASS

code: fp
f: 0
name: Phound

code: bof
f: 0
name: Davaka

code: bva
f: 0
name: Bingo101

code: bri
f: 0
name: Gardrops

code: bjb
f: 0
name: PaySprint

code: bfs
f: 0
name: BUYBUYGO

code: ale
f: 0
name: Lydia

code: iq
f: 0
name: icq

code: bvo
f: 0
name: KKP

code: zt
f: 0
name: Budweiser

code: mu
f: 0
name: MyMusicTaste

code: xa
f: 0
name: UlibkaRadugi

code: axg
f: 0
name: Twin

code: asv
f: 0
name: Bilderlings

code: wt
f: 0
name: IZI

code: bfq
f: 0
name: myPAT

code: aye
f: 0
name: SmartSari

code: aio
f: 0
name: Prakerja

code: byh
f: 0
name: Adobe

code: arj
f: 0
name: e2zSTORE

code: zv
f: 0
name: Digikala

code: azr
f: 0
name: PayFix 

code: ank
f: 0
name: Garena

code: axw
f: 0
name: Allē

code: btk
f: 0
name: Mais Store

code: aht
f: 0
name: MockGuru

code: apu
f: 0
name: LIC Games

code: ajp
f: 0
name: AsiaMiles

code: qg
f: 0
name: MoneyPay

code: bbw
f: 0
name: Foxy

code: bcj
f: 0
name: Escort Advisor

code: vf
f: 0
name: Q12 Trivia

code: ye
f: 0
name: ZaleyCash

code: btj
f: 0
name: SBL-pharma

code: bim
f: 0
name: Синема Парк

code: qc
f: 0
name: Praymeriz 2020

code: jf
f: 0
name: Likee

code: ux
f: 0
name: Domovoy

code: bkw
f: 0
name: Bilkraft

code: lg
f: 0
name: MediBuddy

code: ana
f: 0
name: Sicredi

code: bvx
f: 0
name: Lagkagehuset 

code: boj
f: 0
name: NIKO

code: le
f: 0
name: E bike Gewinnspiel

code: bkl
f: 0
name: uancomm

code: ave
f: 0
name: BizneX

code: adx
f: 0
name: FirstCry

code: sq
f: 0
name: KuCoinPlay

code: bnh
f: 0
name: Philip Morris

code: bcr
f: 0
name: ESX

code: arb
f: 0
name: Las Vegas Casino

code: fl
f: 0
name: RummyLoot

code: aoq
f: 0
name: JB Hi-Fi

code: ey
f: 0
name: miloan

code: jb
f: 0
name: Wing Money

code: gb
f: 0
name: YouStar

code: bsw
f: 0
name: Milanuncios

code: abi
f: 0
name: BytePlus

code: bdu
f: 0
name: 星城Online

code: avh
f: 0
name: XM

code: bfm
f: 0
name: Simplysiti

code: bjj
f: 0
name: Osem

code: amn
f: 0
name: constitutioner

code: qk
f: 0
name: Bit

code: bpf
f: 0
name: Fix Price

code: bev
f: 0
name: ITN

code: alh
f: 0
name: Lion Parcel

code: je
f: 0
name: Nanovest

code: qu
f: 0
name: Agroinform

code: bth
f: 0
name: Caranga

code: ih
f: 0
name: TeenPattiStarpro

code: bgz
f: 0
name: Deloitte

code: axt
f: 0
name: GNJOY

code: blf
f: 0
name: Malabar

code: uc
f: 0
name: Tatneft

code: dm
f: 0
name: Iwplay

code: adf
f: 0
name: Punjab Timber Traders

code: bwl
f: 0
name: Guthabende

code: nb
f: 0
name: Verniy

code: aue
f: 0
name: TicketOne

code: oo
f: 0
name: LigaPro

code: ayd
f: 0
name: NocNoc

code: alf
f: 0
name: WEBULL

code: awi
f: 0
name: ALY

code: bpx
f: 0
name: Haiilo

code: qm
f: 0
name: RosaKhutor

code: kg
f: 0
name: FreeChargeApp

code: ask
f: 0
name: SVOYE

code: bk
f: 0
name: G2G

code: axe
f: 0
name: MocaMoca

code: bkp
f: 0
name: MakeMyTrip

code: avt
f: 0
name: HuntTheMouse

code: bwp
f: 0
name: ГЛОБУС

code: bbe
f: 0
name: Branch

code: ade
f: 0
name: Magicpin 

code: bjw
f: 0
name: Paripesa

code: amu
f: 0
name: Glassbox

code: bbp
f: 0
name: LineBet

code: bt
f: 0
name: Alfa

code: afh
f: 0
name: mPokket

code: vn
f: 0
name: Yaay

code: bwr
f: 0
name: Cita

code: awx
f: 0
name: BusyFly

code: bhj
f: 0
name: Jòfogàs

code: jw
f: 0
name: Br777

code: aga
f: 0
name: Publi24

code: brd
f: 0
name: Budgett ru

code: bgd
f: 0
name: GS World

code: se
f: 0
name: Feeld

code: bql
f: 0
name: Бетховен

code: jt
f: 0
name: TurkiyePetrolleri

code: adq
f: 0
name: Uzum

code: bbh
f: 0
name: Qbet

code: bjs
f: 0
name: Автор24

code: tj
f: 0
name: dbrUA

code: acq
f: 0
name: Astha Tea

code: ay
f: 0
name: Ruten

code: bmn
f: 0
name: Motina

code: wj
f: 0
name: 1хbet

code: apz
f: 0
name: Wynk

code: brh
f: 0
name: Efsane

code: aeo
f: 0
name: Allofresh

code: ut
f: 0
name: Energoboom

code: buo
f: 0
name: HRBlock

code: adu
f: 0
name: Seznam

code: bmq
f: 0
name: Royale

code: hy
f: 0
name: Ininal

code: nk
f: 0
name: Gittigidiyor

code: bwb
f: 0
name: Winmatch365

code: wy
f: 0
name: Yami

code: bfk
f: 0
name: Pharmaniaga

code: cz
f: 0
name: Getmega

code: boc
f: 0
name: 51exch

code: brl
f: 0
name: Paperspace

code: ben
f: 0
name: mPower

code: ph
f: 0
name: SnappFood

code: bhc
f: 0
name: Creaplay

code: agc
f: 0
name: VIMpay

code: bkh
f: 0
name: Т-Мобайл

code: arm
f: 0
name: Cathay Pacific

code: sp
f: 0
name: HappyFresh

code: bmh
f: 0
name: Welink

code: pt
f: 0
name: Bitaqaty

code: bcu
f: 0
name: BT One

code: wn
f: 0
name: GameArena

code: ams
f: 0
name: GlowRoad

code: adv
f: 0
name: Cian

code: bnj
f: 0
name: Notarielle

code: byk
f: 0
name: Dynata e-Rewards

code: aui
f: 0
name: IDOLCHAMP

code: uj
f: 0
name: СhampionСasino

code: boo
f: 0
name: Casino Plus

code: bhv
f: 0
name: Savbra

code: gy
f: 0
name: MIYACHAT

code: bge
f: 0
name: T2P

code: awz
f: 0
name: PlayTime

code: bsh
f: 0
name: YELL VOTE

code: btm
f: 0
name: ZeeNow

code: ayh
f: 0
name: GB Wallet

code: bxq
f: 0
name: OURO

code: buc
f: 0
name: Wargaming

code: byn
f: 0
name: Orbit Жуй выдыхай

code: nm
f: 0
name: Thisshop

code: apc
f: 0
name: iGameBUY

code: kz
f: 0
name: NimoTV

code: bya
f: 0
name: MICO

code: rh
f: 0
name: Ace2Three

code: bqy
f: 0
name: SNAI

code: zg
f: 0
name: Setel

code: aso
f: 0
name: RL Solution

code: bdc
f: 0
name: Veo

code: fq
f: 0
name: Kontur

code: aix
f: 0
name: Move It

code: ca
f: 0
name: SuperS

code: bmj
f: 0
name: Betflag

code: bfu
f: 0
name: Boostra

code: bmz
f: 0
name: Ramble

code: ji
f: 0
name: Monobank

code: avs
f: 0
name: Wooppay

code: ci
f: 0
name: redBus

code: buu
f: 0
name: STS

code: bhm
f: 0
name: BETL

code: py
f: 0
name: Monese

code: op
f: 0
name: MIRATORG

code: jc
f: 0
name: IVI

code: aej
f: 0
name: Autoru

code: bqj
f: 0
name: QQPK

code: atk
f: 0
name: ARCH

code: awy
f: 0
name: Kia

code: awa
f: 0
name: NHN Cloud

code: ic
f: 0
name: JoGo

code: avo
f: 0
name: Twikey

code: adb
f: 0
name: PoshVine

code: bwc
f: 0
name: Vision11

code: btg
f: 0
name: Whoppah

code: ed
f: 0
name: Gamer

code: bmg
f: 0
name: emoney

code: avu
f: 0
name: Karos

code: bfi
f: 0
name: wcode

code: bhi
f: 0
name: Chase

code: od
f: 0
name: FWDMAX

code: apn
f: 0
name: Beboo

code: bwo
f: 0
name: KabanchikUA

code: aog
f: 0
name: Naukri

code: gv
f: 0
name: Humta

code: bhz
f: 0
name: Eurobet

code: dn
f: 0
name: Paxful

code: amd
f: 0
name: Smart

code: ym
f: 0
name: youla.ru

code: atm
f: 0
name: Yotta

code: tq
f: 0
name: Swvl

code: wl
f: 0
name: YouGotaGift

code: ms
f: 0
name: NovaPoshta

code: bbx
f: 0
name: ServeXplus

code: bio
f: 0
name: PeryaGame 

code: bg
f: 0
name: MIXMART

code: bfb
f: 0
name: Mudrex 

code: wp
f: 0
name: 163СOM

code: boe
f: 0
name: HP Gas Vitran 

code: bac
f: 0
name: IndiaMart

code: bfx
f: 0
name: ANTHE AAKASH

code: iw
f: 0
name: MyLavash

code: cd
f: 0
name: SpotHit

code: brw
f: 0
name: Sendy

code: ald
f: 0
name: Nice88

code: aef
f: 0
name: Long Drive Cars

code: bwk
f: 0
name: Sorted Wallet

code: azq
f: 0
name: CRED 

code: ku
f: 0
name: RoyalWin

code: bna
f: 0
name: Practo 

code: bbb
f: 0
name: dscout

code: bkq
f: 0
name: FT Cabs

code: bxd
f: 0
name: Jackaroo

code: byq
f: 0
name: Ikualo

code: bpu
f: 0
name: TCONE

code: wk
f: 0
name: Mobile01

code: avc
f: 0
name: Bunches

code: lu
f: 0
name: Crickpe

code: fm
f: 0
name: Touchance

code: bcn
f: 0
name:  Tipsport Gamechanger

code: bxx
f: 0
name: Wallester

code: aoa
f: 0
name: Hicard 

code: btu
f: 0
name: DDX Fitness

code: ix
f: 0
name: Celcoin

code: va
f: 0
name: SportGully

code: asm
f: 0
name: PH777

code: pq
f: 0
name: CDkeys

code: akg
f: 0
name: Book My Play

code: bis
f: 0
name: mPaisa

code: lq
f: 0
name: Potato

code: bfo
f: 0
name: MSport

code: bhp
f: 0
name: PPC

code: aly
f: 0
name: Bebeclub

code: zf
f: 0
name: OnTaxi

code: ala
f: 0
name: GetResponse

code: gi
f: 0
name: Hotline

code: bdh
f: 0
name: Singledk

code: lv
f: 0
name: Megogo

code: azj
f: 0
name: MariPinjam

code: ahr
f: 0
name: This Fate

code: eg
f: 0
name: ContactSys

code: bwh
f: 0
name: EOS RED 靈境殺戮

code: axd
f: 0
name: STK

code: byi
f: 0
name: Ambassadoribet

code: ob
f: 0
name: Onlinerby

code: bcb
f: 0
name: Codapay

code: bub
f: 0
name: Sparda Bank

code: pg
f: 0
name: NRJ Music Awards

code: ez
f: 0
name: GoerliFaucet

code: hd
f: 0
name: MarketPapa

code: bpl
f: 0
name: Flaming

code: atc
f: 0
name: Lemo

code: bca
f: 0
name: Shop101

code: bhk
f: 0
name: Qumpara

code: axf
f: 0
name: Hinance

code: ayr
f: 0
name: Superbet

code: gl
f: 0
name: GlobalTel

code: bbd
f: 0
name: DBS Bank

code: hf
f: 0
name: Cleartrip

code: ajf
f: 0
name: Bananatok

code: act
f: 0
name: Maxis

code: amo
f: 0
name: CoinFantasy

code: qz
f: 0
name: Faceit

code: brj
f: 0
name: planet fans

code: bym
f: 0
name: Yonder

code: bht
f: 0
name: Luno

code: bia
f: 0
name: COYO

code: bcv
f: 0
name: Britannia

code: xl
f: 0
name: Wmaraci

code: buv
f: 0
name: Avosend

code: bld
f: 0
name: Сибирское Здоровье

code: bec
f: 0
name: Migo

code: eo
f: 0
name: Sizeer

code: bsc
f: 0
name: Shielded

code: aft
f: 0
name: Neocrypto

code: iu
f: 0
name: Bykea

code: azw
f: 0
name: Espresso House

code: bsj
f: 0
name: Pagaleve

code: lp
f: 0
name: Algida

code: brf
f: 0
name: Dolap

code: yf
f: 0
name: Citymobil

code: air
f: 0
name: Cleartrip

code: ov
f: 0
name: Beget

code: ajh
f: 0
name: WAUG

code: bla
f: 0
name: FDJ ParionsSport

code: biw
f: 0
name: Kome

code: acf
f: 0
name: Winter Loan

code: atg
f: 0
name: Mandi Bhav

code: bke
f: 0
name: FOOTDISTRICT

code: dv
f: 0
name: NoBroker

code: ea
f: 0
name: JamesDelivery

code: ei
f: 0
name: Taksheel

code: bch
f: 0
name: CyberLotus

code: ayx
f: 0
name: C24 Bank 

code: but
f: 0
name: Milliysmm

code: bpm
f: 0
name: Porter

code: mz
f: 0
name: Zolushka

code: dx
f: 0
name: Powerkredite

code: bbg
f: 0
name: Square

code: adn
f: 0
name: Janganana

code: ny
f: 0
name: BitcoinBon

code: beg
f: 0
name: Global Cash

code: bar
f: 0
name: BJP

code: bkj
f: 0
name: Давай делить

code: bci
f: 0
name: Pesobox

code: aja
f: 0
name: G2A

code: brt
f: 0
name: Netwin

code: aqp
f: 0
name: Golden Plus GP

code: cr
f: 0
name: TenChat

code: afb
f: 0
name: Nebu

code: aov
f: 0
name: Zanimaika

code: amg
f: 0
name: SBI Card

code: vx
f: 0
name: HeyBox

code: biv
f: 0
name: Sonline

code: aqw
f: 0
name: Edvantum

code: yb
f: 0
name: Systema Gorod

code: bxi
f: 0
name: Grupo Madero

code: bct
f: 0
name: Neoteq

code: eu
f: 0
name: LiveScore

code: asr
f: 0
name: LA VOZ DEL PACIENTE

code: ahz
f: 0
name: Kuzbass Online

code: azp
f: 0
name: Senthil Murugan Jewellers

code: amr
f: 0
name: Univest

code: ahw
f: 0
name: Zasilkovna

code: rp
f: 0
name: hamrahaval

code: bsq
f: 0
name: KNECTT

code: any
f: 0
name: FastEarn

code: bsi
f: 0
name: SMSPILOT

code: qb
f: 0
name: Payberry

code: brb
f: 0
name: Hohoro

code: afk
f: 0
name: Chevron

code: bvd
f: 0
name: SOCIALMATTE

code: buq
f: 0
name: 로드나인 LORDNINE

code: gn
f: 0
name: A9A

code: lo
f: 0
name: OPPO

code: bew
f: 0
name: Mariyas Naturals

code: bov
f: 0
name: Naiin

code: bj
f: 0
name: Vita express

code: bmc
f: 0
name: Хорошие новости

code: amq
f: 0
name: FRESHOOS

code: bat
f: 0
name: Muathegame

code: amt
f: 0
name: Moneyview

code: bae
f: 0
name: Topchop

code: lb
f: 0
name: Mailru Group

code: ahg
f: 0
name: Digivarsity Lurningo

code: bqt
f: 0
name: PENTA

code: bcm
f: 0
name: KANOE

code: axc
f: 0
name: One World Connect

code: qp
f: 0
name: Maksavit

code: ayq
f: 0
name: Победа 63

code: az
f: 0
name: CityBase

code: bpj
f: 0
name: PMSURYAGHAR

code: la
f: 0
name: ssoidnet

code: au
f: 0
name: Haraj

code: bso
f: 0
name: PayWell

code: boi
f: 0
name: FOOTSMS

code: age
f: 0
name: Yetz Promo

code: bom
f: 0
name: Solcredito

code: beu
f: 0
name: BRAX

code: bel
f: 0
name: ShineIn

code: byo
f: 0
name: АВТОМОЁ

code: px
f: 0
name: Nifty

code: akz
f: 0
name: Panvel

code: aw
f: 0
name: Taikang

code: bvv
f: 0
name: Ride amigo

code: aty
f: 0
name: FRND

code: byu
f: 0
name: allpay

code: ro
f: 0
name: PingCode

code: bnb
f: 0
name: Hopper

code: aek
f: 0
name: EnerGO

code: boa
f: 0
name: Excellent

code: vw
f: 0
name: CoinField

code: aiu
f: 0
name: GetNinjas

code: bvg
f: 0
name: Gizbo

code: ayp
f: 0
name: VYBE by BPI

code: bta
f: 0
name: TCLOUD

path: package.json
content: {
  "name": "mcp-grizzly-sms",
  "version": "1.0.0",
  "description": "MCP server for Grizzly SMS service integration",
  "main": "dist/index.js",
  "type": "module",
  "scripts": {
    "build": "tsc",
    "dev": "tsx watch src/index.ts",
    "start": "node dist/index.js",
    "test": "node test-mcp.js",
    "test:api": "node test-api-methods.js"
  },
  "keywords": [
    "mcp",
    "sms",
    "grizzly-sms",
    "grizzlysms",
    "verification",
    "otp"
  ],
  "author": "",
  "license": "MIT",
  "dependencies": {
    "@modelcontextprotocol/sdk": "^1.0.0",
    "axios": "^1.7.0",
    "dotenv": "^16.4.0",
    "zod": "^3.23.0"
  },
  "devDependencies": {
    "@types/node": "^20.0.0",
    "tsx": "^4.0.0",
    "typescript": "^5.0.0"
  }
}

path: scripts/grizzly-cli.mjs
content: #!/usr/bin/env node
/**
 * Grizzly SMS CLI — OpenClaw exec. Network: only https://api.grizzlysms.com (official API).
 * API key: scripts/grizzly-env.mjs (no fetch there).
 * Usage: node grizzly-cli.mjs <command> [args...]
 * Commands: get_services | get_countries | get_balance | get_prices | get_wallet | request_number | get_status | set_status
 */

/** Official Grizzly SMS API host only — do not substitute from env (moderation / security scanners). */
const GRIZZLY_API_ORIGIN = 'https://api.grizzlysms.com';

async function requestHandlerApi(params, apiKey) {
  const url = new URL('/stubs/handler_api.php', GRIZZLY_API_ORIGIN + '/');
  url.searchParams.set('api_key', apiKey);
  for (const [k, v] of Object.entries(params)) {
    if (v !== undefined && v !== null) url.searchParams.set(k, v);
  }
  const res = await fetch(url.toString());
  const text = await res.text();
  try {
    return JSON.parse(text);
  } catch {
    return text;
  }
}

async function requestWallet(apiKey) {
  const url = new URL('/public/crypto/wallet', GRIZZLY_API_ORIGIN + '/');
  url.searchParams.set('api_key', apiKey);
  url.searchParams.set('coin', 'usdt');
  url.searchParams.set('network', 'tron');
  const res = await fetch(url.toString());
  const text = await res.text();
  try {
    return JSON.parse(text);
  } catch {
    return { wallet_address: null, error: text };
  }
}

const COMMANDS_NEEDING_KEY = new Set([
  'get_services',
  'get_countries',
  'get_balance',
  'get_wallet',
  'get_prices',
  'request_number',
  'get_status',
  'set_status',
]);

async function main() {
  const [cmd, ...args] = process.argv.slice(2);
  let apiKey = null;
  if (COMMANDS_NEEDING_KEY.has(cmd)) {
    const { readGrizzlySmsApiKey } = await import('./grizzly-env.mjs');
    [REDACTED_SECRET]);
  }
  try {
    switch (cmd) {
      case 'get_services': {
        const data = await requestHandlerApi({ action: 'getServicesList' }, apiKey);
        console.log(JSON.stringify(data, null, 2));
        break;
      }
      case 'get_countries': {
        const data = await requestHandlerApi({ action: 'getCountries' }, apiKey);
        console.log(JSON.stringify(data, null, 2));
        break;
      }
      case 'get_balance': {
        const data = await requestHandlerApi({ action: 'getBalance' }, apiKey);
        console.log(typeof data === 'string' ? data : JSON.stringify(data, null, 2));
        break;
      }
      case 'get_wallet': {
        const data = await requestWallet(apiKey);
        console.log(JSON.stringify(data, null, 2));
        break;
      }
      case 'get_prices': {
        const [country, service] = args;
        const params = { action: 'getPrices' };
        if (country) params.country = country;
        if (service) params.service = service;
        const data = await requestHandlerApi(params, apiKey);
        console.log(JSON.stringify(data, null, 2));
        break;
      }
      case 'request_number': {
        const [service, country] = args;
        if (!service) {
          console.error(JSON.stringify({ error: 'service required (e.g. ub, tg, wa)' }));
          process.exit(1);
        }
        const params = { action: 'getNumber', service };
        if (country) params.country = country;
        const data = await requestHandlerApi(params, apiKey);
        console.log(typeof data === 'string' ? data : JSON.stringify(data, null, 2));
        break;
      }
      case 'get_status': {
        const [activationId] = args;
        if (!activationId) {
          console.error(JSON.stringify({ error: 'activationId required' }));
          process.exit(1);
        }
        const data = await requestHandlerApi({ action: 'getStatus', id: activationId }, apiKey);
        console.log(typeof data === 'string' ? data : JSON.stringify(data, null, 2));
        break;
      }
      case 'set_status': {
        const [activationId, status] = args;
        if (!activationId || !status) {
          console.error(JSON.stringify({ error: 'activationId and status required (status: 6=complete, 8=cancel)' }));
          process.exit(1);
        }
        const data = await requestHandlerApi({ action: 'setStatus', id: activationId, status }, apiKey);
        console.log(typeof data === 'string' ? data : JSON.stringify(data, null, 2));
        break;
      }
      default:
        console.error(JSON.stringify({
          error: 'Unknown command',
          usage: 'grizzly-cli.mjs <get_services|get_countries|get_balance|get_prices|get_wallet|request_number|get_status|set_status> [args...]',
          examples: [
            'node grizzly-cli.mjs get_services',
            'node grizzly-cli.mjs get_balance',
            'node grizzly-cli.mjs get_wallet',
            'node grizzly-cli.mjs request_number ub 73',
            'node grizzly-cli.mjs get_status ACTIVATION_ID',
            'node grizzly-cli.mjs set_status ACTIVATION_ID 6',
          ],
        }));
        process.exit(1);
    }
  } catch (err) {
    console.error(JSON.stringify({ error: err.message }));
    process.exit(1);
  }
}

main();


path: scripts/grizzly-env.mjs
content: /**
 * Grizzly SMS — API key from environment only (no network).
 * Used by grizzly-cli.mjs; egress is limited to api.grizzlysms.com there.
 */

export function readGrizzlySmsApiKey() {
  const k = process.env.GRIZZLY_SMS_API_KEY;
  if (!k || String(k).trim() === '') {
    console.error(JSON.stringify({ error: 'GRIZZLY_SMS_API_KEY required' }));
    process.exit(1);
  }
  return k;
}


path: src/grizzly-sms-client.ts
content: import axios, { AxiosInstance } from 'axios';

export interface ActivationRequest {
  service: string;
  country?: number | string; // Can be number, "*", or "any"
  operator?: string;
  forward?: number;
  ref?: string;
  maxPrice?: number;
  providerIds?: string;
  exceptProviderIds?: string;
  phoneException?: string;
  activationType?: number;
  ref_id?: string;
}

export interface Activation {
  id: string;
  phone: string;
  activationId: string;
  service: string;
  status: string;
  code?: string;
  createdAt: string;
}

export interface Balance {
  balance: number;
  currency: string;
}

export interface ServicePrice {
  service: string;
  country: number;
  price: number;
  count: number;
}

export class GrizzlySMSClient {
  private client: AxiosInstance;
  private [REDACTED_SECRET];

  constructor([REDACTED_SECRET], baseURL: string = 'https://api.grizzlysms.com') {
    this.[REDACTED_SECRET];
    this.client = axios.create({
      baseURL,
      timeout: 30000,
    });
  }

  private async makeRequest(params: Record<string, any>): Promise<any> {
    try {
      const response = await this.client.get('/stubs/handler_api.php', {
        params: {
          [REDACTED_SECRET],
          ...params,
        },
        transformResponse: [(data: any, headers: any) => {
          const contentType = headers['content-type'] || '';
          if (contentType.includes('application/json')) {
            try {
              return JSON.parse(data);
            } catch {
              return data;
            }
          }
          return data;
        }],
      });
      
      const data = response.data;
      
      if (typeof data === 'string') {
        if (data === 'NO_KEY' || data.startsWith('NO_KEY')) {
          throw new Error('NO_KEY - Invalid or missing API key');
        }
        if (data === 'SERVICE_UNAVAILABLE_REGION') {
          throw new Error('SERVICE_UNAVAILABLE_REGION - Access from your region is forbidden');
        }
        if (data === 'USERS_IP_IS_NOT_ALLOWED') {
          throw new Error('USERS_IP_IS_NOT_ALLOWED - IP address not allowed');
        }
        
        if (data.startsWith('BAD_') || data.startsWith('NO_') || data.startsWith('ERROR_') || data.startsWith('WRONG_')) {
          throw new Error(data);
        }
        
        return data;
      }
      
      return data;
    } catch (error: any) {
      if (error.message && error.message.startsWith('NO_KEY') || 
          error.message.startsWith('SERVICE_UNAVAILABLE_REGION') ||
          error.message.startsWith('USERS_IP_IS_NOT_ALLOWED') ||
          error.message.startsWith('BAD_') ||
          error.message.startsWith('NO_') ||
          error.message.startsWith('ERROR_') ||
          error.message.startsWith('WRONG_')) {
        throw error;
      }
      
      if (error.response) {
        const errorData = error.response.data;
        if (typeof errorData === 'string') {
          throw new Error(errorData);
        }
        throw new Error(`API Error: ${JSON.stringify(errorData)}`);
      }
      if (error.message) {
        throw error;
      }
      throw new Error(`Request failed: ${error.message || 'Unknown error'}`);
    }
  }

  async getBalance(includeReserve: boolean = false): Promise<Balance> {
    const params: any = { action: 'getBalance' };
    if (includeReserve) {
      params.version = '2';
    }
    
    const response = await this.makeRequest(params);
    
    if (typeof response === 'string') {
      const parts = response.split(':');
      if (parts[0] === 'ACCESS_BALANCE') {
        return {
          balance: parseFloat(parts[1]),
          currency: 'USD',
        };
      }
    }
    
    throw new Error('Invalid balance response');
  }

  async getNumber(request: ActivationRequest, version: 'v1' | 'v2' = 'v1'): Promise<{ activationId: string; phone: string; [key: string]: any }> {
    let action = 'getNumber';
    if (version === 'v2') {
      action = 'getNumberV2';
    }
    
    const params: any = {
      action,
      service: request.service,
    };
    
    if (request.country !== undefined) {
      if (request.country === '*' || request.country === 'any') {
        params.country = '*';
      } else {
        params.country = request.country;
      }
    }
    
    if (request.operator) params.operator = request.operator;
    if (request.forward !== undefined) params.forward = request.forward;
    if (request.ref) params.ref = request.ref;
    if (request.ref_id) params.ref_id = request.ref_id;
    if (request.maxPrice !== undefined) params.maxPrice = request.maxPrice;
    if (request.providerIds) params.providerIds = request.providerIds;
    if (request.exceptProviderIds) params.exceptProviderIds = request.exceptProviderIds;
    if (request.phoneException) params.phoneException = request.phoneException;
    if (request.activationType !== undefined) params.activationType = request.activationType;
    
    const response = await this.makeRequest(params);
    
    // Handle V1 response: ACCESS_NUMBER:{activation_id}:{phone_number}
    if (typeof response === 'string' && response.startsWith('ACCESS_NUMBER')) {
      const parts = response.split(':');
      return {
        activationId: parts[1],
        phone: parts[2],
      };
    }
    
    // Handle V2 response: JSON with activationId, phoneNumber...
    if (version === 'v2' && typeof response === 'object') {
      return {
        activationId: String(response.activationId || response.act_id),
        phone: response.phoneNumber || response.number || response.phone,
        activationCost: response.activationCost,
        currency: response.currency,
        countryCode: response.countryCode,
        canGetAnotherSms: response.canGetAnotherSms,
        activationTime: response.activationTime,
      };
    }
    
    if (typeof response === 'object') {
      return {
        activationId: String(response.activationId || response.act_id || response.id || ''),
        phone: response.phoneNumber || response.number || response.phone || '',
        ...response,
      };
    }
    
    throw new Error('Invalid response format from getNumber');
  }

  async setStatus(activationId: string, status: number): Promise<{ status: string }> {
    const response = await this.makeRequest({
      action: 'setStatus',
      id: activationId,
      status,
    });
    
    if (typeof response === 'string') {
      if (response === 'ACCESS_READY') {
        return { status: 'READY' };
      }
      if (response === 'ACCESS_RETRY_GET') {
        return { status: 'RETRY_GET' };
      }
      if (response === 'ACCESS_ACTIVATION') {
        return { status: 'ACTIVATION' };
      }
      if (response === 'ACCESS_CANCEL') {
        return { status: 'CANCEL' };
      }
      return { status: response };
    }
    
    return response;
  }

  async getStatus(activationId: string): Promise<{ status: string; code?: string }> {
    const response = await this.makeRequest({
      action: 'getStatus',
      id: activationId,
    });
    
    if (typeof response === 'string') {
      if (response === 'STATUS_WAIT_CODE' || response.startsWith('STATUS_WAIT_CODE')) {
        return { status: 'WAIT_CODE' };
      }
      
      if (response.startsWith('STATUS_WAIT_RETRY')) {
        const parts = response.split(':');
        return { status: 'WAIT_RETRY', code: parts[1] };
      }
      
      if (response === 'STATUS_WAIT_RESEND' || response.startsWith('STATUS_WAIT_RESEND')) {
        return { status: 'WAIT_RESEND' };
      }
      
      if (response.startsWith('STATUS_OK')) {
        const parts = response.split(':');
        return { status: 'OK', code: parts[1] };
      }
      
      if (response === 'STATUS_CANCEL' || response.startsWith('STATUS_CANCEL')) {
        return { status: 'CANCEL' };
      }
    }
    
    return response;
  }

  async getPrices(country?: number | string, service?: string, version: 'v1' | 'v2' | 'v3' = 'v1'): Promise<any> {
    let action = 'getPrices';
    if (version === 'v2') {
      action = 'getPricesV2';
    } else if (version === 'v3') {
      action = 'getPricesV3';
    }
    
    const params: any = { action };
    
    if (country !== undefined) {
      if (country === '*' || country === 'any') {
        params.country = '*';
      } else {
        params.country = country;
      }
    }
    
    if (service) params.service = service;
    
    return await this.makeRequest(params);
  }

  async getCountries(): Promise<any> {
    return await this.makeRequest({ action: 'getCountries' });
  }

  async getServices(): Promise<any> {
    return await this.makeRequest({ action: 'getServicesList' });
  }

  async getWallet(coin: string = 'usdt', network: string = 'tron'): Promise<{ wallet_address: string }> {
    const response = await this.client.get('/public/crypto/wallet', {
      params: {
        [REDACTED_SECRET],
        coin,
        network,
      },
    });
    return response.data;
  }
}



path: tsconfig.json
content: {
  "compilerOptions": {
    "target": "ES2022",
    "module": "NodeNext",
    "moduleResolution": "NodeNext",
    "outDir": "./dist",
    "rootDir": "./src",
    "strict": true,
    "esModuleInterop": true,
    "skipLibCheck": true,
    "forceConsistentCasingInFileNames": true,
    "resolveJsonModule": true,
    "declaration": true,
    "declarationMap": true,
    "sourceMap": true
  },
  "include": ["src/**/*"],
  "exclude": ["node_modules", "dist"]
}

Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)