Ваши файлы. Ваши интеграции.
Подключайте LF Drive к сайту, CRM, боту или серверному приложению. API доступен на Pro и Studio.
Первый запрос за минуту
- Войдите в LF Drive и подтвердите почту.
- Откройте «Интеграции → LF Drive API» на активном Pro или Studio.
- Создайте токен, например с правами
account:read,files:read,files:write,operations:read. - Сохраните токен в переменной окружения своего сервера.
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 не принимается на веру.
Отзыв запрещает новые запросы. Уже выполняющийся запрос может закончиться. Отозвать токен можно в кабинете даже после окончания тарифа.
Тарифы и лимиты
| Параметр | Pro | Studio |
|---|---|---|
| Запросы | 120/мин | 300/мин |
| Загрузки и замены | 10/мин | 30/мин |
| Активные токены | 10 | 30 |
| Статистика | До 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. При несовместимом изменении потребуется новая версия. Новые поля ответа могут добавляться: клиент должен игнорировать незнакомые поля. Неизвестные поля запроса отклоняются.