MENU navbar-image

Introduction

API pentru calculatoare imobiliare - costuri dezvoltare, costuri casa, randament inchiriere.

API-ul Imobio oferă acces programatic la calculatoarele noastre imobiliare.

## Calculatoare disponibile

- **Costuri Dezvoltare** - Estimează costurile pentru proiecte de dezvoltare imobiliară
- **Costuri Casa** - Calculează bugetul necesar pentru construcția unei case
- **Randament Închiriere** - Analizează rentabilitatea investițiilor imobiliare

## Utilizare

Toate endpoint-urile acceptă date în format JSON și returnează rezultate în format JSON.
Nu este necesară autentificare.

<aside>Vedeți exemple de cod în panoul din dreapta pentru fiecare limbaj de programare.</aside>

Authenticating requests

This API is not authenticated.

Calculatoare

API-uri pentru calculatoarele imobiliare.

Calculator Costuri Dezvoltare

Calculează costurile estimate pentru un proiect de dezvoltare imobiliară. Include costuri de construcție, teren, și profitabilitate estimată.

Example request:
curl --request POST \
    "https://localhost:8000/api/v1/calculators/costuri" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"quality\": \"standard\",
    \"area\": 2500,
    \"landPrice\": 650,
    \"landArea\": 500,
    \"cut\": 2,
    \"efficiency\": 0.8,
    \"margin\": 25,
    \"region\": \"craiova-central\",
    \"facade\": \"termosystem\",
    \"balconyArea\": 0,
    \"subteranArea\": 0
}"
const url = new URL(
    "https://localhost:8000/api/v1/calculators/costuri"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "quality": "standard",
    "area": 2500,
    "landPrice": 650,
    "landArea": 500,
    "cut": 2,
    "efficiency": 0.8,
    "margin": 25,
    "region": "craiova-central",
    "facade": "termosystem",
    "balconyArea": 0,
    "subteranArea": 0
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200, Calcul reușit):


{
    "success": true,
    "data": {
        "maxSCD": 1000,
        "totalLandCost": 325000,
        "landIncidence": 130,
        "constructionCostSqm": 1005,
        "constructionCost": 2512500,
        "balconyCost": 0,
        "subteranCost": 0,
        "mainCost": 2837500,
        "totalCost": 2837500,
        "usableArea": 2000,
        "costSqm": 1135,
        "costSqmUsable": 1419,
        "breakEven": 1419,
        "targetPrice": 1774,
        "revenue": {
            "main": 3548000,
            "balcony": 0,
            "subteran": 0,
            "total": 3548000
        },
        "totalRevenue": 3548000,
        "totalProfit": 710500,
        "roi": 25.04
    },
    "input": {
        "quality": "standard",
        "area": 2500,
        "landPrice": 650,
        "landArea": 500,
        "cut": 2,
        "efficiency": 0.8,
        "margin": 25,
        "region": "craiova-central",
        "facade": "termosystem",
        "balconyArea": 0,
        "subteranArea": 0
    }
}
 

Example response (422, Validare eșuată):


{
    "message": "Suprafața construită (SCD) este obligatorie.",
    "errors": {
        "area": [
            "Suprafața construită (SCD) este obligatorie."
        ]
    }
}
 

Request      

POST api/v1/calculators/costuri

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

quality   string  optional    

Nivelul de calitate. Example: standard

Must be one of:
  • standard
  • premium
  • luxury
area   number     

Suprafața construită desfășurată (SCD) în mp. Example: 2500

landPrice   number     

Prețul terenului în EUR/mp. Example: 650

landArea   number     

Suprafața terenului în mp. Example: 500

cut   number     

Coeficientul de utilizare a terenului (CUT). Example: 2

efficiency   number  optional    

Eficiența (suprafață utilă / SCD), între 0.5 și 1. Default: 0.8. Example: 0.8

margin   number  optional    

Marja de profit dorită în procente. Default: 25. Example: 25

region   string  optional    

Regiunea. Example: craiova-central

Must be one of:
  • bucharest
  • craiova-central
  • craiova-emergent
facade   string  optional    

Tipul de fațadă. Example: termosystem

Must be one of:
  • termosystem
  • fibrociment
  • ceramic
balconyArea   number  optional    

Suprafața balcoanelor/teraselor în mp. Example: 0

subteranArea   number  optional    

Suprafața subterană (parcări) în mp. Example: 0

Calculator Costuri Casa

Calculează bugetul necesar pentru construcția unei case individuale. Include costuri pe categorii și etape de construcție.

Example request:
curl --request POST \
    "https://localhost:8000/api/v1/calculators/casa" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"quality\": \"good\",
    \"region\": \"craiova-central\",
    \"area\": 150,
    \"landPrice\": 150,
    \"landArea\": 500,
    \"landscapingEnabled\": false,
    \"landscapingCostPerMp\": 50
}"
const url = new URL(
    "https://localhost:8000/api/v1/calculators/casa"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "quality": "good",
    "region": "craiova-central",
    "area": 150,
    "landPrice": 150,
    "landArea": 500,
    "landscapingEnabled": false,
    "landscapingCostPerMp": 50
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200, Calcul reușit):


{
    "success": true,
    "data": {
        "constructionCost": 152250,
        "costPerMp": 1015,
        "landCost": 75000,
        "landIncidence": 500,
        "landPercent": 33,
        "totalWithLand": 227250,
        "landscapingCost": 0,
        "stages": {
            "red": 53287,
            "grey": 45675,
            "key": 53287
        }
    },
    "input": {
        "quality": "good",
        "region": "craiova-central",
        "area": 150,
        "landPrice": 150,
        "landArea": 500,
        "landscapingEnabled": false,
        "landscapingCostPerMp": 50
    }
}
 

Example response (422, Validare eșuată):


{
    "message": "Suprafața casei este obligatorie.",
    "errors": {
        "area": [
            "Suprafața casei este obligatorie."
        ]
    }
}
 

Request      

POST api/v1/calculators/casa

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

quality   string  optional    

Nivelul de calitate. Example: good

Must be one of:
  • medium
  • good
  • luxury
region   string  optional    

Regiunea. Example: craiova-central

Must be one of:
  • bucharest
  • craiova-central
  • craiova-emergent
area   number     

Suprafața construită a casei în mp. Example: 150

landPrice   number     

Prețul terenului în EUR/mp. Example: 150

landArea   number     

Suprafața terenului în mp. Example: 500

landscapingEnabled   boolean  optional    

Activează costurile de amenajare teren. Example: false

landscapingCostPerMp   number  optional    

Costul amenajării în EUR/mp. Example: 50

Calculator Randament Închiriere

Analizează rentabilitatea unei investiții imobiliare pentru închiriere. Calculează randament brut, net, cashflow și proiecții pe 10 ani.

Example request:
curl --request POST \
    "https://localhost:8000/api/v1/calculators/randament" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"price\": 100000,
    \"leasableArea\": 60,
    \"rentPerSqm\": 10,
    \"occupancyRate\": 95,
    \"incomeTaxRate\": 6,
    \"propertyTaxRate\": 1.8,
    \"propertyManagement\": 0,
    \"depositAmount\": 0,
    \"loanPeriodYears\": 30,
    \"loanInterestRate\": 0,
    \"insurance\": 0,
    \"maintenance\": 0,
    \"repairs\": 0,
    \"propertyGrowthRate\": 5,
    \"rentGrowthRate\": 3
}"
const url = new URL(
    "https://localhost:8000/api/v1/calculators/randament"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "price": 100000,
    "leasableArea": 60,
    "rentPerSqm": 10,
    "occupancyRate": 95,
    "incomeTaxRate": 6,
    "propertyTaxRate": 1.8,
    "propertyManagement": 0,
    "depositAmount": 0,
    "loanPeriodYears": 30,
    "loanInterestRate": 0,
    "insurance": 0,
    "maintenance": 0,
    "repairs": 0,
    "propertyGrowthRate": 5,
    "rentGrowthRate": 3
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200, Calcul reușit):


{
    "success": true,
    "data": {
        "costPerSqm": 1666.67,
        "grossIncome": 600,
        "adjustedIncome": 570,
        "directCosts": 109.2,
        "operationalCosts": 0,
        "monthlyProfit": 460.8,
        "annualProfit": 5529.6,
        "netYield": 5.53,
        "grossYield": 7.2,
        "paybackYears": 18.09,
        "futureValue10Years": 162889.46,
        "capitalGain10Years": 62889.46,
        "totalProfit10Years": 63376.52,
        "cagr": 9.87
    },
    "input": {
        "price": 100000,
        "leasableArea": 60,
        "rentPerSqm": 10,
        "occupancyRate": 95
    }
}
 

Example response (422, Validare eșuată):


{
    "message": "Prețul proprietății este obligatoriu.",
    "errors": {
        "price": [
            "Prețul proprietății este obligatoriu."
        ]
    }
}
 

Request      

POST api/v1/calculators/randament

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

price   number     

Prețul de achiziție al proprietății în EUR. Example: 100000

leasableArea   number     

Suprafața închiriabilă în mp. Example: 60

rentPerSqm   number     

Chiria lunară în EUR/mp. Example: 10

occupancyRate   number  optional    

Rata de ocupare în procente. Example: 95

incomeTaxRate   number  optional    

Impozitul pe venit în procente. Example: 6

propertyTaxRate   number  optional    

Impozitul pe proprietate anual în procente. Example: 1.8

propertyManagement   number  optional    

Taxa de administrare lunară în EUR. Example: 0

depositAmount   number  optional    

Avans/depozit în EUR. Example: 0

loanPeriodYears   integer  optional    

Durata creditului în ani. Example: 30

loanInterestRate   number  optional    

Dobânda creditului anual în procente. Example: 0

insurance   number  optional    

Asigurare lunară în EUR. Example: 0

maintenance   number  optional    

Întreținere lunară în EUR. Example: 0

repairs   number  optional    

Rezervă reparații lunară în EUR. Example: 0

propertyGrowthRate   number  optional    

Creșterea anuală a valorii proprietății în procente. Example: 5

rentGrowthRate   number  optional    

Indexarea anuală a chiriei în procente. Example: 3