- Обзор API
- Аутентификация
- Базовые принципы
- Методы API
- Примеры использования
- Обработка ошибок
- Ограничения
- Партнеры и интеграции
- Поддержка
SMOService Bot API предоставляет разработчикам возможность интегрировать функциональность нашего SMM сервиса в свои приложения. API позволяет создавать заказы, отслеживать их статус, управлять балансом и получать информацию о доступных сервисах.
- Базовый URL:
https://urlgo.ru/api/v2 - Протокол: HTTPS
- Метод: POST
- Формат ответа: JSON
- Кодировка: UTF-8
Все запросы к API должны содержать ваш API ключ. Ключ можно передать одним из способов:
X-API-Key: your_api_key_here?key=your_api_key_here
- Откройте бота @smoservicebot
- Перейдите в Настройки → �� API Ключи
- Нажмите "Создать новый ключ"
- Введите название для ключа (например, "Мое приложение")
- Сохраните полученный ключ в безопасном месте
Все запросы отправляются методом POST с данными в формате application/x-www-form-urlencoded.
Все ответы возвращаются в формате JSON:
{
"success": true,
"data": {
// Данные ответа
}
}200- Успешный запрос400- Неверные параметры401- Неверный API ключ429- Превышен лимит запросов500- Внутренняя ошибка сервера
Endpoint: /api/v2/services
Описание: Возвращает список всех доступных сервисов с их параметрами.
Параметры: Нет
Пример запроса:
curl -X POST https://urlgo.ru/api/v2/services \
-H "X-API-Key: your_api_key_here"Пример ответа:
{
"success": true,
"data": [
{
"service": 1,
"name": "Instagram Followers",
"type": "Default",
"category": "Social Media",
"rate": "0.90",
"min": "50",
"max": "10000",
"refill": true,
"cancel": true
},
{
"service": 2,
"name": "Instagram Comments",
"type": "Custom Comments",
"category": "Social Media",
"rate": "8.00",
"min": "10",
"max": "1500",
"refill": false,
"cancel": true
},
{
"service": 3,
"name": "Telegram Members",
"type": "Default",
"category": "Messaging",
"rate": "2.50",
"min": "100",
"max": "5000",
"refill": true,
"cancel": true
}
]
}Endpoint: /api/v2/add
Описание: Создает новый заказ на указанном сервисе.
Обязательные параметры:
service- ID сервиса (число)link- Ссылка на страницу (строка)quantity- Количество (число)
Дополнительные параметры:
runs- Количество запусков для интервальных заказов (число)interval- Интервал в минутах для интервальных заказов (число)
Пример запроса:
curl -X POST https://urlgo.ru/api/v2/add \
-H "X-API-Key: your_api_key_here" \
-d "service=1&link=https://instagram.com/username&quantity=100"Пример ответа:
{
"success": true,
"data": {
"order": 23501
}
}Endpoint: /api/v2/status
Описание: Возвращает текущий статус заказа.
Обязательные параметры:
order- ID заказа (число)
Пример запроса:
curl -X POST https://urlgo.ru/api/v2/status \
-H "X-API-Key: your_api_key_here" \
-d "order=23501"Пример ответа:
{
"success": true,
"data": {
"charge": "0.27819",
"start_count": "3572",
"status": "In progress",
"remains": "157",
"currency": "USD"
}
}Endpoint: /api/v2/balance
Описание: Возвращает текущий баланс пользователя.
Параметры: Нет
Пример запроса:
curl -X POST https://urlgo.ru/api/v2/balance \
-H "X-API-Key: your_api_key_here"Пример ответа:
{
"success": true,
"data": {
"balance": "100.84292",
"currency": "USD"
}
}Endpoint: /api/v2/refill
Описание: Создает дозаказ для существующего заказа.
Обязательные параметры:
order- ID заказа (число)
Пример запроса:
curl -X POST https://urlgo.ru/api/v2/refill \
-H "X-API-Key: your_api_key_here" \
-d "order=23501"Пример ответа:
{
"success": true,
"data": {
"refill": "1"
}
}Endpoint: /api/v2/cancel
Описание: Отменяет один или несколько заказов.
Обязательные параметры:
orders- ID заказов через запятую (строка)
Пример запроса:
curl -X POST https://urlgo.ru/api/v2/cancel \
-H "X-API-Key: your_api_key_here" \
-d "orders=23501,23502,23503"Пример ответа:
{
"success": true,
"data": [
{
"order": 23501,
"cancel": 1
},
{
"order": 23502,
"cancel": 1
},
{
"order": 23503,
"cancel": 1
}
]
}| Статус | Описание |
|---|---|
Pending |
Ожидает обработки |
In progress |
В процессе выполнения |
Completed |
Завершен |
Partial |
Частично выполнен |
Canceled |
Отменен |
Error |
Ошибка |
import requests
class SMOServiceAPI:
def __init__(self, api_key, base_url="https://urlgo.ru/api/v2"):
self.api_key = api_key
self.base_url = base_url
self.headers = {"X-API-Key": api_key}
def get_services(self):
"""Получение списка сервисов"""
response = requests.post(f"{self.base_url}/services", headers=self.headers)
return response.json()
def create_order(self, service_id, link, quantity):
"""Создание заказа"""
data = {
"service": service_id,
"link": link,
"quantity": quantity
}
response = requests.post(f"{self.base_url}/add", headers=self.headers, data=data)
return response.json()
def get_order_status(self, order_id):
"""Получение статуса заказа"""
data = {"order": order_id}
response = requests.post(f"{self.base_url}/status", headers=self.headers, data=data)
return response.json()
def get_balance(self):
"""Получение баланса"""
response = requests.post(f"{self.base_url}/balance", headers=self.headers)
return response.json()
# Пример использования
api = SMOServiceAPI("your_api_key_here")
# Получение сервисов
services = api.get_services()
print("Доступные сервисы:", services)
# Создание заказа
order = api.create_order(1, "https://instagram.com/username", 100)
print("Создан заказ:", order)
# Проверка статуса
status = api.get_order_status(order["data"]["order"])
print("Статус заказа:", status)
# Проверка баланса
balance = api.get_balance()
print("Баланс:", balance)<?php
class SMOServiceAPI {
private $api_key;
private $base_url;
public function __init__($api_key, $base_url = "https://urlgo.ru/api/v2") {
$this->api_key = $api_key;
$this->base_url = $base_url;
}
private function makeRequest($endpoint, $data = []) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $this->base_url . $endpoint);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ["X-API-Key: " . $this->api_key]);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
return json_decode($response, true);
}
public function getServices() {
return $this->makeRequest("/services");
}
public function createOrder($service_id, $link, $quantity) {
return $this->makeRequest("/add", [
"service" => $service_id,
"link" => $link,
"quantity" => $quantity
]);
}
public function getOrderStatus($order_id) {
return $this->makeRequest("/status", ["order" => $order_id]);
}
public function getBalance() {
return $this->makeRequest("/balance");
}
}
// Пример использования
$api = new SMOServiceAPI("your_api_key_here");
// Получение сервисов
$services = $api->getServices();
echo "Доступные сервисы: " . print_r($services, true);
// Создание заказа
$order = $api->createOrder(1, "https://instagram.com/username", 100);
echo "Создан заказ: " . print_r($order, true);
?>class SMOServiceAPI {
constructor(apiKey, baseUrl = "https://urlgo.ru/api/v2") {
this.apiKey = apiKey;
this.baseUrl = baseUrl;
}
async makeRequest(endpoint, data = {}) {
const formData = new URLSearchParams();
for (const [key, value] of Object.entries(data)) {
formData.append(key, value);
}
const response = await fetch(this.baseUrl + endpoint, {
method: "POST",
headers: {
"X-API-Key": this.apiKey,
"Content-Type": "application/x-www-form-urlencoded"
},
body: formData
});
return await response.json();
}
async getServices() {
return await this.makeRequest("/services");
}
async createOrder(serviceId, link, quantity) {
return await this.makeRequest("/add", {
service: serviceId,
link: link,
quantity: quantity
});
}
async getOrderStatus(orderId) {
return await this.makeRequest("/status", { order: orderId });
}
async getBalance() {
return await this.makeRequest("/balance");
}
}
// Пример использования
const api = new SMOServiceAPI("your_api_key_here");
// Получение сервисов
api.getServices().then(services => {
console.log("Доступные сервисы:", services);
});
// Создание заказа
api.createOrder(1, "https://instagram.com/username", 100).then(order => {
console.log("Создан заказ:", order);
});const axios = require('axios');
class SMOServiceAPI {
constructor(apiKey, baseUrl = "https://urlgo.ru/api/v2") {
this.apiKey = apiKey;
this.baseUrl = baseUrl;
this.client = axios.create({
baseURL: baseUrl,
headers: {
"X-API-Key": apiKey,
"Content-Type": "application/x-www-form-urlencoded"
}
});
}
async getServices() {
const response = await this.client.post("/services");
return response.data;
}
async createOrder(serviceId, link, quantity) {
const response = await this.client.post("/add", {
service: serviceId,
link: link,
quantity: quantity
});
return response.data;
}
async getOrderStatus(orderId) {
const response = await this.client.post("/status", {
order: orderId
});
return response.data;
}
async getBalance() {
const response = await this.client.post("/balance");
return response.data;
}
}
// Пример использования
const api = new SMOServiceAPI("your_api_key_here");
async function main() {
try {
// Получение сервисов
const services = await api.getServices();
console.log("Доступные сервисы:", services);
// Создание заказа
const order = await api.createOrder(1, "https://instagram.com/username", 100);
console.log("Создан заказ:", order);
// Проверка статуса
const status = await api.getOrderStatus(order.data.order);
console.log("Статус заказа:", status);
} catch (error) {
console.error("Ошибка:", error.response?.data || error.message);
}
}
main();Все ошибки возвращаются в формате:
{
"success": false,
"error": "Описание ошибки"
}| Код HTTP | Описание |
|---|---|
400 |
Неверные параметры запроса |
401 |
Неверный или неактивный API ключ |
429 |
Превышен лимит запросов (1000/час) |
500 |
Внутренняя ошибка сервера |
Неверный API ключ:
{
"success": false,
"error": "Invalid or inactive API key"
}Неверные параметры:
{
"success": false,
"error": "Missing required parameters"
}Превышен лимит:
{
"success": false,
"error": "Rate limit exceeded"
}- Лимит: 1000 запросов в час на один API ключ
- Окно: Скользящее окно в 1 час
- При превышении: Возвращается ошибка 429
- Минимальный размер: Зависит от сервиса (обычно 10-50)
- Максимальный размер: Зависит от сервиса (обычно 1000-10000)
- Проверка: Автоматическая валидация при создании заказа
- Максимальная длина ссылки: 2048 символов
- Максимальное количество заказов для отмены: 100 за раз
- Максимальная длина комментариев: 1000 символов
- Храните API ключи в безопасности - не передавайте их третьим лицам
- Используйте HTTPS - для всех запросов к API
- Регулярно обновляйте ключи - для повышения безопасности
- Мониторьте активность - отслеживайте использование API
- Отзывайте неиспользуемые ключи - удаляйте старые ключи
# ✅ Правильно - используйте переменные окружения
import os
api_key = os.getenv('SMOSERVICE_API_KEY')
# ❌ Неправильно - не хардкодите ключи
api_key = "your_secret_key_here"Мы рекомендуем использовать наших проверенных партнеров для приема платежей:
- Tegro Money - Маркетплейс банковских решений
- Tegro Finance - Платформа финансовых услуг
Следующие сервисы уже интегрировали наше API:
Хотите стать нашим партнером? Свяжитесь с нами по email: support@smofast.com
- Email: support@smoservice.media
- Telegram бот: @smoservicebot
- Документация: https://github.com/SMOService/telegram-mini-app-bot-api/wiki
Q: Как получить API ключ? A: Откройте бота @smoservicebot, перейдите в Настройки → API Ключи → Создать новый ключ
Q: Какие лимиты у API? A: 1000 запросов в час на один API ключ
Q: Как отозвать API ключ? A: В боте: Настройки → API Ключи → Отозвать ключ
Q: Поддерживается ли веб-хук? A: В данный момент API работает только через HTTP/HTTPS запросы
Q: Как добавить новый сервис? A: Обратитесь в поддержку по email: support@ros.media
Q: Какие платежные системы поддерживаются? A: Рекомендуем использовать Tegro Money и Tegro Finance
- Версия: v2.0
- Дата последнего обновления: 1 сентября 2025
- Совместимость: Обратная совместимость с v1.x
SMOService Bot API - мощный инструмент для интеграции SMM сервисов в ваши приложения! 🚀
Для получения дополнительной информации посетите основную документацию.
Теперь вы можете скопировать это содержимое и вставить его в GitHub Wiki!