API Meowx
Расширенный API с загрузками, продажами, платежами и дополнительными токенами: документация API v2 →. Эта страница описывает сохранённый API v1.
Ищите товары, покупайте за баланс и получайте оплаченные файлы из своей программы.
Загрузка и продажа аккаунтов — API v2
Для размещения своих VK-аккаунтов используйте POST /api/v2/accounts/sell или массовую загрузку POST /api/v2/account_uploads. В API v1 этих методов нет. Открыть инструкцию по продаже: разрешения, формат запроса и результаты загрузки →
Telegram tdata сейчас загружается через сайт; API-загрузка поддерживает VK.
1. Токен и доступ
Откройте «Мой профиль» → «Настройки» → «API-токен». Личный токен создаётся автоматически при первом открытии настроек API. Его можно показать, скрыть, скопировать, отключить и заменить. Замена сразу отзывает старый токен.
Передавайте его только заголовком Authorization: Bearer ВАШ_API_ТОКЕН. Для покупок и файлов включите «Разрешить покупки за баланс и скачивание купленных файлов». Токен даёт доступ только к вашему аккаунту. Не публикуйте его в исходном коде или браузерном коде стороннего сайта.
Базовый адрес: https://chernovik.shop/api/v1. JSON-запросы используют Content-Type: application/json. Суммы с суффиксом _cents указаны в копейках: 6500 означает 65 ₽; unitPrice — строка в рублях, например "65.00".
curl 'https://chernovik.shop/api/v1/catalog?sort=cheap&page=1' \ -H 'Authorization: Bearer ВАШ_API_ТОКЕН'
2. Доступные запросы
| Метод | Путь | Назначение | Доступ |
|---|---|---|---|
GET | /me | ID, имя и настройки доступа вашего токена | Просмотр |
GET | /balance | Доступный баланс и резерв в копейках | Просмотр |
GET | /categories | Категории и доступные страны/города | Просмотр |
GET | /filters | Значения и описание фильтров | Просмотр |
GET | /catalog | Каталог с фильтрами и страницами | Просмотр |
GET | /products/{id} | Публичная карточка доступного товара | Просмотр |
GET | /users/{id} | Публичный профиль продавца | Просмотр |
POST | /quote | Подбор до 10 аккаунтов по фильтрам | Покупки и файлы |
POST | /checkouts | Покупка: резерв средств и проверка | Покупки и файлы |
GET | /checkouts/{key} | Статус проверки, возвратов и подтверждения | Просмотр |
POST | /checkouts/{key}/decision | Оплата аккаунтов или отмена покупки, ожидающей подтверждения | Покупки и файлы |
GET | /orders | Ваши заказы: status=purchased/checking/refunded; category=VK/Telegram | Просмотр |
GET | /purchases/accounts | Купленные аккаунты по одному, с ID для выбора; category=VK/Telegram | Просмотр |
GET | /purchases/download | Скачать до 100 выбранных аккаунтов одним файлом: ids=1,2,3 | Покупки и файлы |
GET | /orders/{id} | Детали вашей покупки и файлы | Покупки и файлы |
GET | /checkouts/{key}/download | Скачать оплаченные файлы одной покупки | Покупки и файлы |
GET | /orders/{id}/download | Скачать оплаченные файлы заказа | Покупки и файлы |
GET | /units/{id}/download | Скачать один оплаченный файл | Покупки и файлы |
В ответе каталога: products, total, page, pageSize. Профиль содержит только публичные сведения. GET /orders принимает page=1…100 и status=purchased|checking|refunded, category=VK|Telegram, по 40 заказов на странице.
3. Полный сценарий покупки
- Выберите товары через
GET /catalogлибоPOST /quoteс телом{"query":"category=1&gender=female&sort=cheap","quantity":3}. Ответ quote содержитitems, суммуtotal_centsи балансavailable_cents. Цена и наличие проверяются снова при покупке. - Сгенерируйте UUID v4 и отправьте
POST /checkoutsсkey,items, необязательнымиbulkиlabel. До 10 аккаунтов на запрос. Ответ 201 содержитorders, batchId, checking. Сохраните отправленныйkey. - Опрашивайте
GET /checkouts/ВАШ_KEYраз в 3–5 секунд. Ответ содержитorders, checks, checking, progress, totals, confirmation. Во время проверки средства зарезервированы. - Если
confirmation.stateравенpending, отправьтеPOST /checkouts/ВАШ_KEY/decisionс{"decision":"accept"}, чтобы оплатить валидные, либо{"decision":"cancel"}, чтобы отказаться и вернуть резерв. До решения валидные файлы закрыты. Срок указан вconfirmation.expires_at. - Скачайте
GET /checkouts/ВАШ_KEY/download?cookieFormat=json-base64. Для VK это TXT с одной Base64 JSON-строкой на аккаунт.cookieFormat=netscape-base64выдаёт по одной Base64-строке полного текста Netscape на аккаунт: с доменом, путём, HttpOnly, secure и сроком действия.cookieFormat=netscapeсохраняет обычный Netscape. Telegram выдаётся как tdata ZIP; смешанная покупка — общий ZIP. ЗаголовокContent-Dispositionсодержит имя файла.
Если вход в Telegram подтверждён, но @SpamBot не сообщил статус ограничений, аккаунт помечается «Спамблок неизвестен». В ответе проверки будет spamBlockStatus: "unknown", а confirmation.unknown_spam_count покажет число таких аккаунтов. Покупка ждёт вашего решения даже при успешной авторизации всех аккаунтов; до принятия решения файлы закрыты, деньги остаются в резерве. Для подтверждения используйте тот же метод /decision. Фильтр spamBlock=0 исключает неизвестные статусы.
curl -X POST 'https://chernovik.shop/api/v1/checkouts' \
-H 'Authorization: Bearer ВАШ_API_ТОКЕН' \
-H 'Content-Type: application/json' \
--data '{"key":"UUID_ДЛЯ_ЭТОЙ_ПОКУПКИ","bulk":true,"items":[{"productId":123,"quantity":1,"unitPrice":"65.00"}]}' При сетевом сбое повторяйте покупку с тем же UUID и тем же составом. Повторный запрос не создаст второе списание; изменение состава с прежним UUID вернёт 409. Для новой покупки используйте новый UUID. Возвращённые и неоплаченные аккаунты нельзя скачать. Переданные ссылки downloadUrl из деталей заказа относятся к интерфейсу сайта; для программ используйте соответствующий /api/v1/units/ID/download с Bearer-токеном.
4. Выбор аккаунтов для скачивания
В интерфейсе «Мои покупки» есть отдельные категории VK и Telegram, чекбоксы аккаунтов и кнопка «Скачать выбранные». Через API доступен такой же выбор.
- Получите
GET /purchases/accounts?category=VK&page=1. Ответ:items, total, page, pageSize, по 40 аккаунтов. Каждая запись содержитidаккаунта,order_id,format,category, название товара, цену в копейках и дату покупки. Здесь только ваши оплаченные аккаунты; пароли и cookies в списке не передаются. Для Telegram используйтеcategory=Telegram, для всех — опустите параметр. - Выберите до 100 уникальных
items[].idи передайте их через запятую:GET /purchases/download?ids=101,102,103,104,105. Это ID отдельных аккаунтов, а не заказов. Разрешено выбрать аккаунты из разных заказов. - VK cookies по умолчанию выдаются одним TXT: одна JSON Base64-строка на аккаунт. Для Base64 от полного Netscape добавьте
cookieFormat=netscape-base64: одна строка на аккаунт. Для обычного Netscape используйтеcookieFormat=netscape. Telegram выдаётся одним ZIP с отдельными архивами tdata; смешанный набор — общий ZIP. Если хотя бы один выбранный аккаунт чужой, возвращён или недоступен, запрос целиком вернёт 404. Измените выбор после обновления списка.
curl "https://chernovik.shop/api/v1/purchases/download?ids=101,102,103,104,105" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -o selected-accounts.txt
Скачивание использует общую квоту: до пяти запросов в минуту. Перечень покупок и файлы не кешируются.
5. Фильтры каталога
GET /categories возвращает ID категорий и доступные значения стран и городов. GET /filters дополнительно возвращает описание параметров. Неизвестные и повторяющиеся параметры отклоняются.
| Параметр | Значения |
|---|---|
q | Поиск, до 160 символов |
category | ID категории из /categories |
seller | ID продавца; товары его профиля |
page | 1–100; 40 товаров на странице |
sort | newest, cheap, expensive, oldest, subscribers, idle |
country | Страна профиля VK; для Telegram используйте phoneCountry |
phoneCountry | Страна номера Telegram; принимается название страны с флагом или без него |
origin | Текстовый фильтр как в каталоге сайта |
city | Текстовый фильтр как в каталоге сайта |
fullName | Текстовый фильтр как в каталоге сайта |
saleLabel | Текстовый фильтр как в каталоге сайта |
gender | male, female, unknown; VK |
relation | 0–8 или unknown; семейное положение VK |
resale | 0 или 1 |
afterSpam | 0 или 1 |
minPrice | Цена в рублях, строка с точностью до копеек |
maxPrice | Цена в рублях, строка с точностью до копеек |
minAge | Неотрицательное целое; возраст аккаунта и отлёжка в днях |
maxAge | Неотрицательное целое; возраст аккаунта и отлёжка в днях |
minIdle | Неотрицательное целое; возраст аккаунта и отлёжка в днях |
maxIdle | Неотрицательное целое; возраст аккаунта и отлёжка в днях |
minStock | Неотрицательное целое; возраст аккаунта и отлёжка в днях |
maxStock | Неотрицательное целое; возраст аккаунта и отлёжка в днях |
registeredFrom | Дата регистрации от YYYY-MM-DD; известный день или весь известный месяц |
registeredTo | Дата регистрации до YYYY-MM-DD; для Telegram также подтверждённая граница по сообщению сервиса |
format | vk_cookies, vk_credentials, telegram_tdata |
checkedWithinDays | 1, 7, 30, 90 |
ids | До 100 ID товаров через запятую |
minProfileAge | Возраст профиля, лет — от |
maxProfileAge | Возраст профиля, лет — до |
minSubscribers | Подписчики — от |
maxSubscribers | Подписчики — до |
minFriends | Друзья — от |
maxFriends | Друзья — до |
minGroups | Группы — от |
maxGroups | Группы — до |
minDialogs | Диалоги — от |
maxDialogs | Диалоги — до |
minPhotos | Фотографии — от |
maxPhotos | Фотографии — до |
minAlbums | Альбомы — от |
maxAlbums | Альбомы — до |
minVideos | Видео — от |
maxVideos | Видео — до |
minAudios | Аудиозаписи — от |
maxAudios | Аудиозаписи — до |
minGifts | Подарки — от |
maxGifts | Подарки — до |
minContacts | Контакты — от |
maxContacts | Контакты — до |
minChannels | Каналы — от |
maxChannels | Каналы — до |
phoneSpecified | Телефон указан: 0, 1, unknown |
hasPhoto | Аватар: 0, 1, unknown |
hasUsername | Имя пользователя: 0, 1, unknown |
verified | Верификация: 0, 1, unknown |
vkDatingBanned | Бан в VK Знакомствах: 0, 1, unknown |
vkDatingProfileCreated | Анкета VK Знакомств: 0, 1, unknown |
twoFactor | 2FA: 0, 1, unknown |
premium | Telegram Premium: 0, 1, unknown |
spamBlock | Спамблок: 0, 1, unknown |
restricted | Ограничения Telegram: 0, 1, unknown |
Семейное положение VK: 0 — не указано, 1 — не женат/не замужем, 2 — встречается, 3 — помолвлен, 4 — женат/замужем, 5 — всё сложно, 6 — активный поиск, 7 — влюблён, 8 — гражданский брак. unknown означает, что платформа не передала данные.
6. Лимиты, кеш и ошибки
- 60 запросов в минуту на пользователя и два одновременно; на один IP — до 120 в минуту, с защитой от частых всплесков; замена токена лимиты не сбрасывает.
- До 5 новых покупок в минуту, до 10 аккаунтов за покупку и до 100 запрошенных аккаунтов в час на пользователя. Повторы уже созданной покупки с тем же UUID не расходуют новую квоту аккаунтов.
- Подбор: 15 запросов в минуту. Решение по покупке: 10 в минуту. Скачивание: 5 в минуту, до 1000 файлов и действующих ограничений размера выдачи сайта.
- Общие защитные лимиты: 1200 запросов в минуту, 24 одновременно и до 1000 запрошенных аккаунтов в час через API всего сервера.
- Каталог, карточки и публичные профили кешируются на сервере на 10 секунд, категории и значения фильтров — на 60 секунд. Баланс, покупки и файлы не кешируются. Наличие и цену перед покупкой всегда проверяем в БД.
- Тело запроса — до 8 КБ, строка параметров — до 4 КБ; не более 40 результатов на странице и 100 страниц. Запросы публичного каталога ограничены по времени и используют отдельный небольшой пул БД.
Успешные ответы содержат X-Request-ID, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset (Unix seconds). Для кешируемых методов есть X-API-Cache: HIT|MISS. Коды: 400 — параметры, 401 — токен, 403 — нет разрешения, 404 — не найдено, 409 — цена/наличие/повтор изменился, 413 — размер, 415 — Content-Type, 429 — лимит, 503 — занято или временно недоступно.
{"error":{"code":"rate_limited","message":"Лимит API исчерпан. Повторите запрос позже.","requestId":"..."}}При 429 и временном 503 учитывайте Retry-After, затем повторяйте с увеличением паузы. Ошибка после отправки покупки не доказывает, что она не создана: используйте тот же UUID и запрос статуса. В документации используются примеры, реальные ID и цены берите из каталога.
