Главная › Настройка объекта › Фото объекта

4 Фото объекта

Загрузите фото интерьера и экстерьера вашего объекта для создания визуальной галереи.

Зачем добавлять фото?

Фотографии объекта необходимы для документирования состояния вашей арендной недвижимости. Они являются визуальными записями как для арендодателей, так и для арендаторов.

Преимущества

  • Документирование состояния объекта до и после заселения/выселения
  • Визуальная галерея для потенциальных арендаторов
  • Безопасное облачное хранилище ваших фото
  • Отдельные категории для фото интерьера и экстерьера

Как добавить фото

Вы можете загружать фото через веб-интерфейс или через API. Веб-интерфейс поддерживает загрузку файлов перетаскиванием.

В веб-интерфейсе: откройте страницу объекта, затем нажмите "Фото / Видео" в меню объекта, чтобы открыть медиа-галерею.

Смотрите полную документацию в Библиотеке: Фото и видео объектов.

Типы медиа

Каждое фото или видео принадлежит к одному из пяти типов медиа. Используйте соответствующий тип для правильной организации.

PHOTO_INTERIOR Комнаты, кухня, ванная
PHOTO_EXTERIOR Здание, двор, парковка
VIDEO_INTERIOR Видео-тур интерьера (YouTube)
VIDEO_EXTERIOR Видео-тур экстерьера (YouTube)
PHOTO_OTHER Прочее (документы, чеки и т.д.)

Требования к загрузке

Форматы JPG, PNG, WEBP
Макс. размер 10 MB
Хранение Безопасное облако
Видео Только URL YouTube (встраиваемые)

Для разработчиков: REST API

Вы можете управлять медиа объекта через REST API. Фото загружаются как контент в кодировке base64.

POST Загрузить фото

▶

Загрузите фото, отправив содержимое файла как строку в кодировке base64. Укажите тип документа для категоризации фото.

POST /api/v1/properties/{id}/documents

Заголовки:

Authorization: Bearer {token} Content-Type: application/json

Обязательные поля:

document_type_id ID типа документа (6, 7, 10...)
file_content Содержимое файла в кодировке base64
file_name Оригинальное имя файла с расширением
mime_type MIME тип (image/webp, image/jpeg...)

Необязательные поля:

comment Описание или комментарий к фото

Тело запроса:

{ "document_type_id": 6, "file_content": "base64-encoded-file-content...", "file_name": "living-room.webp", "mime_type": "image/webp", "comment": "Living room photo" }
ID типов документов: 6 = PHOTO_INTERIOR, 7 = PHOTO_EXTERIOR, 10 = PHOTO_OTHER. Используйте GET /api/document-types для полного списка.

Ответ (201 Created):

{ "message": "Document uploaded successfully", "data": { "id": 45, "property_id": "019a1b2c-3d4e-7f5a-8b9c-0123456789ab", "document_type": { "id": 6, "code": "PHOTO_INTERIOR", "name_key": "document_type.photo_interior" }, "file_url": "https://landlordkeeper.com/file/cG1mOjQ1OjA6...", "original_name": "living-room.webp", "file_size": 125000, "file_size_formatted": "122.07 KB", "mime_type": "image/webp", "extension": "webp", "is_image": true, "is_video": false, "is_pdf": false, "comment": "Living room photo", "created_at": "2026-02-20T12:00:00+00:00" } }

GET Список медиа объекта

▶

Получить все документы объекта. Используйте фильтр type_id для показа только определённых типов медиа.

GET /api/v1/properties/{id}/documents

Параметры запроса:

type_id Фильтр по ID типа документа (например, 6 для фото интерьера)

Ответ (200 OK):

{ "data": [ { "id": 45, "property_id": "019a1b2c-3d4e-7f5a-8b9c-0123456789ab", "document_type": {"id": 6, "code": "PHOTO_INTERIOR"}, "file_url": "https://landlordkeeper.com/file/cG1mOjQ1OjA6...", "original_name": "living-room.webp", "file_size": 125000, "is_image": true, "comment": "Living room photo", "created_at": "2026-02-20T12:00:00+00:00" } ], "total": 3, "stats": { "total_count": 3, "total_size": 375000, "total_size_formatted": "366.21 KB" } }

GET Получить типы документов

▶

Получить список всех доступных типов документов с их ID, разрешёнными расширениями и ограничениями размера.

GET /api/v1/document-types

Этот эндпоинт не требует аутентификации.

Ответ (200 OK):

{ "data": [ {"id": 6, "code": "PHOTO_INTERIOR", "allowed_extensions": "jpg,jpeg,png,webp", "max_size_mb": 10}, {"id": 7, "code": "PHOTO_EXTERIOR", "allowed_extensions": "jpg,jpeg,png,webp", "max_size_mb": 10}, {"id": 8, "code": "VIDEO_INTERIOR", "allowed_extensions": "mp4,webm", "max_size_mb": 50}, {"id": 9, "code": "VIDEO_EXTERIOR", "allowed_extensions": "mp4,webm", "max_size_mb": 50}, {"id": 10, "code": "PHOTO_OTHER", "allowed_extensions": "jpg,jpeg,png,webp", "max_size_mb": 10} ] }

Примеры cURL:

curl https://landlordkeeper.com/api/v1/document-types

DELETE Удалить фото

▶

Удалить документ по его ID. Файл и запись в базе данных окончательно удаляются.

DELETE /api/v1/documents/{documentId}

Используйте ID документа из ответа на запрос списка (GET) или загрузки (POST).

Ответ (200 OK):

{"message": "Document deleted successfully"}

Примеры cURL

▶

1. Загрузить фото

curl -X POST https://landlordkeeper.com/api/v1/properties/019a1b2c-3d4e-7f5a-8b9c-0123456789ab/documents \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_TOKEN_HERE" \ -d '{ "document_type_id": 6, "file_content": "'$(base64 -w 0 photo.webp)'", "file_name": "living-room.webp", "mime_type": "image/webp", "comment": "Living room" }'

2. Список медиа объекта

curl https://landlordkeeper.com/api/v1/properties/019a1b2c-3d4e-7f5a-8b9c-0123456789ab/documents?type_id=6 \ -H "Authorization: Bearer YOUR_TOKEN_HERE"

3. Удалить фото

curl -X DELETE https://landlordkeeper.com/api/v1/documents/45 \ -H "Authorization: Bearer YOUR_TOKEN_HERE"
Замените YOUR_TOKEN_HERE на JWT-токен из шага аутентификации.