Работа через API

Linken Sphere предоставляет мощный RESTful API для полной автоматизации действий как внутри самого приложения, так и в запущенных сессиях.

С помощью API вы можете программно управлять практически всеми аспектами работы:

  • Управление сессиями: создание (в том числе массовое), клонирование, изменение и удаление.

  • Управление окружением: работа с пресетами и рабочими столами.

  • Работа с данными: импорт и экспорт cookies в различных форматах (JSON, Netscape).

  • Интеграция с фреймворками автоматизации: запуск сессий, совместимых с Playwright, Puppeteer, Selenium и другими инструментами через Chrome DevTools Protocol (CDP).

  • Прочие операции: запуск прогрева профилей (WarmUp), назначение, проверка прокси-соединений и многое другое.

Полный список методов с подробным описанием и примерами вы найдете в нашей Postman-документации.

API доступен пользователям тарифов Pro и Premium.

Мы не устанавливаем искусственных ограничений на количество запросов (RPM/RPH). Скорость работы API ограничена только вычислительной мощностью вашего компьютера.

Активация API

По умолчанию API-сервер отключен. Чтобы начать работу, его необходимо активировать и указать порт:

  1. Нажмите на иконку шестеренки в левом верхнем углу, чтобы перейти в глобальные настройки.

  2. Перейте в раздел Network.

  3. В поле Api port укажите желаемый порт (например, 36555) и нажмите Enter.

API Activation

После сохранения настроек API будет доступен по локальному адресу. Например, если вы указали порт 36555, эндпоинт будет: http://127.0.0.1:36555/

Использование пресетов при работе с API

Presets

В Linken Sphere реализован особый подход к созданию сессий через API, нацеленный на повышение удобства и эффективности вашей работы. Вместо передачи полного набора параметров в каждом запросе, вы используете пресеты.

Пресет — это заранее сконфигурированный шаблон настроек для сессий, который вы создаете и настраиваете в графическом интерфейсе программы. Вы можете создать несколько пресетов для разных задач, указав в них все ключевые параметры:

  • Основные данные конфигурации: операционная система, браузер и т.д.

  • Тип хранения данных: локальный или облачный.

  • Пользовательские настройки: стартовые страницы, закладки и предустановленные расширения.

  • Вспомогательные функции: например, активация AdCrusher.

Все остальные параметры, необходимые для обеспечения уникальности отпечатка, генерируются автоматически на основе выбранных вами настроек в пресете.

Для управления пресетами через API используется отдельный метод — Set Active Provider. С помощью этого метода вы указываете, какой из созданных пресетов должен быть активным в данный момент.

После этого все сессии, которые вы создаете через API, будут автоматически использовать настройки из этого активного пресета.

Такой подход дает несколько ключевых преиментов:

  • Вам не нужно самостоятельно реализовывать сложную логику рандомизации отпечатков. Linken Sphere берет эту задачу на себя, гарантируя высокое качество и уникальность конфигураций.

  • Упрощается управление конфигурациями. Вместо десятков параметров в каждом API-запросе вы оперируете только идентификатором нужного пресета.

  • Гибкость и скорость. Вы можете быстро переключаться между совершенно разными конфигурациями (например, “Windows/Chrome” и “macOS/Safari”), просто меняя активный пресет одной командой.

Для получения более подробной информации о том, как создавать и настраивать шаблоны, изучите раздел — Создание пресетов.

Базовая автоматизация и примеры подключения

Базовая автоматизация состоит из следующих шагов:

  1. Запустить сессию используя API

  2. Подключиться к порту сессии с помощью инструмента автоматизации

  3. Запустить собственный скрипт автоматизации через открытое соединение

Для работы c API должен быть запущен и авторизован клиент Linken Sphere

Шаг 1. Создание и запуск сессии с использованием API

Для создания сессии через API необходимо послать POST-запрос по адресу http://127.0.0.1:40080/sessions/create_quick

Endpoint

После чего будет создана сессия с использованием настроек активного пресета на текущем рабочем столе. В ответ мы получим имя созданной сессии и ее уникальный “uuid” - именно на нём и строится будущая работа скриптов.

{
"name": "Default provider 4",
"uuid": "19bb5764-98a3-4ee1-bff8-5306e434493d"
}

После получения “uuid” нужной нам сессии мы можем ее запустить отправив POST-запрос по адресу http://127.0.0.1:40080/sessions/start и передав body

{
"uuid": "19bb5764-98a3-4ee1-bff8-5306e434493d",
"headless": false,
"debug_port": 12345
}

Body

Следует отметить, что headless и debug_port являются опциональными, и если их не передать то сессия будет запущена в обычном режиме с автоматическим назначением порта.

Если всё верно то в ответ придет следующая структура

{
"debug_port": 12345,
"uuid": "19bb5764-98a3-4ee1-bff8-5306e434493d"
}

Важно:

  • Локальное API работает только при запущенном клиенте Linken Sphere

  • Запросы необходимо посылать с компьютера, на котором запущен клиент Linken Sphere

  • Локальное API использует порт, заданный в глобальных настройках программы

Шаг 2. Подключение к запущенной сессии

Selenium

Для работы с Selenium необходимо скачать и установить ChromeWebDriver по ссылке:

Примеры кода для подключения Selenium к уже запущенному браузеру представлены ниже.

Selenium Python

# pip install selenium
from selenium import webdriver
from selenium.webdriver.chrome.service import Service

debug_port = 12345
# Укажите путь к вашему chromedriver
s = Service(executable_path="/ваш/путь/к/chromedriver.exe")
options = webdriver.ChromeOptions()
options.add_experimental_option("debuggerAddress", f"127.0.0.1:{debug_port}")
driver = webdriver.Chrome(service=s, options=options)

driver.get('https://ls.app/')
print(driver.title)
driver.quit()

Selenium JS

// npm i selenium-webdriver
const { Builder } = require('selenium-webdriver');
const chrome = require('selenium-webdriver/chrome');

(async () => {
const debugPort = 12345;

// Укажите путь к вашему chromedriver
const service = new chrome.ServiceBuilder('/ваш/путь/к/chromedriver.exe');

const options = new chrome.Options().debuggerAddress(`127.0.0.1:${debugPort}`);

const driver = await new Builder()
.forBrowser('chrome')
.setChromeOptions(options)
.setChromeService(service)
.build();

try {
await driver.get('https://ls.app/');
const title = await driver.getTitle();
console.log(title);
} finally {
await driver.quit();
}
})();

Playwright

Примеры подключения к запущенной сессии используя Playwright:

Playwright Python

import asyncio
from playwright.async_api import async_playwright

debug_port = 12345
async def main():
async with async_playwright() as p: {
browser = await p.chromium.connect_over_cdp(endpoint_url=f"http://127.0.0.1:{debug_port}")
context = browser.contexts[0]
page = await context.new_page()
await page.goto("https://ls.app/")
print("Title:", await page.title())
await browser.close()
}
asyncio.run(main())

Playwright JS

const { chromium } = require('playwright');
const debugPort = 12345;
(async () => {
const browser = await chromium.connectOverCDP(`http://127.0.0.1:${'{'}debugPort{'}'}`);
const context = browser.contexts()[0];
const page = await context.newPage();
await page.goto('https://ls.app/', { waitUntil: 'domcontentloaded' });
console.log('Title:', await page.title());
await browser.close();
})();

Pyppeteer/Puppeteer

Примеры подключения к запущенной сессии используя Pyppeteer/Puppeteer:

Pyppeteer Python

import asyncio
from pyppeteer import connect
debug_port = 12345
async def main():
browser = await connect(browserURL=f'http://127.0.0.1:{debug_port}', defaultViewport=None)<br></br> page = await browser.newPage()<br></br> await page.goto(https://ls.app/')
print('Title:', await page.title())
await browser.disconnect()
asyncio.run(main())

Puppeteer JS

const puppeteer = require('puppeteer');
const debug_port = 12345;
(async () => {
const browser = await puppeteer.connect({ browserURL: `http://127.0.0.1:${'{'}debug_port{'}'}`, defaultViewport: null });
const page = await browser.newPage();
await page.goto('https://ls.app/');
console.log('Title:', await page.title());
await browser.disconnect();
})().catch(console.error);

Шаг 3. Остановка сессии через API

Для остановки сессии через API необходимо послать POST-запрос по адресу http://127.0.0.1:40080/sessions/stop с указанием “uuid”.

{
"uuid": "19bb5764-98a3-4ee1-bff8-5306e434493d"
}

Подробная документация по работе с API: documenter.getpostman.com/view/32398185/2s9YsRd9cC

При возникновении вопросов, пожалуйста обращайтесь в службу поддержки через чат в самой программе или используя бот в Telegram.

Предыдущая страница

Следующая страница

Автоматизация и API | Linken Sphere Документация