LF Drive
Документация · v1.0.0

Ваши файлы. Ваши интеграции.

Подключайте LF Drive к сайту, CRM, боту или серверному приложению. API доступен на Pro и Studio.

Первый запрос за минуту

  1. Войдите в LF Drive и подтвердите почту.
  2. Откройте «Интеграции → LF Drive API» на активном Pro или Studio.
  3. Создайте токен, например с правами account:read, files:read, files:write, operations:read.
  4. Сохраните токен в переменной окружения своего сервера.
export LFDRIVE_API_TOKEN='ВАШ_ТОКЕН'
curl --fail-with-body 'https://lfdrive.ru/api/v1/account' \
  -H "Authorization: Bearer $LFDRIVE_API_TOKEN"

Базовый URL: https://lfdrive.ru/api/v1. Короткие пути настраивает установщик. Резервный вариант без rewrite: /api/v1/index.php?path=/account.

{
  "ok": true,
  "data": { "id": 123, "plan": "pro", "...": "..." },
  "request_id": "0123456789abcdef0123456789abcdef"
}

Пример ответа сокращён. Суммы продаж передаются строками в RUB, размеры — в байтах. Даты expires_at для ссылок используют ISO 8601 с часовым поясом; даты из существующих таблиц сохраняют формат сервиса.

Токен — доступ к вашему аккаунту

Передавайте Authorization: Bearer lf_api_…. Токены Figma, WordPress и расширения здесь не принимаются. API не использует cookie для авторизации.

Каждому токену назначаются отдельные права. Права с :delete, а также доступ к заявкам, покупателям и магазину включайте осознанно. Для смены прав создайте новый токен и отзовите старый. Срок токена — от 1 до 365 дней.

Опционально можно разрешить конкретные IPv4/IPv6 или CIDR. Проверяется адрес соединения REMOTE_ADDR; при CDN настройте доверенный real-IP в Nginx. Клиентский X-Forwarded-For самим API не принимается на веру.

Отзыв запрещает новые запросы. Уже выполняющийся запрос может закончиться. Отозвать токен можно в кабинете даже после окончания тарифа.

Тарифы и лимиты

ПараметрProStudio
Запросы120/мин300/мин
Загрузки и замены10/мин30/мин
Активные токены1030
СтатистикаДо 90 днейДо 365 дней
Дополнительные поля, дизайн форм, брендинг, свои домены, закрепление версийНедоступноДоступно

Лимит запросов общий для всех токенов аккаунта. Окна фиксированные по минуте. Хранилище, антивирус, история версий и трафик — штатные правила тарифа. Дополнительная оплата за API этим обновлением не вводится.

После перехода на Basic/Free или неактивного статуса подписки API отвечает 403 plan_required. Токены остаются, но не работают до восстановления доступа. Публичные ссылки продолжают жить по правилам LF Drive.

Фактический предел одной загрузки возвращается в GET /account: это минимум PHP upload_max_filesize и post_max_size. Для multipart учитывайте накладные расходы запроса.

Изменения без случайных дублей

Для каждого POST/PATCH/PUT/DELETE нужен заголовок Idempotency-Key: 16–128 символов A–Z a–z 0–9 . _ : -. Для нового действия создавайте новый ключ, при повторе того же действия сохраняйте прежний.

curl --fail-with-body 'https://lfdrive.ru/api/v1/files' \
  -H "Authorization: Bearer $LFDRIVE_API_TOKEN" \
  -H 'Idempotency-Key: upload-20261014-0001' \
  -F 'file=@/path/to/guide.pdf'

Повтор с тем же токеном, ключом, методом, путём и содержимым возвращает сохранённый результат. Другие данные под тем же ключом дают 409 idempotency_conflict. Имя и содержимое файла также участвуют в проверке. Ключи привязаны к токену. Завершённые операции хранятся 30 дней; неопределённые pending не удаляются автоматически.

При сетевом обрыве повторите тот же запрос или вызовите GET /operations/{key}. Если статус pending или ошибка operation_uncertain, не создавайте новый ключ автоматически: операция могла успеть изменить S3 или базу. Проверьте объект и обратитесь в поддержку с request_id.

Одна изменяющая операция аккаунта выполняется одновременно; при 409 busy подождите и повторите с тем же ключом. При 429 соблюдайте Retry-After. GET-запросы можно повторять с увеличением задержки. При 401/403/422 сначала исправьте причину.

HTTPЗначение
400Некорректный JSON, путь или ключ операции
401Неверный, отозванный или истёкший токен
403Тариф, права токена или IP не разрешают действие
404 / 405Ресурс не найден / неверный метод
409Конфликт, занятость или неопределённый результат
413 / 415 / 422Размер / тип тела запроса / проверка данных
429 / 500Лимит запросов / ошибка сервера

Синхронизация и события

Списки файлов, проектов, версий, форм, покупок и блоков используют limit (1–100) и before_id. Передавайте next_before_id следующему запросу, пока не получите null. Порядок — ID по убыванию. Заявки используют page и limit.

Для CRM опрашивайте новые заявки и покупки с разумным интервалом, например раз в минуту, и сохраняйте обработанные ID. Статус покупки может измениться, поэтому повторно сверяйте незавершённые покупки. Вебхуки внешним приложениям в эту версию не входят. Журнал /audit содержит только запросы API, а не все изменения из кабинета или плагинов.

Статистика CDN обновляется после существующего импорта логов. API не запускает импорт автоматически.

Все операции

Границы и безопасность

Это серверный API владельца аккаунта. Не выдавайте его токен посетителю формы, покупателю, браузерному расширению клиента или публичному JavaScript. CORS для сторонних сайтов не включён; CORS не заменяет защиту токена.

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

Посетители отправляют файлы через публичные формы LF Drive с их проверками и CAPTCHA. Покупатели оплачивают через существующие страницы оплаты. API не меняет статусы платежей, не делает возвраты и списания, не меняет подписку и не раскрывает платёжные секреты.

Для настройки логотипов отдельных заглушек используйте кабинет; API умеет загрузить общий логотип и изменить стили и тексты заглушек. Публичные настройки дизайна не предоставляют доступ к чужим файлам.

Для обновлений API сохраняется префикс /v1. При несовместимом изменении потребуется новая версия. Новые поля ответа могут добавляться: клиент должен игнорировать незнакомые поля. Неизвестные поля запроса отклоняются.