Документация API | SteamSmm API для автоматизации

Документация SteamSmm API

Аутентификация

Все запросы к API требуют Bearer токен в заголовке Authorization.

Получение API токена

POST /api/token/generate
Content-Type: application/json

{
    "email": "ваш_email@example.com",
    "password": "ваш_пароль",
    "name": "Мой API ключ"
}
                                            
Ответ:
{
    "status": "success",
    "data": {
        "token": "ваш_токен_здесь",
        "token_id": 1,
        "name": "Мой API ключ",
        "created_at": "2024-01-01T12:00:00",
        "expires_at": "2025-01-01T12:00:00",
        "user": {
            "id": 1,
            "username": "username",
            "email": "email@example.com"
        }
    }
}
                                            

Использование токена

Добавляйте токен в заголовок Authorization:

Authorization: Bearer ваш_токен_здесь
                                            

Или передавайте в параметре запроса:

GET /api/user/balance?api_token=ваш_токен_здесь
                                            

Заказы

Расчет цены

POST /api/order/price
Authorization: Bearer ваш_токен
Content-Type: application/json

{
    "action_type": "comment",
    "quantity": 100
}
                                            
Доступные типы действий:
comment - Комментарии +rep
comment_rep - Комментарии -rep
like - Лайки на Workshop
dis - Дизлайки на Workshop
subscribe - Участники в группу
review - Лайки на обзоры

Создание заказа

POST /api/order/create
Authorization: Bearer ваш_токен
Content-Type: application/json

{
    "action_type": "comment",
    "quantity": 100,
    "target_link": "https://steamcommunity.com/id/username"
}
                                            

Внимание: Средства списываются с баланса сразу после создания заказа.

Ошибки при создании заказа

Коды ошибок:
COMMENTS_NOT_ALLOWED - Профиль не принимает публичные комментарии
INSUFFICIENT_BALANCE - Недостаточно средств на балансе
INVALID_STEAM_LINK - Неверная ссылка Steam
VALIDATION_ERROR - Ошибка валидации параметров
INVALID_QUANTITY - Некорректное количество
MISSING_PARAMETERS - Отсутствуют обязательные параметры
INTERNAL_ERROR - Внутренняя ошибка сервера
Пример ошибки при закрытых комментариях:
{
    "status": "error",
    "code": "COMMENTS_NOT_ALLOWED",
    "message": "❌ Профиль не принимает публичные комментарии. Убедитесь, что в настройках профиля Steam разрешены комментарии от всех пользователей.",
    "instructions": [
        "📝 Для решения проблемы выполните следующие действия:",
        "1. Зайдите в настройки профиля Steam",
        "2. Выберите вкладку 'Конфиденциальность'",
        "3. Установите 'Мой профиль' в значение 'Публичный'",
        "4. В разделе 'Комментарии' выберите 'Все'",
        "5. Сохраните изменения и подождите 5-10 минут"
    ]
}
        
Пример ответа при успешном создании заказа:
{
    "status": "success",
    "data": {
        "order_id": "API_1_1700000000",
        "bot_order_id": "BOT_123456",
        "action_type": "comment",
        "quantity": 100,
        "target_link": "https://steamcommunity.com/id/username",
        "cost": 85.0,
        "status": "processing",
        "created_at": "2024-01-01T12:00:00",
        "balance_after": 15.0
    }
}
        

Важно: При ошибке COMMENTS_NOT_ALLOWED средства не списываются с баланса. Заказ будет создан только после успешной проверки профиля.

Проверка комментариев: Для типов заказов comment и comment_rep автоматически проверяется, открыты ли комментарии на профиле. Для других типов услуг эта проверка не выполняется.

Проверка статуса

GET /api/order/status/{order_id}
Authorization: Bearer ваш_токен
                                            
Статусы заказа:
pending - Ожидание processing - В работе completed - Выполнен failed - Ошибка

Пользователь

Баланс

GET /api/user/balance
Authorization: Bearer ваш_токен
                                            

Статистика

GET /api/user/stats
Authorization: Bearer ваш_токен
                                            

Примеры кода

Python

import requests

class SteamSmmAPI:
    def __init__(self, api_token):
        self.base_url = "https://steamsmm.ru/api"
        self.headers = {
            "Authorization": f"Bearer {api_token}",
            "Content-Type": "application/json"
        }
    
    def get_balance(self):
        """Получение баланса"""
        response = requests.get(
            f"{self.base_url}/user/balance",
            headers=self.headers
        )
        return response.json()
    
    def calculate_price(self, action_type, quantity):
        """Расчет цены"""
        data = {
            "action_type": action_type,
            "quantity": quantity
        }
        response = requests.post(
            f"{self.base_url}/order/price",
            headers=self.headers,
            json=data
        )
        return response.json()
    
    def create_order(self, action_type, quantity, target_link):
        """Создание заказа"""
        data = {
            "action_type": action_type,
            "quantity": quantity,
            "target_link": target_link
        }
        response = requests.post(
            f"{self.base_url}/order/create",
            headers=self.headers,
            json=data
        )
        return response.json()
    
    def get_order_status(self, order_id):
        """Проверка статуса заказа"""
        response = requests.get(
            f"{self.base_url}/order/status/{order_id}",
            headers=self.headers
        )
        return response.json()

# Использование
api = SteamSmmAPI("ваш_токен")

# Получение баланса
balance = api.get_balance()
print(f"Баланс: {balance['data']['balance']} руб.")

# Создание заказа
order = api.create_order(
    action_type="comment",
    quantity=100,
    target_link="https://steamcommunity.com/id/username"
)

if order['status'] == 'success':
    print(f"Заказ создан: {order['data']['order_id']}")
                                            
Наш Telegram канал