FastPaste API
FastPaste REST API v1
Начало работы
API FastPaste позволяет программно создавать, получать и удалять пасты.
Аутентификация
Все запросы к API требуют заголовок X-API-Key:
Base URL
Формат ответа
Все ответы в формате JSON:
POST /api/v1/paste
Создаёт новую пасту.
Текстовая паста (JSON)
| Параметр | Тип | Обязательно | Описание |
|---|---|---|---|
content | string | Да | Содержимое пасты (мин. 3, макс. 4.00 MB) |
title | string | Нет | Заголовок пасты |
description | string | Нет | Описание (макс. 500 символов) |
expiry | string | Нет | Длительность: 10m, 30m, 1h, 3h, 6h, 12h, 1d, 2d, 3d, 1w, 2w, 1m, never (по умолчанию: 1d) |
password | string | Нет | Защита паролем |
burn | boolean | Нет | Просмотр один раз и удаление. Если true, паста автоматически удаляется после первого просмотра (по умолчанию: false). |
encrypt | boolean | Нет | Сквозное шифрование. Если true, содержимое должно быть зашифрованной на стороне клиента строкой «fpe1:...» (см. раздел E2E). По умолчанию: false. |
key | string | Нет | Ключ расшифровки в формате base64url. Необязательный; используется только для добавления #ключ к возвращаемой ссылке и никогда не сохраняется на сервере. Оставьте пустым, чтобы ключ оставался полностью на стороне клиента. |
downloadable | boolean | Нет | Делает E2E-зашифрованный paste доступным для скачивания (по умолчанию: false). Предназначен для использования с encrypt=true; для незашифрованных paste не имеет эффекта, и ответ содержит предупреждение (незашифрованные paste и так всегда доступны для скачивания). |
language | string | Нет | Язык подсветки синтаксиса (напр. python, javascript). Определяется автоматически, если не указан; для E2E сохраняется для подсветки после расшифровки. |
public | boolean | Нет | Если true, paste попадает в публичный архив и sitemap. По умолчанию false. Игнорируется при использовании пароля, самоуничтожения или шифрования. |
slug | string | Нет | Пользовательский короткий адрес (например, «my-notes» → /view/my-notes). Если занят, назначается похожий. |
Загрузка файла (multipart/form-data)
| Параметр | Тип | Обязательно | Описание |
|---|---|---|---|
file | file | Да | Файл для загрузки (макс. 10.00 MB) |
description | string | Нет | Описание файла |
expiry | string | Нет | Срок |
password | string | Нет | Защита паролем |
burn | boolean | Нет | Просмотр один раз и удаление. Если true, паста автоматически удаляется после первого просмотра (по умолчанию: false). |
encrypt | boolean | Нет | Сквозное шифрование. Если true, содержимое должно быть зашифрованной на стороне клиента строкой «fpe1:...» (см. раздел E2E). По умолчанию: false. |
key | string | Нет | Ключ расшифровки в формате base64url. Необязательный; используется только для добавления #ключ к возвращаемой ссылке и никогда не сохраняется на сервере. Оставьте пустым, чтобы ключ оставался полностью на стороне клиента. |
downloadable | boolean | Нет | Делает E2E-зашифрованный paste доступным для скачивания (по умолчанию: false). Предназначен для использования с encrypt=true; для незашифрованных paste не имеет эффекта, и ответ содержит предупреждение (незашифрованные paste и так всегда доступны для скачивания). |
Сквозное шифрование (E2E)
Зашифруйте содержимое на своей стороне с помощью AES-GCM (256 бит), затем отправьте шифртекст как content. Сервер хранит только зашифрованные данные и никогда не видит открытый текст. Используется тот же формат, что и в веб-интерфейсе.
Формат шифртекста: fpe1:<base64(iv)>:<base64(шифртекст)> — где iv это случайное 12-байтовое значение, а шифртекст включает тег GCM.
GET /api/v1/paste/{id}
Получает сведения и содержимое пасты.
PUT /api/v1/paste/{id}
Обновляет существующий paste (только принадлежащие этому API-ключу). Отправляйте только изменяемые поля: content (только текст), title, description, expiry, burn, password, language, downloadable. Если content «fpe1:...», добавьте encrypt и key.
Пример запроса (cURL)GET /api/v1/pastes
Список paste, созданных этим API-ключом (сначала новые). Пагинация: page и limit (1–100).
Пример запроса (cURL)GET /api/v1/paste/{id}/raw
Возвращает содержимое пасты в виде обычного текста. Подходит для скриптов и автоматизации.
ПримерОтвет: Content-Type: text/plain
DELETE /api/v1/paste/{id}
Удаляет пасту. Можно удалить только пасты, созданные с тем же API-ключом.
ПримерPOST /api/v1/cli
Быстрое создание paste из командной строки (curl). Отправляйте содержимое как сырое тело запроса из stdin или как поле формы (content/paste/f:1). Ответ по умолчанию — URL в виде обычного текста.
Параметр
| Параметр | Тип | Обязательно | Описание |
|---|---|---|---|
(gövde) | raw / form | Да | Содержимое paste. Для сырого тела рекомендуется text/plain (чтобы сохранить = и &). |
expiry | string | Нет | Длительность: 10m, 30m, 1h, 3h, 6h, 12h, 1d, 2d, 3d, 1w, 2w, 1m, never (по умолчанию: 1d) |
title | string | Нет | Заголовок пасты |
lang | string | Нет | Язык подсветки синтаксиса (напр. python, javascript). Определяется автоматически, если не указан; для E2E сохраняется для подсветки после расшифровки. |
burn | boolean | Нет | Просмотр один раз и удаление. Если true, паста автоматически удаляется после первого просмотра (по умолчанию: false). |
Accept: application/json veya ?json=1 ile JSON döner. GET /api/v1/cli kullanım örneklerini gösterir.
Разрешённые расширения файлов
.txt
.log
.json
.xml
.yaml
.yml
.ini
.cfg
.conf
.md
.csv
.sql
.js
.ts
.html
.htm
.css
.py
.java
.go
.rs
.c
.cpp
.h
.hpp
.lua
.rb
.jsx
.tsx
.vue
.svelte
.scss
.sass
.less
.toml
.gitignore
.dockerfile
.makefile
.bat
.ps1
.r
.swift
.kt
.kts
.scala
.pl
.pm
.tcl
.awk
.sed
.diff
.patch
.tf
.hcl
.proto
.graphql
.tex
.bib
.rst
.adoc
.org
.wiki
.properties
.gradle
.cmake
.mak
Ограничения частоты запросов
Для каждого API-ключа можно задать отдельные ограничения частоты:
| Тип лимита | Описание |
|---|---|
| Лимит в час | Максимум запросов в час (0 = без ограничений) |
| Дневной лимит | Максимум запросов в день |
| Месячный лимит | Максимум запросов в месяц |
При превышении лимита возвращается ответ 429 Too Many Requests.
Коды ошибок
| Код | Значение |
|---|---|
400 | Неверный запрос (отсутствующий или неправильный параметр) |
401 | Отсутствует API-ключ |
403 | Недействительный/неактивный API-ключ или доступ запрещён |
404 | Паста не найдена или истекла |
405 | Метод HTTP не разрешён |
413 | Файл слишком большой |
429 | Превышен лимит запросов |
500 | Ошибка сервера |
503 | API отключён |
Уведомления Webhook
Для каждого API-ключа можно настроить отдельный URL вебхука. При создании новой пасты отправляется POST-запрос:
Получить API-ключ
Свяжитесь с администратором, чтобы получить API-ключ или увеличить лимит.
Связаться с администратором