Начало работы
Быстрый старт
Опубликуйте первое объявление за один запрос
Опубликуйте объявление на Rentix за один запрос. Отправьте данные объекта, ссылки на фото и статус active — система сделает всё остальное.
Что понадобится:
- API ключ (как получить)
- 3+ фотографии объекта, доступных по URL
Предпочитаете Postman? Импортируйте нашу коллекцию Postman с готовыми запросами и примерами для всех эндпоинтов API.
Шаг 1. Проверьте подключение
Убедитесь, что API ключ работает.
const response = await fetch('https://crm.rentix.md/api/v1/agency', {
headers: { 'Authorization': 'ApiKey YOUR_API_KEY' }
});
const agency = await response.json();
console.log(`Агентство: ${agency.name}`);
curl https://crm.rentix.md/api/v1/agency \
-H "Authorization: ApiKey YOUR_API_KEY"
$ch = curl_init('https://crm.rentix.md/api/v1/agency');
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: ApiKey YOUR_API_KEY']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$agency = json_decode($response, true);
echo "Агентство: " . $agency['name'];
Ответ
{
"id": 1,
"name": "Ваше Агентство",
"limits": {
"monthlyListings": { "used": 0, "limit": 1000 }
}
}
Шаг 2. Опубликуйте объявление
Отправьте все данные в одном запросе: информацию об объекте, URL фотографий и статус active.
const response = await fetch('https://crm.rentix.md/api/v1/listings', {
method: 'PUT',
headers: {
'Authorization': 'ApiKey YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
// Ваш ID из CRM — используйте для всех операций с этим объявлением
externalId: 'apt-001',
// Тип: аренда квартиры
announcementType: 'rent',
propertyType: 'residential',
propertySecondaryType: 'apartment',
// Цена
announcementValue: 500,
announcementCurrency: 'EUR',
announcementPayPeriod: 'monthly',
// Характеристики
propertyArea: 65,
propertyFloorNumber: 3,
propertyFloorsTotal: 9,
propertyQuantitySize: 'custom-value',
propertyQuantitySizeValue: 3, // 3 комнаты
propertyHousingMarket: 'new-build', // новостройка
propertyVisualState: 'euro-renovation', // евроремонт
// Местоположение (или propertyCoordinates: { lat, lng } — рекомендуется)
propertyAddress: 'Chișinău, str. Columna 81/1',
// Описание (необязательно, 40–2000 символов)
announcementDescription: 'Уютная 3-комнатная квартира с тёплыми полами и автономным отоплением.',
// Фото — достаточно указать URL
files: [
{ url: 'https://placehold.co/1920x1080/jpg?text=Гостиная' },
{ url: 'https://placehold.co/1920x1080/jpg?text=Спальня' },
{ url: 'https://placehold.co/1920x1080/jpg?text=Кухня' }
],
// Сразу публикуем
announcementStatus: 'active'
})
});
const result = await response.json();
console.log(`Объявление: ${result.publicUrl}`);
console.log(`Статус: ${result.status}`);
curl -X PUT https://crm.rentix.md/api/v1/listings \
-H "Authorization: ApiKey YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"externalId": "apt-001",
"announcementStatus": "active",
"announcementType": "rent",
"propertyType": "residential",
"propertySecondaryType": "apartment",
"announcementValue": 500,
"announcementCurrency": "EUR",
"announcementPayPeriod": "monthly",
"propertyArea": 65,
"propertyFloorNumber": 3,
"propertyFloorsTotal": 9,
"propertyQuantitySize": "custom-value",
"propertyQuantitySizeValue": 3,
"propertyHousingMarket": "new-build",
"propertyVisualState": "euro-renovation",
"propertyAddress": "Chișinău, str. Columna 81/1",
"announcementDescription": "Уютная 3-комнатная квартира с тёплыми полами и автономным отоплением.",
"files": [
{ "url": "https://placehold.co/1920x1080/jpg?text=Гостиная" },
{ "url": "https://placehold.co/1920x1080/jpg?text=Спальня" },
{ "url": "https://placehold.co/1920x1080/jpg?text=Кухня" }
]
}'
$listing = [
'externalId' => 'apt-001',
'announcementType' => 'rent',
'propertyType' => 'residential',
'propertySecondaryType' => 'apartment',
'announcementValue' => 500,
'announcementCurrency' => 'EUR',
'announcementPayPeriod' => 'monthly',
'propertyArea' => 65,
'propertyFloorNumber' => 3,
'propertyFloorsTotal' => 9,
'propertyQuantitySize' => 'custom-value',
'propertyQuantitySizeValue' => 3,
'propertyHousingMarket' => 'new-build',
'propertyVisualState' => 'euro-renovation',
'propertyAddress' => 'Chișinău, str. Columna 81/1',
'announcementDescription' => 'Уютная 3-комнатная квартира с тёплыми полами и автономным отоплением.',
'files' => [
['url' => 'https://placehold.co/1920x1080/jpg?text=Гостиная'],
['url' => 'https://placehold.co/1920x1080/jpg?text=Спальня'],
['url' => 'https://placehold.co/1920x1080/jpg?text=Кухня']
],
'announcementStatus' => 'active'
];
$ch = curl_init('https://crm.rentix.md/api/v1/listings');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($listing));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: ApiKey YOUR_API_KEY',
'Content-Type: application/json'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$result = json_decode($response, true);
echo "URL: " . $result['publicUrl'];
Ответ
{
"id": 42,
"externalId": "apt-001",
"status": "pending_active",
"publicUrl": "https://rentix.md/announcement/42",
"created": true,
"jobId": 789
}
Можно добавить Подробнее — External ID.
externalFileId к каждому фото — тогда вы сможете ссылаться на файлы по своим ID, не сохраняя внутренние ID Rentix:{ "url": "https://...", "externalFileId": "apt-001-photo-1" }
Вместо
propertyCoordinates можно использовать propertyAddress — система автоматически геокодирует адрес. Координаты рекомендуются для точности. Формат propertyAddress: Город, Улица Номер (напр. Chișinău, str. Columna 81/1).Готово
Объявление создано и поставлено в очередь на публикацию. Статус pending_active означает, что система:
- Загружает и оптимизирует фотографии
- Анализирует изображения для определения характеристик
- Переводит описание на другие языки
Через короткое время статус изменится на active, и объявление появится на сайте.
Обработка происходит автоматически в порядке очереди и иногда может занять чуть дольше.
Обновите объявление
Используйте тот же externalId. Передайте только изменённые поля:
{
"externalId": "apt-001",
"announcementValue": 550
}
Чтобы очистить поле, отправьте null:
{
"externalId": "apt-001",
"propertyFloorNumber": null
}
Управляйте статусом
| Действие | Как |
|---|---|
| Скрыть с сайта | "announcementStatus": "hidden" |
| Вернуть на сайт | "announcementStatus": "active" |
| Отметить как завершённую | "announcementStatus": "completed" |
Что дальше
| Тема | Описание |
|---|---|
| Справочник полей | Все доступные поля, допустимые значения и структура формы |
| Bulk-операции | Синхронизируйте до 100 объявлений за запрос |
| External ID | Используйте ваши ID из CRM |
| Первичная синхронизация | Загрузите все объявления из CRM |
| Управление агентами | Привяжите объявления к конкретным агентам |