Primii pași
Start rapid
Publică primul anunț într-o singură cerere
Publică un anunț pe Rentix într-o singură cerere. Trimite datele proprietății, URL-urile fotografiilor și statusul active — sistemul face tot restul.
De ce ai nevoie:
- Cheie API (cum să obții)
- 3+ fotografii ale proprietății accesibile prin URL
Preferi Postman? Importă colecția noastră Postman cu cereri pre-configurate și exemple pentru toate endpoint-urile API.
Pasul 1. Verifică conexiunea
Asigură-te că cheia API funcționează.
const response = await fetch('https://crm.rentix.md/api/v1/agency', {
headers: { 'Authorization': 'ApiKey YOUR_API_KEY' }
});
const agency = await response.json();
console.log(`Agenție: ${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 "Agenție: " . $agency['name'];
Răspuns
{
"id": 1,
"name": "Agenția ta",
"limits": {
"monthlyListings": { "used": 0, "limit": 1000 }
}
}
Pasul 2. Publică un anunț
Trimite toate datele într-o singură cerere: informații despre proprietate, URL-uri fotografii și status 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-ul tău din CRM — folosește-l pentru toate operațiile cu acest anunț
externalId: 'apt-001',
// Tip: închiriere apartament
announcementType: 'rent',
propertyType: 'residential',
propertySecondaryType: 'apartment',
// Preț
announcementValue: 500,
announcementCurrency: 'EUR',
announcementPayPeriod: 'monthly',
// Caracteristici
propertyArea: 65,
propertyFloorNumber: 3,
propertyFloorsTotal: 9,
propertyQuantitySize: 'custom-value',
propertyQuantitySizeValue: 3, // 3 camere
propertyHousingMarket: 'new-build', // clădire nouă
propertyVisualState: 'euro-renovation', // renovare euro
// Localizare (sau propertyCoordinates: { lat, lng } — recomandat)
propertyAddress: 'Chișinău, str. Columna 81/1',
// Descriere (opțional, 40–2000 caractere)
announcementDescription: 'Apartament confortabil cu 3 camere cu podele calde și încălzire autonomă.',
// Fotografii — doar furnizează URL-urile
files: [
{ url: 'https://placehold.co/1920x1080/jpg?text=Living' },
{ url: 'https://placehold.co/1920x1080/jpg?text=Dormitor' },
{ url: 'https://placehold.co/1920x1080/jpg?text=Bucătărie' }
],
// Publică imediat
announcementStatus: 'active'
})
});
const result = await response.json();
console.log(`Anunț: ${result.publicUrl}`);
console.log(`Status: ${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": "Apartament confortabil cu 3 camere cu podele calde și încălzire autonomă.",
"files": [
{ "url": "https://placehold.co/1920x1080/jpg?text=Living" },
{ "url": "https://placehold.co/1920x1080/jpg?text=Dormitor" },
{ "url": "https://placehold.co/1920x1080/jpg?text=Bucătărie" }
]
}'
$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' => 'Apartament confortabil cu 3 camere cu podele calde și încălzire autonomă.',
'files' => [
['url' => 'https://placehold.co/1920x1080/jpg?text=Living'],
['url' => 'https://placehold.co/1920x1080/jpg?text=Dormitor'],
['url' => 'https://placehold.co/1920x1080/jpg?text=Bucătărie']
],
'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'];
Răspuns
{
"id": 42,
"externalId": "apt-001",
"status": "pending_active",
"publicUrl": "https://rentix.md/announcement/42",
"created": true,
"jobId": 789
}
Poți adăuga Află mai multe — External ID.
externalFileId la fiecare fotografie — astfel vei putea referi fișierele după propriile ID-uri fără a stoca ID-urile interne Rentix:{ "url": "https://...", "externalFileId": "apt-001-photo-1" }
În loc de
propertyCoordinates poți folosi propertyAddress — sistemul va geocodifica adresa automat. Coordonatele sunt recomandate pentru precizie. Format propertyAddress: Oraș, Stradă Număr (ex. Chișinău, str. Columna 81/1).Gata
Anunțul este creat și pus în coadă pentru publicare. Statusul pending_active înseamnă că sistemul:
- Descarcă și optimizează fotografiile
- Analizează imaginile pentru a determina caracteristicile proprietății
- Traduce descrierea în alte limbi
În scurt timp, statusul se va schimba în active și anunțul va apărea pe site.
Procesarea are loc automat în ordinea cozii și uneori poate dura puțin mai mult.
Actualizează un anunț
Folosește același externalId. Trimite doar câmpurile modificate:
{
"externalId": "apt-001",
"announcementValue": 550
}
Pentru a goli un câmp, trimite null:
{
"externalId": "apt-001",
"propertyFloorNumber": null
}
Gestionează statusul
| Acțiune | Cum |
|---|---|
| Ascunde de pe site | "announcementStatus": "hidden" |
| Restabilește pe site | "announcementStatus": "active" |
| Marchează ca finalizat | "announcementStatus": "completed" |
Ce urmează
| Subiect | Descriere |
|---|---|
| Schema de referință | Descoperă toate câmpurile disponibile, valorile acceptate și structura formularului |
| Operații în masă | Sincronizează până la 100 anunțuri pe cerere |
| External ID | Folosește ID-urile din CRM |
| Sincronizare inițială | Încarcă toate anunțurile din CRM |
| Gestionare agenți | Asociază anunțuri la agenți specifici |