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

Этот перевод приведён для удобства. Юридическую силу имеет версия на английском языке.

Установить в ChromeУстановить в Firefox

Используйте самые полезные инструменты devpack прямо из своего кода. API бесплатен, не требует регистрации и возвращает JSON. Каждый эндпоинт принимает GET с параметрами запроса или POST с телом в формате JSON.

Все эндпоинты

Быстрый старт

Базовый 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" }
}
СтатусКодЗначение
400invalid_requestПараметр отсутствует или некорректен
401invalid_keyКлюч API недействителен
404not_foundНеизвестный эндпоинт
429rate_limitedДостигнут лимит. Подождите Retry-After секунд
502upstream_errorПроверяемый сайт или сервис вернул ошибку
503unavailableAPI временно недоступен

Лимиты запросов

Ключ не нужен. Бесплатное использование учитывается по 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.

Параметры

ИмяТипОбязательныйОписание
textstringДаТекст для хеширования, до 100 КБ
algorithmstringНетmd5, sha1, sha256 (по умолчанию), sha384 или sha512
encodingstringНет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.

Параметры

ИмяТипОбязательныйОписание
textstringДаВходные данные, до 100 КБ
actionstringНетencode (по умолчанию) или decode
url_safebooleanНетИспользовать URL-безопасный алфавит. По умолчанию false

Запрос

curl "http://localhost:3000/v1/base64?text=hello+world&action=encode"

Ответ

{
  "ok": true,
  "data": {
    "action": "encode",
    "result": "aGVsbG8gd29ybGQ="
  }
}

/v1/url-encode

GETPOST

Процентное кодирование и декодирование строки.

Параметры

ИмяТипОбязательныйОписание
textstringДаВходные данные, до 100 КБ
actionstringНет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.

Параметры

ИмяТипОбязательныйОписание
textstringДаТекст для преобразования
separatorstringНет- (по умолчанию) или _

Запрос

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

Подсчёт слов, символов, строк и времени чтения.

Параметры

ИмяТипОбязательныйОписание
textstringДаТекст, до 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 с последующим форматированием или минификацией.

Параметры

ИмяТипОбязательныйОписание
jsonstringДаТекст JSON, до 100 КБ
indentintegerНетКоличество пробелов на уровень, 0–8. По умолчанию 2
minifybooleanНетУдалить все пробельные символы. По умолчанию 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 без проверки подписи.

Параметры

ИмяТипОбязательныйОписание
tokenstringДа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

Сортировка строк текста.

Параметры

ИмяТипОбязательныйОписание
textstringДаОдин элемент в строке, до 100 КБ
orderstringНетasc (по умолчанию) или desc
numericbooleanНетСравнивать числа по значению. По умолчанию 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

Удаление повторяющихся строк с сохранением первого вхождения.

Параметры

ИмяТипОбязательныйОписание
textstringДаОдин элемент в строке, до 100 КБ
ignore_casebooleanНетСчитать A и a одинаковыми. По умолчанию false
trimbooleanНетИгнорировать пробелы в начале и конце строк. По умолчанию 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

Поиск и замена обычного текста.

Параметры

ИмяТипОбязательныйОписание
textstringДаТекст, до 100 КБ
findstringДаТекст для поиска
replacestringНетНовый текст. По умолчанию: пусто
ignore_casebooleanНетИгнорировать регистр букв. По умолчанию 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

Подсчёт частоты появления каждого слова.

Параметры

ИмяТипОбязательныйОписание
textstringДаТекст, до 100 КБ
limitintegerНетКоличество слов в ответе, 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.

Параметры

ИмяТипОбязательныйОписание
textstringДаТекст, до 100 КБ
tostringДа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-сущностей.

Параметры

ИмяТипОбязательныйОписание
textstringДаТекст, до 100 КБ
actionstringНет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.

Параметры

ИмяТипОбязательныйОписание
csvstringДаCSV, до 100 КБ
delimiterstringНетcomma (по умолчанию), semicolon, tab или pipe
headerbooleanНетПервая строка содержит названия столбцов. По умолчанию 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.

Параметры

ИмяТипОбязательныйОписание
jsonstringДаМассив объектов 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.

Параметры

НазваниеТипОбязательныйОписание
countintegerНет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

Генерация надёжных случайных паролей.

Параметры

НазваниеТипОбязательныйОписание
lengthintegerНет8–128. По умолчанию 20
countintegerНет1–50. По умолчанию 1
symbolsbooleanНетВключать символы. По умолчанию true
numbersbooleanНетВключать цифры. По умолчанию true
uppercasebooleanНетВключать заглавные буквы. По умолчанию 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.

Параметры

НазваниеТипОбязательныйОписание
sizeintegerНетДлина, 4–64. По умолчанию 21
countintegerНет1–100. По умолчанию 1

Запрос

curl "http://localhost:3000/v1/nanoid?size=12&count=2"

Ответ

{
  "ok": true,
  "data": {
    "ids": [
      "GNOQbfd-O1hQ",
      "jKrBmTrBHvyb"
    ]
  }
}

/v1/hmac

GETPOST

Создание подписи HMAC, например для подписи вебхуков.

Параметры

НазваниеТипОбязательныйОписание
textstringДаСообщение, до 100 КБ
secretstringДаСекретный ключ. Передавайте его в теле POST-запроса
algorithmstringНетsha1, sha256 (по умолчанию) или sha512
encodingstringНет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

Генерация текста-заглушки.

Параметры

НазваниеТипОбязательныйОписание
paragraphsintegerНет1–20. По умолчанию 1
wordsintegerНетКоличество слов в абзаце, 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

Генерация криптографически стойких случайных целых чисел.

Параметры

НазваниеТипОбязательныйОписание
minintegerНетНаименьшее значение. По умолчанию 1
maxintegerНетНаибольшее значение. По умолчанию 100
countintegerНет1–100. По умолчанию 1
uniquebooleanНетБез повторов. По умолчанию 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.

Параметры

ИмяТипОбязательныйОписание
valuestringДаНапример, #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.

Параметры

ИмяТипОбязательныйОписание
valuestringНет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 на составные части.

Параметры

ИмяТипОбязательныйОписание
urlstringДа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.

Параметры

ИмяТипОбязательныйОписание
valuestringДаЧисло
fromintegerНетИсходная система счисления. По умолчанию 10
tointegerНетЦелевая система счисления. По умолчанию 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

Перевод единиц длины, массы, температуры, объёма данных и времени.

Параметры

ИмяТипОбязательныйОписание
valuenumberДаЗначение
fromstringДа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
tostringДаЦелевая единица того же типа

Запрос

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

Расчёт интервала между двумя датами.

Параметры

ИмяТипОбязательныйОписание
fromstringДаНачальная дата в формате ISO
tostringНетКонечная дата. По умолчанию: текущее время

Запрос

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.

Параметры

ИмяТипОбязательныйОписание
expressionstringДаПять полей: минута, час, день, месяц, день недели
countintegerНетОт 1 до 20. По умолчанию 5
fromstringНетНачальная дата. По умолчанию: текущее время

Запрос

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

Перевод между арабскими числами и римскими цифрами.

Параметры

ИмяТипОбязательныйОписание
valuestringДаЧисло от 1 до 3999 или римская цифра

Запрос

curl "http://localhost:3000/v1/roman-numeral?value=2026"

Ответ

{
  "ok": true,
  "data": {
    "number": 2026,
    "roman": "MMXXVI"
  }
}

/v1/percentage

GETPOST

Расчёт процентов и процентного изменения.

Параметры

ИмяТипОбязательныйОписание
valuenumberДаПервое число
ofnumberДаВторое число
modestringНет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

Добавление или вычитание времени из даты.

Параметры

ИмяТипОбязательныйОписание
datestringДаНачальная дата в формате ISO
daysintegerНетКоличество дней для добавления. Для вычитания используйте знак минус
monthsintegerНетКоличество месяцев для добавления
yearsintegerНетКоличество лет для добавления

Запрос

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

Расчёт возраста в годах, месяцах и днях.

Параметры

ИмяТипОбязательныйОписание
birthdatestringДаДата рождения в формате ISO
onstringНетДата, на которую рассчитывается возраст. По умолчанию: сегодня

Запрос

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-кода статуса.

Параметры

ИмяТипОбязательныйОписание
codeintegerДа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 вызывающего клиента.

Параметры

ИмяТипОбязательныйОписание
uastringНетСтрока 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_aintegerДаПосетители версии A
conversions_aintegerДаКонверсии версии A
visitors_bintegerДаПосетители версии B
conversions_bintegerДаКонверсии версии B
confidenceintegerНет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-теста.

Параметры

НазваниеТипОбязательныйОписание
baselinenumberДаТекущий показатель конверсии в процентах, например 5
changenumberДаМинимальное относительное изменение, которое нужно выявить, в процентах, например 20
confidenceintegerНет90, 95 (по умолчанию) или 99
powerintegerНет80 (по умолчанию) или 90
daily_visitorsintegerНетЕжедневное количество посетителей для оценки длительности теста

Запрос

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.

Параметры

НазваниеТипОбязательныйОписание
spendnumberДаРасходы на рекламу
revenuenumberДаВыручка от рекламы
marginnumberНетМаржа прибыли в процентах, для расчёта точки безубыточности 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 и коэффициент конверсии.

Параметры

НазваниеТипОбязательныйОписание
costnumberДаРасходы на рекламу
impressionsintegerНетПоказы
clicksintegerНетКлики
conversionsintegerНетКонверсии

Запрос

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

Рассчитайте прибыль, маржу и наценку.

Параметры

НазваниеТипОбязательныйОписание
costnumberДаСебестоимость
pricenumberДаЦена продажи

Запрос

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-записей. Проверка сети

Параметры

ИмяТипОбязательныйОписание
domainstringДаДомен или IPv4-адрес
typesstringНетЧерез запятую: 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-сертификата сайта. Проверка сети

Параметры

ИмяТипОбязательныйОписание
domainstringДаИмя хоста

Запрос

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

Проверка доступности сайта. Проверка сети

Параметры

ИмяТипОбязательныйОписание
urlstringДаСтраница для проверки

Запрос

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-заголовков и оценка заголовков безопасности. Проверка сети

Параметры

ИмяТипОбязательныйОписание
urlstringДаСтраница для проверки

Запрос

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. Проверка сети

Параметры

ИмяТипОбязательныйОписание
urlstringДа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). Проверка сети

Параметры

ИмяТипОбязательныйОписание
querystringДаДомен или 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

Чтение заголовка, описания и социальных тегов страницы. Проверка сети

Параметры

ИмяТипОбязательныйОписание
urlstringДаСтраница для чтения

Запрос

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 сайта и проверка, разрешён ли путь. Проверка сети

Параметры

ИмяТипОбязательныйОписание
urlstringДаСтраница или сайт
user_agentstringНетКраулер для проверки. По умолчанию 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. Проверка сети

Параметры

ИмяТипОбязательныйОписание
domainstringДаДомен

Запрос

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

Определение технологий, которые использует сайт. Проверка сети

Параметры

ИмяТипОбязательныйОписание
urlstringДаСайт для проверки

Запрос

curl "http://localhost:3000/v1/tech?url=https%3A%2F%2Fexample.com"

Ответ

{
  "ok": true,
  "data": {}
}