Медиафайлы

Управление файлами

Как получать, удалять и связывать медиафайлы с external ID

После загрузки медиафайлов вы можете получать их информацию, удалять и управлять external ID.

Получите информацию о файле

По ID

const response = await fetch('https://crm.rentix.md/api/v1/media/123', {
  headers: {
    'Authorization': 'ApiKey YOUR_API_KEY'
  }
});

const media = await response.json();
console.log(media);

По external ID

const response = await fetch('https://crm.rentix.md/api/v1/media/external/apt-001-photo-1', {
  headers: {
    'Authorization': 'ApiKey YOUR_API_KEY'
  }
});

const media = await response.json();
console.log(media);

Ответ

{
  "id": 123,
  "externalId": "apt-001-photo-1",
  "size": 245000,
  "contentType": "image/jpeg",
  "optimization": "success",
  "blurhash": "L7HuX^zY1z-6ADx?0z2@1Io#{yV_",
  "originalUrl": "https://storage.../original.jpg",
  "variants": [
    { "url": "https://storage.../128.webp", "variantSize": "128", "size": 4074 },
    { "url": "https://storage.../512.webp", "variantSize": "512", "size": 32850 },
    { "url": "https://storage.../1024.webp", "variantSize": "1024", "size": 98500 }
  ]
}
ПолеОписание
idВнутренний ID файла
externalIdВаш ID из CRM (если был указан)
sizeРазмер оригинала в байтах
contentTypeMIME-тип файла
optimizationСтатус оптимизации
blurhashСтрока для генерации плейсхолдера
originalUrlURL оригинального файла
variantsОптимизированные версии разных размеров

Удалите файл

Удаление освобождает место и удаляет файл со всех объявлений, где он использовался.

По ID

const response = await fetch('https://crm.rentix.md/api/v1/media/123', {
  method: 'DELETE',
  headers: {
    'Authorization': 'ApiKey YOUR_API_KEY'
  }
});

const result = await response.json();
console.log(result); // { deleted: true }
Ответ
{
  "deleted": true
}

По external ID

const response = await fetch('https://crm.rentix.md/api/v1/media/external/apt-001-photo-1', {
  method: 'DELETE',
  headers: {
    'Authorization': 'ApiKey YOUR_API_KEY'
  }
});

const result = await response.json();
console.log(result); // { deleted: true, mediaId: 123 }
Ответ
{
  "deleted": true,
  "mediaId": 123
}
Удаление необратимо. Если файл привязан к объявлениям, он будет откреплён от них.

Управление external ID

Привяжите external ID

Если файл был загружен без external ID, его можно добавить позже:

const response = await fetch('https://crm.rentix.md/api/v1/media/123/link', {
  method: 'POST',
  headers: {
    'Authorization': 'ApiKey YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({ externalId: 'apt-001-photo-1' })
});

const result = await response.json();
console.log(result); // { mediaId: 123, externalId: 'apt-001-photo-1', linked: true }
Ответ
{
  "mediaId": 123,
  "externalId": "apt-001-photo-1",
  "linked": true
}

Отвяжите external ID

const response = await fetch('https://crm.rentix.md/api/v1/media/123/link', {
  method: 'DELETE',
  headers: {
    'Authorization': 'ApiKey YOUR_API_KEY'
  }
});

const result = await response.json();
console.log(result); // { mediaId: 123, externalId: 'apt-001-photo-1', unlinked: true }
Ответ
{
  "mediaId": 123,
  "externalId": "apt-001-photo-1",
  "unlinked": true
}

Статусы оптимизации

После загрузки файл проходит оптимизацию. Проверяйте поле optimization:

СтатусОписаниеДействие
pendingВ очередиПодождите
in_progressОбрабатываетсяПодождите
successГотовоМожно использовать
failedОшибкаЗагрузите другой файл

При привязке к объявлению система автоматически ждёт завершения оптимизации.


Частые ошибки

ОшибкаПричинаРешение
External ID already linkedID уже используется другим файломИспользуйте уникальный ID
File already has external IDУ файла уже есть external IDСначала отвяжите текущий
File not foundФайл не существует или принадлежит другому агентствуПроверьте ID
Copyright © 2026