Документация API devpack
Этот перевод приведён для удобства. Юридическую силу имеет версия на английском языке.
Установить в ChromeУстановить в Firefox
Используйте самые полезные инструменты devpack прямо из своего кода. API бесплатен, не требует регистрации и возвращает JSON. Каждый эндпоинт принимает GET с параметрами запроса или POST с телом в формате JSON.
Все эндпоинты
Текст и данные
hashbase64url-encodeslugtext-statsjson-formatjwt-decodesort-linesdedupe-linesfind-replaceword-frequencycase-converthtml-entitiescsv-to-jsonjson-to-csvБыстрый старт
Базовый URL: http://localhost:3000/v1.
curl "http://localhost:3000/v1/hash?text=hello"
JavaScript
const res = await fetch('http://localhost:3000/v1/uuid?count=2');
const { ok, data, error } = await res.json();
if (!ok) throw new Error(error.message);
console.log(data.uuids);
Python
import requests
r = requests.post('http://localhost:3000/v1/json-format', json={'json': '{"a":1}'})
print(r.json()['data']['formatted'])
Передавайте секреты, например токены или пароли, в теле POST, а не в URL, поскольку адреса могут попасть в логи. API можно вызывать напрямую из браузера (CORS открыт). Также доступно машиночитаемое описание OpenAPI.
Примеры кода
Готовые клиенты на JavaScript и Python, скрипт проверки состояния сайта и пошаговое руководство есть на GitHub: примеры API devpack.
Ответы
Успешные запросы возвращают {"ok": true, "data": {…}}. При ошибке возвращается ответ со стабильным кодом:
{
"ok": false,
"error": { "code": "invalid_request", "message": "Missing required parameter: text" }
}
| Статус | Код | Значение |
|---|---|---|
| 400 | invalid_request | Параметр отсутствует или некорректен |
| 401 | invalid_key | Ключ API недействителен |
| 404 | not_found | Неизвестный эндпоинт |
| 429 | rate_limited | Достигнут лимит. Подождите Retry-After секунд |
| 502 | upstream_error | Проверяемый сайт или сервис вернул ошибку |
| 503 | unavailable | API временно недоступен |
Лимиты запросов
Ключ не нужен. Бесплатное использование учитывается по IP-адресу:
| Тип | Лимит |
|---|---|
| Текст, генераторы и конвертация | 60 запросов в минуту |
| Проверки сети | 15 запросов в минуту |
| Все запросы вместе | 1 000 запросов в день |
Каждый ответ содержит заголовки X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-RateLimit-Daily-Limit и X-RateLimit-Daily-Remaining.
Ключи API
Для бесплатного использования ключи не нужны. Если вам выдали ключ, передайте его в заголовке:
curl -H "X-API-Key: YOUR_KEY" "http://localhost:3000/v1/uuid"
Нужны более высокие лимиты? Свяжитесь с нами.
Честное использование и конфиденциальность
API предоставляется «как есть» в соответствии с нашими Условиями использования. Проверяйте только те сайты, которые вы вправе тестировать, и не используйте API для перегрузки какого-либо сервиса. Мы не сохраняем отправляемый текст. Проверки сети работают только с публичными адресами. Лимиты и эндпоинты могут меняться; несовместимые изменения будут выпущены в новой версии.
Текст и данные
/v1/hash
GETPOSTХеширование текста с помощью MD5 или SHA.
Параметры
| Имя | Тип | Обязательный | Описание |
|---|---|---|---|
text | string | Да | Текст для хеширования, до 100 КБ |
algorithm | string | Нет | md5, sha1, sha256 (по умолчанию), sha384 или sha512 |
encoding | string | Нет | hex (по умолчанию) или base64 |
Запрос
curl "http://localhost:3000/v1/hash?text=hello&algorithm=sha256"
Ответ
{
"ok": true,
"data": {
"algorithm": "sha256",
"encoding": "hex",
"hash": "2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824"
}
}/v1/base64
GETPOSTКодирование и декодирование Base64.
Параметры
| Имя | Тип | Обязательный | Описание |
|---|---|---|---|
text | string | Да | Входные данные, до 100 КБ |
action | string | Нет | encode (по умолчанию) или decode |
url_safe | boolean | Нет | Использовать URL-безопасный алфавит. По умолчанию false |
Запрос
curl "http://localhost:3000/v1/base64?text=hello+world&action=encode"
Ответ
{
"ok": true,
"data": {
"action": "encode",
"result": "aGVsbG8gd29ybGQ="
}
}/v1/url-encode
GETPOSTПроцентное кодирование и декодирование строки.
Параметры
| Имя | Тип | Обязательный | Описание |
|---|---|---|---|
text | string | Да | Входные данные, до 100 КБ |
action | string | Нет | encode (по умолчанию) или decode |
Запрос
curl "http://localhost:3000/v1/url-encode?text=a+b%26c%3Dd&action=encode"
Ответ
{
"ok": true,
"data": {
"action": "encode",
"result": "a%20b%26c%3Dd"
}
}/v1/slug
GETPOSTПреобразование текста в slug для URL.
Параметры
| Имя | Тип | Обязательный | Описание |
|---|---|---|---|
text | string | Да | Текст для преобразования |
separator | string | Нет | - (по умолчанию) или _ |
Запрос
curl "http://localhost:3000/v1/slug?text=Hello%2C+W%C3%B6rld%21+It%E2%80%99s+2026"
Ответ
{
"ok": true,
"data": {
"slug": "hello-world-its-2026"
}
}/v1/text-stats
GETPOSTПодсчёт слов, символов, строк и времени чтения.
Параметры
| Имя | Тип | Обязательный | Описание |
|---|---|---|---|
text | string | Да | Текст, до 100 КБ |
Запрос
curl "http://localhost:3000/v1/text-stats?text=One+two+three.+Four+five%21"
Ответ
{
"ok": true,
"data": {
"characters": 25,
"charactersNoSpaces": 21,
"words": 5,
"sentences": 2,
"lines": 1,
"readingTimeSeconds": 2
}
}/v1/json-format
GETPOSTПроверка JSON с последующим форматированием или минификацией.
Параметры
| Имя | Тип | Обязательный | Описание |
|---|---|---|---|
json | string | Да | Текст JSON, до 100 КБ |
indent | integer | Нет | Количество пробелов на уровень, 0–8. По умолчанию 2 |
minify | boolean | Нет | Удалить все пробельные символы. По умолчанию false |
Запрос
curl "http://localhost:3000/v1/json-format?json=%7B%22name%22%3A%22devpack%22%2C%22tools%22%3A500%7D&indent=2"
Ответ
{
"ok": true,
"data": {
"valid": true,
"formatted": "{\n \"name\": \"devpack\",\n \"tools\": 500\n}"
}
}/v1/jwt-decode
GETPOSTДекодирование JWT без проверки подписи.
Параметры
| Имя | Тип | Обязательный | Описание |
|---|---|---|---|
token | string | Да | JWT |
Запрос
curl "http://localhost:3000/v1/jwt-decode?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjMiLCJuYW1lIjoiQWRhIiwiZXhwIjo0MTAyNDQ0ODAwfQ.c2lnbmF0dXJl"
Ответ
{
"ok": true,
"data": {
"header": {
"alg": "HS256",
"typ": "JWT"
},
"payload": {
"sub": "123",
"name": "Ada",
"exp": 4102444800
},
"expired": false,
"signatureVerified": false
}
}/v1/sort-lines
GETPOSTСортировка строк текста.
Параметры
| Имя | Тип | Обязательный | Описание |
|---|---|---|---|
text | string | Да | Один элемент в строке, до 100 КБ |
order | string | Нет | asc (по умолчанию) или desc |
numeric | boolean | Нет | Сравнивать числа по значению. По умолчанию false |
Запрос
curl "http://localhost:3000/v1/sort-lines?text=pear%0Aapple%0Amango&order=asc"
Ответ
{
"ok": true,
"data": {
"lines": 3,
"result": "apple\nmango\npear"
}
}/v1/dedupe-lines
GETPOSTУдаление повторяющихся строк с сохранением первого вхождения.
Параметры
| Имя | Тип | Обязательный | Описание |
|---|---|---|---|
text | string | Да | Один элемент в строке, до 100 КБ |
ignore_case | boolean | Нет | Считать A и a одинаковыми. По умолчанию false |
trim | boolean | Нет | Игнорировать пробелы в начале и конце строк. По умолчанию true |
Запрос
curl "http://localhost:3000/v1/dedupe-lines?text=one%0Atwo%0Aone%0ATwo&ignore_case=true"
Ответ
{
"ok": true,
"data": {
"before": 4,
"after": 2,
"removed": 2,
"result": "one\ntwo"
}
}/v1/find-replace
GETPOSTПоиск и замена обычного текста.
Параметры
| Имя | Тип | Обязательный | Описание |
|---|---|---|---|
text | string | Да | Текст, до 100 КБ |
find | string | Да | Текст для поиска |
replace | string | Нет | Новый текст. По умолчанию: пусто |
ignore_case | boolean | Нет | Игнорировать регистр букв. По умолчанию false |
Запрос
curl "http://localhost:3000/v1/find-replace?text=Hello+world%2C+hello+there&find=hello&replace=Hi&ignore_case=true"
Ответ
{
"ok": true,
"data": {
"replacements": 2,
"result": "Hi world, Hi there"
}
}/v1/word-frequency
GETPOSTПодсчёт частоты появления каждого слова.
Параметры
| Имя | Тип | Обязательный | Описание |
|---|---|---|---|
text | string | Да | Текст, до 100 КБ |
limit | integer | Нет | Количество слов в ответе, 1–100. По умолчанию 20 |
Запрос
curl "http://localhost:3000/v1/word-frequency?text=the+cat+and+the+dog+and+the+bird&limit=3"
Ответ
{
"ok": true,
"data": {
"total": 8,
"unique": 5,
"words": [
{
"word": "the",
"count": 3,
"percent": 37.5
},
{
"word": "and",
"count": 2,
"percent": 25
},
{
"word": "bird",
"count": 1,
"percent": 12.5
}
]
}
}/v1/case-convert
GETPOSTИзменение регистра текста, например camelCase или snake_case.
Параметры
| Имя | Тип | Обязательный | Описание |
|---|---|---|---|
text | string | Да | Текст, до 100 КБ |
to | string | Да | lower, upper, title, sentence, camel, pascal, snake, kebab или constant |
Запрос
curl "http://localhost:3000/v1/case-convert?text=Hello+big+world&to=snake"
Ответ
{
"ok": true,
"data": {
"to": "snake",
"result": "hello_big_world"
}
}/v1/html-entities
GETPOSTЭкранирование и разэкранирование HTML-сущностей.
Параметры
| Имя | Тип | Обязательный | Описание |
|---|---|---|---|
text | string | Да | Текст, до 100 КБ |
action | string | Нет | encode (по умолчанию) или decode |
Запрос
curl "http://localhost:3000/v1/html-entities?text=%3Ca+href%3D%22%2F%22%3ETom+%26+Jerry%3C%2Fa%3E&action=encode"
Ответ
{
"ok": true,
"data": {
"action": "encode",
"result": "<a href="/">Tom & Jerry</a>"
}
}/v1/csv-to-json
GETPOSTПреобразование CSV в JSON.
Параметры
| Имя | Тип | Обязательный | Описание |
|---|---|---|---|
csv | string | Да | CSV, до 100 КБ |
delimiter | string | Нет | comma (по умолчанию), semicolon, tab или pipe |
header | boolean | Нет | Первая строка содержит названия столбцов. По умолчанию true |
Запрос
curl "http://localhost:3000/v1/csv-to-json?csv=name%2Cage%0AAda%2C36%0AGrace%2C45"
Ответ
{
"ok": true,
"data": {
"rows": 2,
"columns": [
"name",
"age"
],
"data": [
{
"name": "Ada",
"age": "36"
},
{
"name": "Grace",
"age": "45"
}
]
}
}/v1/json-to-csv
GETPOSTПреобразование массива объектов JSON в CSV.
Параметры
| Имя | Тип | Обязательный | Описание |
|---|---|---|---|
json | string | Да | Массив объектов JSON, до 100 КБ |
Запрос
curl "http://localhost:3000/v1/json-to-csv?json=%5B%7B%22name%22%3A%22Ada%22%2C%22age%22%3A36%7D%2C%7B%22name%22%3A%22Grace%22%2C%22age%22%3A45%7D%5D"
Ответ
{
"ok": true,
"data": {
"rows": 2,
"columns": [
"name",
"age"
],
"csv": "name,age\nAda,36\nGrace,45"
}
}Генераторы
/v1/uuid
GETPOSTГенерация случайных UUID версии 4.
Параметры
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
count | integer | Нет | 1–100. По умолчанию 1 |
Запрос
curl "http://localhost:3000/v1/uuid?count=2"
Ответ
{
"ok": true,
"data": {
"uuids": [
"5a1fb442-ec5a-49c5-8eeb-d6af0d58d19f",
"78f4d3da-ac85-4d96-90d8-58412c1e8130"
]
}
}/v1/password
GETPOSTГенерация надёжных случайных паролей.
Параметры
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
length | integer | Нет | 8–128. По умолчанию 20 |
count | integer | Нет | 1–50. По умолчанию 1 |
symbols | boolean | Нет | Включать символы. По умолчанию true |
numbers | boolean | Нет | Включать цифры. По умолчанию true |
uppercase | boolean | Нет | Включать заглавные буквы. По умолчанию true |
Запрос
curl "http://localhost:3000/v1/password?length=16&count=1"
Ответ
{
"ok": true,
"data": {
"passwords": [
"X$X!@z-Z?tk4Z9&n"
]
}
}/v1/nanoid
GETPOSTГенерация коротких случайных ID, безопасных для URL.
Параметры
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
size | integer | Нет | Длина, 4–64. По умолчанию 21 |
count | integer | Нет | 1–100. По умолчанию 1 |
Запрос
curl "http://localhost:3000/v1/nanoid?size=12&count=2"
Ответ
{
"ok": true,
"data": {
"ids": [
"GNOQbfd-O1hQ",
"jKrBmTrBHvyb"
]
}
}/v1/hmac
GETPOSTСоздание подписи HMAC, например для подписи вебхуков.
Параметры
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
text | string | Да | Сообщение, до 100 КБ |
secret | string | Да | Секретный ключ. Передавайте его в теле POST-запроса |
algorithm | string | Нет | sha1, sha256 (по умолчанию) или sha512 |
encoding | string | Нет | hex (по умолчанию) или base64 |
Запрос
curl "http://localhost:3000/v1/hmac?text=hello&secret=my-secret"
Ответ
{
"ok": true,
"data": {
"algorithm": "sha256",
"encoding": "hex",
"signature": "7c1ce32402750db1149385ac20603beeaca8909906d1e81c08f4f5c7db8fbe94"
}
}/v1/lorem-ipsum
GETPOSTГенерация текста-заглушки.
Параметры
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
paragraphs | integer | Нет | 1–20. По умолчанию 1 |
words | integer | Нет | Количество слов в абзаце, 5–200. По умолчанию 40 |
Запрос
curl "http://localhost:3000/v1/lorem-ipsum?paragraphs=1&words=12"
Ответ
{
"ok": true,
"data": {
"paragraphs": [
"Lorem ipsum dolor sit amet consectetur adipiscing elit sed do eiusmod tempor."
]
}
}/v1/random
GETPOSTГенерация криптографически стойких случайных целых чисел.
Параметры
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
min | integer | Нет | Наименьшее значение. По умолчанию 1 |
max | integer | Нет | Наибольшее значение. По умолчанию 100 |
count | integer | Нет | 1–100. По умолчанию 1 |
unique | boolean | Нет | Без повторов. По умолчанию false |
Запрос
curl "http://localhost:3000/v1/random?min=1&max=6&count=2"
Ответ
{
"ok": true,
"data": {
"numbers": [
5,
6
]
}
}Конвертация
/v1/color
GETPOSTПреобразование цвета между HEX, RGB и HSL.
Параметры
| Имя | Тип | Обязательный | Описание |
|---|---|---|---|
value | string | Да | Например, #ff6600, rgb(255, 102, 0) или hsl(24, 100%, 50%) |
Запрос
curl "http://localhost:3000/v1/color?value=%23ff6600"
Ответ
{
"ok": true,
"data": {
"hex": "#ff6600",
"rgb": {
"r": 255,
"g": 102,
"b": 0
},
"hsl": {
"h": 24,
"s": 100,
"l": 50
},
"css": {
"rgb": "rgb(255, 102, 0)",
"hsl": "hsl(24, 100%, 50%)"
}
}
}/v1/timestamp
GETPOSTПреобразование между Unix-временем и датами в формате ISO 8601.
Параметры
| Имя | Тип | Обязательный | Описание |
|---|---|---|---|
value | string | Нет | Unix-секунды, Unix-миллисекунды или дата в ISO. По умолчанию: текущее время |
Запрос
curl "http://localhost:3000/v1/timestamp?value=1798761600"
Ответ
{
"ok": true,
"data": {
"unix": 1798761600,
"unixMs": 1798761600000,
"iso": "2027-01-01T00:00:00.000Z",
"utc": "Fri, 01 Jan 2027 00:00:00 GMT"
}
}/v1/url-parse
GETPOSTРазбор URL на составные части.
Параметры
| Имя | Тип | Обязательный | Описание |
|---|---|---|---|
url | string | Да | URL для разбора |
Запрос
curl "http://localhost:3000/v1/url-parse?url=https%3A%2F%2Fdevpack.app%3A8443%2Ftools%3Fq%3Djson%26page%3D2%23top"
Ответ
{
"ok": true,
"data": {
"protocol": "https",
"host": "devpack.app",
"port": "8443",
"path": "/tools",
"query": {
"q": "json",
"page": "2"
},
"hash": "top",
"origin": "https://devpack.app:8443"
}
}/v1/number-base
GETPOSTПеревод целого числа между системами счисления с основаниями от 2 до 36.
Параметры
| Имя | Тип | Обязательный | Описание |
|---|---|---|---|
value | string | Да | Число |
from | integer | Нет | Исходная система счисления. По умолчанию 10 |
to | integer | Нет | Целевая система счисления. По умолчанию 16 |
Запрос
curl "http://localhost:3000/v1/number-base?value=255&from=10&to=16"
Ответ
{
"ok": true,
"data": {
"result": "ff",
"decimal": "255"
}
}/v1/unit-convert
GETPOSTПеревод единиц длины, массы, температуры, объёма данных и времени.
Параметры
| Имя | Тип | Обязательный | Описание |
|---|---|---|---|
value | number | Да | Значение |
from | string | Да | m, km, cm, mm, in, ft, yd, mi, kg, g, mg, lb, oz, t, c, f, k, b, kb, mb, gb, tb, kib, mib, gib, ms, s, min, h, d, wk |
to | string | Да | Целевая единица того же типа |
Запрос
curl "http://localhost:3000/v1/unit-convert?value=10&from=km&to=mi"
Ответ
{
"ok": true,
"data": {
"value": 10,
"from": "km",
"to": "mi",
"result": 6.21371192237
}
}/v1/date-diff
GETPOSTРасчёт интервала между двумя датами.
Параметры
| Имя | Тип | Обязательный | Описание |
|---|---|---|---|
from | string | Да | Начальная дата в формате ISO |
to | string | Нет | Конечная дата. По умолчанию: текущее время |
Запрос
curl "http://localhost:3000/v1/date-diff?from=2026-01-01&to=2026-10-30"
Ответ
{
"ok": true,
"data": {
"days": 302,
"weeks": 43.14,
"hours": 7248,
"minutes": 434880,
"seconds": 26092800
}
}/v1/cron-next
GETPOSTСписок ближайших запусков cron-выражения в UTC.
Параметры
| Имя | Тип | Обязательный | Описание |
|---|---|---|---|
expression | string | Да | Пять полей: минута, час, день, месяц, день недели |
count | integer | Нет | От 1 до 20. По умолчанию 5 |
from | string | Нет | Начальная дата. По умолчанию: текущее время |
Запрос
curl "http://localhost:3000/v1/cron-next?expression=0+9+*+*+1&count=2&from=2026-10-30T00%3A00%3A00Z"
Ответ
{
"ok": true,
"data": {
"expression": "0 9 * * 1",
"runs": [
"2026-11-02T09:00:00.000Z",
"2026-11-09T09:00:00.000Z"
]
}
}/v1/roman-numeral
GETPOSTПеревод между арабскими числами и римскими цифрами.
Параметры
| Имя | Тип | Обязательный | Описание |
|---|---|---|---|
value | string | Да | Число от 1 до 3999 или римская цифра |
Запрос
curl "http://localhost:3000/v1/roman-numeral?value=2026"
Ответ
{
"ok": true,
"data": {
"number": 2026,
"roman": "MMXXVI"
}
}/v1/percentage
GETPOSTРасчёт процентов и процентного изменения.
Параметры
| Имя | Тип | Обязательный | Описание |
|---|---|---|---|
value | number | Да | Первое число |
of | number | Да | Второе число |
mode | string | Нет | percent_of (по умолчанию: value% от “of”), what_percent (value — какой это процент от “of”) или change (изменение от value до “of”) |
Запрос
curl "http://localhost:3000/v1/percentage?value=20&of=150&mode=percent_of"
Ответ
{
"ok": true,
"data": {
"mode": "percent_of",
"result": 30
}
}/v1/date-add
GETPOSTДобавление или вычитание времени из даты.
Параметры
| Имя | Тип | Обязательный | Описание |
|---|---|---|---|
date | string | Да | Начальная дата в формате ISO |
days | integer | Нет | Количество дней для добавления. Для вычитания используйте знак минус |
months | integer | Нет | Количество месяцев для добавления |
years | integer | Нет | Количество лет для добавления |
Запрос
curl "http://localhost:3000/v1/date-add?date=2026-10-31&days=30"
Ответ
{
"ok": true,
"data": {
"result": "2026-11-30",
"iso": "2026-11-30T00:00:00.000Z",
"weekday": "Monday"
}
}/v1/age
GETPOSTРасчёт возраста в годах, месяцах и днях.
Параметры
| Имя | Тип | Обязательный | Описание |
|---|---|---|---|
birthdate | string | Да | Дата рождения в формате ISO |
on | string | Нет | Дата, на которую рассчитывается возраст. По умолчанию: сегодня |
Запрос
curl "http://localhost:3000/v1/age?birthdate=1990-05-15&on=2026-10-31"
Ответ
{
"ok": true,
"data": {
"years": 36,
"months": 5,
"days": 16,
"totalDays": 13318
}
}/v1/http-status
GETPOSTПоиск описания HTTP-кода статуса.
Параметры
| Имя | Тип | Обязательный | Описание |
|---|---|---|---|
code | integer | Да | 100–599 |
Запрос
curl "http://localhost:3000/v1/http-status?code=404"
Ответ
{
"ok": true,
"data": {
"code": 404,
"name": "Not Found",
"class": "Client error",
"docs": "http://localhost:3000/http-status-codes/404"
}
}/v1/user-agent
GETPOSTРазбор строки User-Agent. По умолчанию — User-Agent вызывающего клиента.
Параметры
| Имя | Тип | Обязательный | Описание |
|---|---|---|---|
ua | string | Нет | Строка User-Agent |
Запрос
curl "http://localhost:3000/v1/user-agent?ua=Mozilla%2F5.0+%28Windows+NT+10.0%3B+Win64%3B+x64%29+AppleWebKit%2F537.36+%28KHTML%2C+like+Gecko%29+Chrome%2F130.0.0.0+Safari%2F537.36"
Ответ
{
"ok": true,
"data": {
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36",
"browser": {
"name": "Chrome",
"version": "130.0.0.0"
},
"os": {
"name": "Windows",
"version": "10.0"
},
"device": "desktop",
"bot": false
}
}Маркетинг
/v1/ab-test
GETPOSTПроверьте, является ли результат A/B-теста статистически значимым.
Параметры
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
visitors_a | integer | Да | Посетители версии A |
conversions_a | integer | Да | Конверсии версии A |
visitors_b | integer | Да | Посетители версии B |
conversions_b | integer | Да | Конверсии версии B |
confidence | integer | Нет | 90, 95 (по умолчанию) или 99 |
Запрос
curl "http://localhost:3000/v1/ab-test?visitors_a=1000&conversions_a=100&visitors_b=1000&conversions_b=130"
Ответ
{
"ok": true,
"data": {
"rateA": 0.1,
"rateB": 0.13,
"uplift": 0.3,
"zScore": 2.1027,
"pValue": 0.035488,
"confidence": 95,
"significant": true,
"winner": "B"
}
}/v1/ab-sample-size
GETPOSTРассчитайте, сколько посетителей нужно для A/B-теста.
Параметры
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
baseline | number | Да | Текущий показатель конверсии в процентах, например 5 |
change | number | Да | Минимальное относительное изменение, которое нужно выявить, в процентах, например 20 |
confidence | integer | Нет | 90, 95 (по умолчанию) или 99 |
power | integer | Нет | 80 (по умолчанию) или 90 |
daily_visitors | integer | Нет | Ежедневное количество посетителей для оценки длительности теста |
Запрос
curl "http://localhost:3000/v1/ab-sample-size?baseline=5&change=20&daily_visitors=1000"
Ответ
{
"ok": true,
"data": {
"perVersion": 8158,
"total": 16316,
"expectedRate": 6,
"days": 17
}
}/v1/roas
GETPOSTРассчитайте окупаемость рекламных расходов (ROAS) и точку безубыточности ROAS.
Параметры
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
spend | number | Да | Расходы на рекламу |
revenue | number | Да | Выручка от рекламы |
margin | number | Нет | Маржа прибыли в процентах, для расчёта точки безубыточности ROAS |
Запрос
curl "http://localhost:3000/v1/roas?spend=1000&revenue=4000&margin=40"
Ответ
{
"ok": true,
"data": {
"roas": 4,
"roasPercent": 400,
"net": 3000,
"breakEvenRoas": 2.5,
"profit": 600
}
}/v1/ad-metrics
GETPOSTРассчитайте CPM, CPC, CTR, CPA и коэффициент конверсии.
Параметры
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
cost | number | Да | Расходы на рекламу |
impressions | integer | Нет | Показы |
clicks | integer | Нет | Клики |
conversions | integer | Нет | Конверсии |
Запрос
curl "http://localhost:3000/v1/ad-metrics?cost=500&impressions=20000&clicks=400&conversions=20"
Ответ
{
"ok": true,
"data": {
"cpm": 25,
"cpc": 1.25,
"ctr": 2,
"conversionRate": 5,
"cpa": 25
}
}/v1/profit-margin
GETPOSTРассчитайте прибыль, маржу и наценку.
Параметры
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
cost | number | Да | Себестоимость |
price | number | Да | Цена продажи |
Запрос
curl "http://localhost:3000/v1/profit-margin?cost=75&price=100"
Ответ
{
"ok": true,
"data": {
"profit": 25,
"marginPercent": 25,
"markupPercent": 33.33
}
}Сеть
/v1/ip
GETPOSTВозвращает IP-адрес вызывающего клиента.
Запрос
curl "http://localhost:3000/v1/ip"
Ответ
{
"ok": true,
"data": {
"ip": "203.0.113.42",
"version": "IPv4"
}
}/v1/dns
GETPOSTПоиск DNS-записей. Проверка сети
Параметры
| Имя | Тип | Обязательный | Описание |
|---|---|---|---|
domain | string | Да | Домен или IPv4-адрес |
types | string | Нет | Через запятую: A, AAAA, CNAME, MX, TXT, NS, SOA, CAA, SRV, PTR. По умолчанию: распространённый набор |
Запрос
curl "http://localhost:3000/v1/dns?domain=example.com&types=A%2CMX"
Ответ
{
"ok": true,
"data": {
"domain": "example.com",
"results": [
{
"type": "A",
"status": 0,
"records": [
{
"name": "example.com",
"ttl": 300,
"type": "A",
"data": "93.184.215.14"
}
]
},
{
"type": "MX",
"status": 0,
"records": [
{
"name": "example.com",
"ttl": 3600,
"type": "MX",
"data": "0 mail.example.com."
}
]
}
],
"resolver": "Cloudflare 1.1.1.1 (DNS over HTTPS)"
}
}/v1/ssl
GETPOSTПроверка SSL-сертификата сайта. Проверка сети
Параметры
| Имя | Тип | Обязательный | Описание |
|---|---|---|---|
domain | string | Да | Имя хоста |
Запрос
curl "http://localhost:3000/v1/ssl?domain=example.com"
Ответ
{
"ok": true,
"data": {
"host": "example.com",
"valid": true,
"protocol": "TLSv1.3",
"daysLeft": 74,
"hostnameMatches": true,
"sans": [
"example.com",
"www.example.com"
],
"issuer": {
"C": "US",
"O": "Example CA",
"CN": "Example CA R1"
},
"validFrom": "Oct 1 00:00:00 2026 GMT",
"validTo": "Jan 12 23:59:59 2027 GMT"
}
}/v1/status
GETPOSTПроверка доступности сайта. Проверка сети
Параметры
| Имя | Тип | Обязательный | Описание |
|---|---|---|---|
url | string | Да | Страница для проверки |
Запрос
curl "http://localhost:3000/v1/status?url=https%3A%2F%2Fexample.com"
Ответ
{
"ok": true,
"data": {
"url": "https://example.com/",
"finalUrl": "https://example.com/",
"up": true,
"status": 200,
"time": 182,
"ttfb": 96,
"title": "Example Domain",
"server": "cloudflare",
"checkedAt": "2026-10-30T12:00:00.000Z"
}
}/v1/headers
GETPOSTЧтение HTTP-заголовков и оценка заголовков безопасности. Проверка сети
Параметры
| Имя | Тип | Обязательный | Описание |
|---|---|---|---|
url | string | Да | Страница для проверки |
Запрос
curl "http://localhost:3000/v1/headers?url=https%3A%2F%2Fexample.com"
Ответ
{
"ok": true,
"data": {
"url": "https://example.com/",
"status": 200,
"headers": {
"content-type": "text/html",
"server": "cloudflare"
},
"security": {
"score": 25,
"grade": "E",
"https": true,
"missing": [
"Content-Security-Policy",
"X-Frame-Options"
]
}
}
}/v1/redirects
GETPOSTОтслеживание цепочки перенаправлений URL. Проверка сети
Параметры
| Имя | Тип | Обязательный | Описание |
|---|---|---|---|
url | string | Да | URL, по которому нужно пройти |
Запрос
curl "http://localhost:3000/v1/redirects?url=http%3A%2F%2Fexample.com"
Ответ
{
"ok": true,
"data": {
"requested": "http://example.com/",
"final": "https://example.com/",
"status": 200,
"chain": [
{
"url": "http://example.com/",
"status": 301,
"time": 88
},
{
"url": "https://example.com/",
"status": 200,
"time": 126
}
],
"totalTime": 214
}
}/v1/whois
GETPOSTПоиск регистрационных данных домена или IP-адреса (RDAP). Проверка сети
Параметры
| Имя | Тип | Обязательный | Описание |
|---|---|---|---|
query | string | Да | Домен или IP-адрес |
Запрос
curl "http://localhost:3000/v1/whois?query=example.com"
Ответ
{
"ok": true,
"data": {
"kind": "domain",
"query": "example.com",
"domain": "EXAMPLE.COM",
"source": "https://rdap.verisign.com/com/v1/domain/example.com",
"status": [
"client delete prohibited"
],
"registrar": "Example Registrar",
"ianaId": "376",
"created": "1995-08-14T04:00:00Z",
"updated": "2026-08-14T08:01:43Z",
"expires": "2027-08-13T04:00:00Z",
"dnssec": true,
"nameservers": [
"ns1.example.net",
"ns2.example.net"
],
"entities": []
}
}/v1/meta
GETPOSTЧтение заголовка, описания и социальных тегов страницы. Проверка сети
Параметры
| Имя | Тип | Обязательный | Описание |
|---|---|---|---|
url | string | Да | Страница для чтения |
Запрос
curl "http://localhost:3000/v1/meta?url=https%3A%2F%2Fexample.com"
Ответ
{
"ok": true,
"data": {
"url": "https://example.com/",
"status": 200,
"title": "Example Domain",
"description": "An example page.",
"canonical": "https://example.com/",
"robots": null,
"openGraph": {
"title": "Example Domain",
"description": "An example page.",
"image": "https://example.com/og.png"
},
"twitter": {
"card": "summary_large_image",
"image": "https://example.com/og.png"
}
}
}/v1/robots
GETPOSTЧтение robots.txt сайта и проверка, разрешён ли путь. Проверка сети
Параметры
| Имя | Тип | Обязательный | Описание |
|---|---|---|---|
url | string | Да | Страница или сайт |
user_agent | string | Нет | Краулер для проверки. По умолчанию Googlebot |
Запрос
curl "http://localhost:3000/v1/robots?url=https%3A%2F%2Fexample.com%2F&user_agent=Googlebot"
Ответ
{
"ok": true,
"data": {
"exists": true,
"test": {
"path": "/",
"ua": "Googlebot",
"allowed": true,
"rule": null,
"group": "*"
},
"bots": [
{
"bot": "Googlebot",
"allowed": true,
"rule": null,
"group": "*"
},
{
"bot": "GPTBot",
"allowed": false,
"rule": "/",
"group": "gptbot"
}
]
}
}/v1/email-dns
GETPOSTПроверка настроек почты домена: MX, SPF и DMARC. Проверка сети
Параметры
| Имя | Тип | Обязательный | Описание |
|---|---|---|---|
domain | string | Да | Домен |
Запрос
curl "http://localhost:3000/v1/email-dns?domain=example.com"
Ответ
{
"ok": true,
"data": {
"domain": "example.com",
"checks": [
{
"id": "spf",
"status": "ok",
"title": "SPF valid · 0/10 lookups · -all",
"detail": "v=spf1 -all"
},
{
"id": "dmarc",
"status": "ok",
"title": "DMARC enforced · p=reject",
"detail": "v=DMARC1;p=reject"
}
]
}
}/v1/tech
GETPOSTОпределение технологий, которые использует сайт. Проверка сети
Параметры
| Имя | Тип | Обязательный | Описание |
|---|---|---|---|
url | string | Да | Сайт для проверки |
Запрос
curl "http://localhost:3000/v1/tech?url=https%3A%2F%2Fexample.com"
Ответ
{
"ok": true,
"data": {}
}