Integrationsguide: importera objekt från ditt mäklarsystem
Koppla Vitec, Mspecs, SoftOne eller ett eget system till Bonett. Din befintliga objektexport i XML eller JSON räcker – vi matchar fälten automatiskt, geokodar adressen och lägger nya objekt som utkast tills du publicerar.
Så fungerar integrationen
1. API-nyckel
Skapa en nyckel i mäklardashboarden och lägg in den i ditt system.
2. Skicka export
POST:a din vanliga objektexport som XML eller JSON till vår endpoint.
3. Håll synkat
Kör anropet vid varje ändring – samma objekt-ID uppdateras, inget dubbleras.
Steg 1 – Verifiera mäklarkontot
Skapa ett konto på Bonett och fyll i byrå samt FMI-nummer under mäklarverifieringen. Registrerade byrådomäner godkänns direkt, övriga granskas manuellt (oftast samma arbetsdag). Först därefter kan API-nycklar användas.
Steg 2 – Skapa en API-nyckel
Gå till API & integration i mäklardashboarden och klicka på Ny nyckel. Nyckeln visas bara en gång – spara den i ditt system eller i en lösenordshanterare. Du kan när som helst återkalla en nyckel utan att påverka publicerade objekt.
Steg 3 – Skicka objekten
Endpointen tar emot både XML och JSON. Skicka nyckeln i headern x-api-key. Max 100 objekt och 2 MB per anrop.
POST https://bonett.lovable.app/api/public/v1/listings/import x-api-key: DIN_API_NYCKEL Content-Type: application/xml
Exempel – XML (Vitec-liknande export)
curl -X POST https://bonett.lovable.app/api/public/v1/listings/import \ -H "x-api-key: DIN_API_NYCKEL" \ -H "Content-Type: application/xml" \ --data-binary @export.xml
<Objekt>
<Bostad>
<ObjektId>12345</ObjektId>
<Rubrik>Ljus trea med balkong</Rubrik>
<Objekttyp>Bostadsrätt</Objekttyp>
<Status>Till salu</Status>
<Utgangspris>4 250 000</Utgangspris>
<Avgift>3450</Avgift>
<Driftkostnad>7200</Driftkostnad>
<Boarea>78</Boarea>
<AntalRum>3</AntalRum>
<Vaning>4</Vaning>
<Byggar>1996</Byggar>
<Gatuadress>Storgatan 12</Gatuadress>
<Ort>Stockholm</Ort>
<Lan>Stockholms län</Lan>
<Beskrivning>Välkommen till en ljus trea ...</Beskrivning>
<Bilder>
<Bild>https://exempel.se/bild1.jpg</Bild>
<Bild>https://exempel.se/planritning.jpg</Bild>
</Bilder>
</Bostad>
</Objekt>Exempel – JSON
curl -X POST https://bonett.lovable.app/api/public/v1/listings/import \
-H "x-api-key: DIN_API_NYCKEL" \
-H "Content-Type: application/json" \
-d '{
"objekt": [
{
"objektId": "12345",
"rubrik": "Ljus trea med balkong",
"objekttyp": "Bostadsrätt",
"utgangspris": 4250000,
"avgift": 3450,
"boarea": 78,
"antalRum": 3,
"gatuadress": "Storgatan 12",
"ort": "Stockholm",
"lan": "Stockholms län",
"beskrivning": "Välkommen till en ljus trea ...",
"bilder": ["https://exempel.se/bild1.jpg"]
}
]
}'Svar
{
"format": "xml",
"received": 1,
"created": 1,
"updated": 0,
"failed": 0,
"results": [
{ "external_id": "12345", "status": "created", "listing_id": "…" }
]
}Fältmappning
Du behöver inte döpa om något. Vi känner igen vanliga svenska och engelska fältnamn – både i XML-element, attribut och JSON-nycklar, oavsett nivå i strukturen.
| Fält (alias) | Obligatoriskt | Kommentar |
|---|---|---|
| ObjektId / ExternalId | Ja (rekommenderat) | Unikt ID i ditt system. Styr om objektet skapas eller uppdateras. |
| Rubrik / Titel / Title | Ja | Annonsens rubrik. Saknas den byggs den av adress + ort. |
| Utgangspris / Pris / Price | Ja | Utgångspris i kronor. Mellanslag och "kr" tolkas automatiskt. |
| Boarea / Boyta / LivingArea | Ja | Boarea i kvm. |
| AntalRum / Rum / Rooms | Ja | Antal rum, decimaler tillåtna (t.ex. 2,5). |
| Gatuadress / Adress / Address | Ja | Gatuadress. |
| Ort / Stad / Kommun | Ja | Ort eller kommun. |
| Lan / Region / County | Nej | Län. Saknas det används orten. |
| Objekttyp / Bostadstyp | Nej | Bostadsrätt, villa, radhus, tomt eller fritidshus. |
| Status / Objektstatus | Nej | Till salu, kommande eller såld. |
| Avgift / Manadsavgift | Nej | Månadsavgift i kronor. |
| Driftkostnad | Nej | Driftkostnad per år i kronor. |
| Biarea | Nej | Biarea i kvm. |
| Byggar / ConstructionYear | Nej | Byggår. |
| Vaning / Floor | Nej | Våningsplan. |
| Latitude / Longitude | Nej | WGS84. Saknas de geokodar vi adressen automatiskt. |
| Bilder / Bild / ImageUrl | Nej | Absoluta http(s)-URL:er till foton. Filnamn med "planritning" tolkas som planritning. |
| Maklarnamn, Epost, Telefon, Maklarbyra | Nej | Kontaktuppgifter. Saknas de används din profil på Bonett. |
Statuskoder och fel
| HTTP | Kod | Betydelse |
|---|---|---|
| 401 | unauthorized | API-nyckeln saknas, är felstavad eller återkallad. |
| 403 | forbidden | Kontot saknar godkänd mäklarbehörighet – slutför mäklarverifieringen först. |
| 400 | invalid_payload / empty_payload | Payloaden gick inte att tolka eller innehöll inga objekt. |
| 413 | payload_too_large | Max 2 MB per anrop. Dela upp exporten. |
| 422 | — | Alla objekt i anropet misslyckades. Se results[].errors för orsak per objekt. |
| 200 | — | Minst ett objekt skapades eller uppdaterades. |
Varje anrop loggas. Se resultat och felmeddelanden under Senaste importer i API & integration.
Rekommenderat arbetssätt
- Skicka alltid ett stabilt ObjektId – då uppdateras objektet istället för att dubbleras.
- Kör en full export nattetid och en delta-export vid varje ändring (pris, status, bilder).
- Sätt status till "Såld" istället för att ta bort objektet, så behålls historiken.
- Skicka absoluta bild-URL:er i högsta upplösning – vi skalar bilderna själva.
- Använd separata API-nycklar per system eller miljö, så kan du återkalla en i taget.
Inget API i ditt system?
AI-import från länk eller PDF
Klistra in länken till din befintliga annons eller ladda upp objektbeskrivningen som PDF/XML i annonsformuläret – vi fyller i fälten åt dig och du granskar och publicerar.
Manuell registrering
Lägg upp objektet direkt i mäklardashboarden med adressökning, kartmarkör, bildgalleri och utkastläge.
Säkerhet och dataägande
All trafik går över HTTPS. API-nycklar lagras hashade och kan återkallas när som helst. Du äger ditt innehåll – nya objekt läggs som utkast tills du publicerar, och du kan avpublicera eller radera dem närsomhelst.