fe0.ru / api
публичный api — без ключей, без регистрации
base url https://fe0.ru формат JSON, UTF-8 auth не требуется
модули
общее

Все эндпоинты возвращают JSON. Ошибки также возвращаются в JSON с полем error. Rate limiting — по IP-адресу, лимиты указаны для каждого эндпоинта отдельно. При превышении — 429 Too Many Requests.

кодзначение
200успех
400неверный запрос (описание в поле error)
404не найдено
409конфликт (алиас уже занят)
429превышен rate limit
500внутренняя ошибка сервера
01 сокращатель ссылок
GET /link/api/stats статистика сервиса

Возвращает количество активных ссылок и остаток rate limit для текущего IP.

ответ
{
  "active": 142,
  "remaining": 4,
  "rate_limit": 5
}
POST /link/shorten создать короткую ссылку

Тело запроса — multipart/form-data или application/x-www-form-urlencoded.

параметры
полетипобязательноописание
long_urlstringдаURL для сокращения, макс. 2048 символов, должен начинаться с http:// или https://
prefixstringнетпрефикс пути: to, u, l, r (по умолчанию to)
domainstringнетfe0.ru или yup.su (по умолчанию fe0.ru)
custom_codestringнеткастомный алиас, 2–32 символа, только a-z 0-9 - _
ttl_hoursintegerнетсрок действия в часах, 0 = бессрочно (по умолчанию 0)
max_clicksintegerнетлимит переходов, 0 = без лимита (по умолчанию 0)
ответ 200
{
  "short": "https://fe0.ru/to/b5o",
  "code": "b5o",
  "prefix": "to",
  "domain": "fe0.ru",
  "remaining": 3
}
ответ 409 — алиас занят
{ "error": "алиас уже занят" }
ответ 429 — rate limit
{ "error": "лимит исчерпан, подожди минуту" }
Rate limit: 5 запросов в 60 секунд с одного IP. Повторный запрос с теми же параметрами возвращает существующую ссылку и не расходует лимит.
GET /{prefix}/{code} переход по короткой ссылке

Редирект 302 на оригинальный URL. Увеличивает счётчик переходов. Если ссылка истекла или исчерпан лимит кликов — редирект на /link.

пример
GET https://fe0.ru/to/b5o
→ 302 https://example.com/very/long/path
02 текст-канал (paste)
POST /paste/save создать пасту
параметры
полетипописание
contentstringтекст пасты, макс. 100 000 символов
burnstringon — удалить после первого прочтения (по умолчанию off)
ttlintegerсрок жизни в часах, 1–168 (по умолчанию 24)
ответ 200
{ "id": "xK2mQp_4aB8" }
Просмотр пасты: GET /paste/{id} — HTML-страница. Если burn=on, паста удаляется после первого обращения.
03 QR-генератор
POST /qr/generate сгенерировать QR-код
параметры
полетипописание
textstringтекст или URL для кодирования
fmtstringpng или svg (по умолчанию png)
sizeintegerразмер модуля в пикселях, 1–40 (по умолчанию 10)
errorstringуровень коррекции ошибок: L, M, Q, H (по умолчанию M)
ответ

Бинарный файл изображения с Content-Type image/png или image/svg+xml.

04 markdown → docx
POST /md2docx/convert конвертировать Markdown в DOCX
параметры
полетипописание
contentstringMarkdown-текст, макс. 200 000 символов
ответ

Бинарный файл result.docx с Content-Type application/vnd.openxmlformats-officedocument.wordprocessingml.document.

05 .gitignore
GET /gitignore/get?stacks=python,node получить .gitignore
параметры строки запроса
параметрописание
stacksчерез запятую: python, node, go, rust, java, dotnet, unity, terraform, docker, vscode, jetbrains, macos, linux, windows
ответ

Файл .gitignore с Content-Type text/plain.

пример
curl "https://fe0.ru/gitignore/get?stacks=python,docker" -o .gitignore
примечания
  • API предоставляется бесплатно и без гарантий SLA. Возможны перебои в работе.
  • Не используйте API для автоматизированного создания спама, фишинговых ссылок или иного контента, запрещённого правилами использования.
  • При значительной нагрузке с одного IP rate limit может быть ужесточён без предупреждения.
  • Вопросы и пожелания: egor@deev.space