This version complies with AvivClassified v3.0.0 and AvivImmo v2.1
👋 Introduction
Access to the Aviv Classified API is currently limited. If you are interested in using this API, apply for access on that email address: connect@aviv-group.com
The Aviv Classified API enables real estate agencies to send classifieds in real-time. Real-time means that Aviv is receiving the classified as soon as a property is created or has been updated by the real estate agency.
All API URLs listed in this documentation are relative to https://classifieds.api.groupeseloger.com/ingest-v3. For example, the classifieds resource is reachable at https://classifieds.api.groupeseloger.com/ingest-v3/classifieds.
🔐 Authentication
All the API endpoints use the OAuth 2.0 protocol. As soon as you get your personal client credentials from the customer support team, you will be allowed to generate an access token that will enable you to access all the features related to your usage plan.
Available scopes
This section lists the OAuth 2.0 scopes that you might need to request to access this API, depending on the level of access you need. Many scopes overlap, so it’s best to use a scope that is as restrictive as possible.
The access token issued will only contain the requested scopes.
| Scopes | Description |
|---|---|
caas:* |
View and manage your data across this API |
caas:classifieds:* |
manage your all classified and media endpoints across this API |
caas:classifieds:read |
manage your GET classified and media endpoints (/classifieds, /classifieds/{ClassifiedId} and /classifieds/{ClassifiedId}/media) across this API |
caas:classifieds:create |
manage your POST classified and media endpoints (/classifieds and /classifieds/{ClassifiedId}/media) across this API |
caas:classifieds:update |
manage your PUT/PATCH classified and media endpoints (/classifieds/{ClassifiedId} and /classifieds/{ClassifiedId}/media/{MediaId}) across this API |
caas:classifieds:delete |
manage your DELETE classified and media endpoints endpoints (/classifieds/{ClassifiedId} and /classifieds/{ClassifiedId}/media/{MediaId}) across this API |
ℹ️ Scopes are case sensitive
🧑💻 API overview
The Aviv Classified API is a RESTful API. The API allows you to interact with resources using verbs: POST, PUT, DELETE.
- To create a new resource: use the POST verb with the resource name
POST /classifieds
- To update an existing resource: use the PUT verb with the resource name and its unique identifier
PUT /classifieds/:id
- To delete an existing resource: use the DELETE verb with the resource name and its unique identifier
DELETE /classifieds/:id
Naming convention
- All the resources names are defined in plural. For instance: “GET /classifieds”.
- The supported format is JSON.
- The fields are defined in camelCase.
- The boolean fields start by a “is” prefix.
Specification
The Aviv Classified API follows the OpenAPI specification.
Versioning strategy
The Aviv Classified API is constantly being worked on to add features, improvements and bugfixes.
This means that you should expect changes to be introduced and documented. Whenever we make a significant change to an endpoint, we will increase the version number used in the path of the resource being requested.
The current API version is v3 so all the API request must be performed with this version number in the endpoints.
Example:
POST /ingest-v3/classifieds
The API version number being incremented for major version’s releases. The minor versions are released without having to increment this API version number enabling API consumers to benefits from non-breaking and backward-compatible changes and fixes seemlessly.
Backward-compatible changes
We consider the following cases as backward-compatible changes (minor releases):
- Adding new optional parameters
- Adding new endpoints
- Adding new fields to existing API responses
- Changing the order of fields in existing API responses
Supported HTTP status codes
- 2xx for successful operations
- 3xx for redirections
- 4xx for client errors
- 5xx for server errors
Long running operations
When classifieds are sent through the transport layer they are : processed, analyzed, accepted or rejected. All of the classifieds statuses are defined by technical and business rules - and this can takes time (from milliseconds to minutes), so we cannot reply synchronously to our API users when they are sending us classifieds.
We must in such cases directly reply back to our API users with an acknowledgement and gives an URL so they can poll to get the status of their request.
Traceparent
Each API request has an associated request identifier. You can find this value in the response headers, under traceparent. If you need to contact us about a specific request, providing the request identifier will ensure the fastest possible resolution.
Updating classifieds by using ETag
An entity tag, or ETag, is a mechanism that is provided by the HTTP protocol so that a client can make conditional REST requests for optimistic updating or optimized retrieval of entities.
Optimistic updating is a technique for managing concurrent access to an entity, and a way to prevent simultaneous updates of resources. When you add a conditionnal header to a PUT or PATCH request, multiple changes to the same entity do not overwrite each other.
Optimistic updating
When a classified is created or updated by a REST request, the classified entity instance is flagged with a unique ETag. By comparing the ETag information in an existing classified entity with the incoming ETag in a PUT request, the REST API determines when a requested update overwrites the current classified entity instance.
You can add the If-Match request header and ETag information to your PUT or PATCH request to control updates to classified entities, therefore ensuring that no information is lost during the update.
First, you retrieve the current classified entity data by using a GET /classifieds/:id request. The ETag information is returned along with the classified entity content in the response headers.
Then, you send a PUT or PATCH request that includes the If-Match request header with the ETag information from the previous GET request.
A comparison of the ETags determines whether the entity was modified since the previous request.
If the ETags match, then the entity was not modified and the update is processed.
If the ETags do not match, then the entity was recently updated by another request or process. In this case, the entity update is not updated. The response to your PUT or PATCH request displays the 412 Precondition Failed status code.
💥 Errors
The Aviv Classified API follow’s the error response format proposed in RFC 7807 also known as Problem Details for HTTP APIs. As with our normal API responses, your client must be prepared to gracefully handle additional members of the response.
However, some error cases needs to be accompanied by a human readable documentation. Especially regarding any errors that might be encountered during the API format validation steps (400 Bad Request) in order to give sufficient information needed by API consumers to fix the parameters and/or the request body. This 400 Bad Request is detailed in the section below.
Validation Error
In addition to the information proposed in RFC 7807, we support “errors” and “errorSource” fields to convey the fine-grained details of the API format validation problems.
| Field | Type | Description |
|---|---|---|
| errors | Array | This is an a array of objects composed by name and reason attributes.The name object attribute indicates the field name of the request body causing the error.The reason attribute describes the reason of the error.Example: [{“name”: “/data/estateSubTypes/trading”, “reason”: “must be equal to one of the allowed values: STORE, SHOWROOM_SPACE, SHOPPING_CENTRE, KIOSK, SALES_AREA.”}] |
| errorSource | String | Can be one of the following values: body, requestParameter, header, contentType in order to locate the source of the problem. |
Example
{
"type": "https://caas-api-documentation.kugawana.eu/doc/prod/seloger/ingest-v3/index.html#section/Errors/Validation-Error",
"title": "Bad request",
"detail": "Your request has not been validated",
"instance": "00-652039077ca790cc11d3a80cc29dbeb9-ca5243f0e6c43195-00",
"errors": [
{
"name": "/space",
"reason": "must NOT have additional properties: space."
}
],
"errorSource": "body",
"status": 400
}
Duplicated Classifieds Error
Aviv Classified API needs a unique identifier “offererEstateId” to be assigned to each classifieds on the Aviv system. This “offererEstateId” field is required to identify individual classifieds published on Aviv’s portals. Each classifieds submitted with an “offererEstateId” associated to an existing classified will be rejected with this error:
{
"type": "https://caas-api-documentation.kugawana.eu/doc/prod/seloger/ingest-v3/index.html#section/Errors/Duplicated-Classifieds-Error",
"title": "Duplicated classified",
"detail": "This offererEstateId: my-not-unique-id is already associated with an existing classified identified by classifiedId: 10936e98-82eb-47ac-9939-6430090d0e61. Classifieds must have unique offerEstateId.",
"instance": "00-652039077ca790cc11d3a80cc29dbeb9-ca5243f0e6c43195-00",
"status": 400
}
Duplicated Media Error
Aviv Classified API needs a unique identifier “url” to be assigned to each classifieds on the Aviv system. This “url” field is required to identify individual media published on Aviv’s portals.
{
"type": "https://caas-api-documentation.kugawana.eu/doc/prod/seloger/ingest-v3/index.html#section/Errors/Duplicated-Media-Error",
"title": "Duplicated media",
"detail": " detail: "This url: my-not-unique-url is already sent on the media identified by mediaId : 9c597a63-6932-4b0c-a2a0-2fd935be176 for the classified identified by classifiedId: 5c597a63-6932-4b0c-a2a0-2fd935be175. Media must have unique url."",
"instance": "00-652039077ca790cc11d3a80cc29dbeb9-ca5243f0e6c43195-00",
"status": 400
}
Colliding Contacts Information Error
Classifieds are automatically associated to an offerer using the information passed along its generated API token. Nonetheless, each classifieds can individually be associated to one or many offerer’s contact information using either the “.data.contact." fields or (in the context of Groupe SeLoger’s portals) the "specific.gsl.contact.” fields. In this case, the Aviv Classified API will reject each classifieds submitted with “.data.contact." fields and the "specific.gsl.contact.” fields simultanously:
{
"type": "https://caas-api-documentation.kugawana.eu/doc/prod/seloger/ingest-v3/index.html#section/Errors/Colliding-Contacts-Information-Error",
"title": "Bad request",
"detail": "Colliding information",
"instance": "00-b0d74d9fc4f28e78bca09ef806d7e274-111de747af9265d5-00",
"errors": [
{
"name": "data.contact.*",
"reason": "The classified has been submitted to be attached with conflicting contact's information. The following fields cannot be set simultaneously: 'data.contact.*', 'specific.gsl.contact.*' "
},
{
"name": "specific.gsl.contact.*",
"reason": "The classified has been submitted to be attached with conflicting contact's information. The following fields cannot be set simultaneously: 'data.contact.*', 'specific.gsl.contact.*' "
}
],
"errorSource": "body",
"status": 400
}
⬆️ Migration guide from API v2 to API v3
The following section will help you to migrate your API integration from API v2 to API v3. Only the changes breaking the backward-compatible rules are detailed in this section.
Endpoints mapping
There is no changes in the endpoints definition. The API v3 endpoints remains the same as the one defined in API v2.
Headers parameters mapping
No changes.
Body parameters mapping
Click to expand
| API v2 | API v3 |
|---|---|
data.texts.locationNote |
data.location.locationNote |
data.metaData.classifiedId is a string |
data.metaData.classifiedId is a string with UUID formatting |
data.prices.buy.agencyFee |
data.prices.brokerageFee |
data.prices.rent.agencyFee |
data.prices.brokerageFee |
data.prices.currency is a string |
data.prices.currency is a string with ISO4217 formatting |
data.countrySpecific.fr.subdivisions.currency is a string |
data.prices.currency is a string with ISO4217 formatting |
data.geo |
data.location |
data.geo.country is optional |
data.location.country is mandatory |
data.geo.city is optional |
data.location.city is mandatory |
data.geo.postalcode is optional |
data.location.postalcode is mandatory |
data.geo.street is optional |
data.location.street is mandatory |
data.geo.houseNumber is optional |
data.location.houseNumber is mandatory |
data.externalLinks |
data.links.externalLinks |
data.energy.countrySpecific.de.energyCertificate |
data.energy.countrySpecific.de.energyCertificates |
data.estateSubTypes.DUPLEX_OR_TRIPLEX |
data.estateSubType.MULTI_STOREY |
data.energy.energyType.energyGeneration.FOSSILBURNING |
data.energy.energyType.energyGeneration.fossilburning is a boolean |
data.energy.energyType.energyGeneration.HEATPUMP |
data.energy.energyType.energyGeneration.heatpump is a boolean |
data.energy.energyType.energyGeneration.SOLAR_HEAT |
Not available |
data.energy.energyType.energyGeneration.WIND |
Not available |
data.energy.energyType.energyGeneration.COMBINED_HEAT_AND_POWER_PLANT |
data.energy.energyType.energyGeneration.combinedHeatAndPowerPlant |
data.features.residential.washDryRoom |
data.features.residential.laundryRoom |
data.estateType.GASTRO_HOTEL |
data.estateType.GASTRONOMY_HOTEL |
data.estateSubTypes.gastroHotel |
data.estateSubType.gastronomyHotel |
data.estateSubTypes.gastroHotel.CLUB_DISCOTHEK |
data.estateSubType.gastronomyHotel.CLUB_DISCOTHEQUE |
data.countrySpecific.fr.business.businessType.GASTRO_HOTEL |
data.countrySpecific.fr.business.businessType.GASTRONOMY_HOTEL |
data.countrySpecific.fr.business.businessSubType.CLUB_DISCOTHEK |
data.countrySpecific.fr.business.businessSubType.CLUB_DISCOTHEQUE |
data.estateSubTypes.house.CASTLE_MANOR_HOUSE |
data.estateSubType.house.CASTLE |
data.estateSubTypes.apartment.APARTMENT |
data.estateSubType.apartment.STUDIO |
data.structure.rooms.numberOfBedRooms is a number |
data.structure.rooms.numberOfBedRooms is an integer |
data.structure.rooms.numberOfBathRooms is a number |
data.structure.rooms.numberOfBathRooms is an integer |
data.structure.rooms.numberOfToilets is a number |
data.structure.rooms.numberOfToilets is an integer |
data.structure.rooms.numberOfBalconies is a number |
data.structure.rooms.numberOfBalconies is an integer |
data.structure.rooms.numberOfTerraces is a number |
data.structure.rooms.numberOfTerraces is an integer |
data.structure.rooms.numberOfKitchens is a number |
data.structure.rooms.numberOfKitchens is an integer |
data.structure.rooms.numberOfUnits is a number |
data.structure.rooms.numberOfUnits is an integer |
data.estateSubTypes.parking.MIXED |
Not available |
data.prices.buy.parkingSpace.MIXED |
Not available |
data.prices.rent.parkingRent.MIXED |
Not available |
data.features.bikeParking |
data.features.parking.bikeParking |
data.features.internetSpeedMbit |
data.features.internet.internetSpeedMbit |
data.features.commercial.accessibleFromStreet |
data.features.accessibleFromStreet |
data.features.plot.accessibleFromStreet |
data.features.accessibleFromStreet |
data.features.lighting.natural |
Not available |
data.features.lighting.fluorescence |
Not available |
data.features.lighting.halogen |
Not available |
data.features.lighting.incandescence |
Not available |
data.features.lighting.desks |
Not available |
data.features.lighting.outside |
Not available |
data.features.security.tel2police |
data.features.security.emergencyCall |
data.features.residential.mezzanine |
data.features.mezzanine |
data.structure.commercial.roomHeight |
structure.building.roomHeight |
data.features.parking.connectionForPowerSupply |
data.features.parking.chargingStation |
data.spaces.plot.plotSpace |
data.spaces.plotSpace |
data.spaces.residential.plotFront |
data.spaces.plotFront |
data.estateSubTypes.apartment.SINGLEROOM |
data.estateSubType.apartment.FLATSHARING_ROOM |
data.prices.buy.isleaseBuyCombi |
data.prices.buy.isLeaseBuyCombi |
data.prices.buy.countrySpecific.fr.isReducedNotaryFees.YES |
data.prices.buy.countrySpecific.fr.isReducedNotaryFees is a boolean set to true |
data.prices.buy.countrySpecific.fr.isReducedNotaryFees.NO |
data.prices.buy.countrySpecific.fr.isReducedNotaryFees is a boolean set to false |
data.energy.energyType.heatMethod.FLOOR |
data.energy.energyType.heatMethod.STOREY |
data.energy.energyType.heatMethod.REMOTE |
data.energy.energyType.heatMethod.DISTRICT_HEATING |
data.energy.energyType.heatForm.floor |
data.energy.energyType.heatForm.underfloor |
data.structure.building.windowMaterial.blinds |
data.structure.building.window.blinds |
data.structure.building.windowMaterial.bayWindow |
data.structure.building.window.bayWindow |
data.structure.building.windowMaterial |
data.structure.building.window.windowMaterial |
data.structure.building.kitchen.kitchenType.NONE |
Not available |
data.structure.building.kitchen.kitchenType.OPEN |
data.structure.building.kitchen.kitchenType.open is a boolean set to true |
data.structure.building.kitchen.kitchenType.BUILT_IN |
data.structure.building.kitchen.kitchenType.builtIn is a boolean set to true |
data.structure.building.kitchen.kitchenType.SEPARATED |
data.structure.building.kitchen.kitchenType.separated is a boolean set to true |
data.structure.building.withView.YES |
Not available |
data.structure.building.withView.SEA_VIEW |
data.structure.building.withView.seaView is a boolean set to true |
data.structure.building.withView.MOUNTAIN_VIEW |
data.structure.building.withView.mountainView is a boolean set to true |
data.structure.building.withView.COURTYARD_VIEW |
data.structure.building.withView.courtyardView is a boolean set to true |
data.structure.building.withView.OVERLOOKING |
data.structure.building.withView.overlooking is a boolean set to true |
data.structure.building.withView.NO |
Not available |
data.structure.building.withView.NOT_APPLICABLE |
Not available |
data.feature.garden.PART |
data.feature.garden.part is a boolean set to true |
data.feature.garden.PRIVATE |
data.feature.garden.private is a boolean set to true |
data.feature.garden.SHARED |
data.feature.garden.shared is a boolean set to true |
data.feature.garden.NO |
Not available |
data.feature.garden.NOT_APPLICABLE |
Not available |
data.prices.compulsoryAuction.minumumBid |
prices.compulsoryAuction.minimumBid |
data.features.floorCovering.tile |
data.features.floorCovering.tiles |
data.features.floorCovering.marbel |
data.features.floorCovering.marble |
data.features.commercial.flexibleWalls |
data.features.commercial.flexibleRoomLayout |
data.spaces.spaceMeasureUnits.INCH |
data.spaces.spaceMeasureUnits.SQUARE_INCH |
data.spaces.spaceMeasureUnits.FOOT |
data.spaces.spaceMeasureUnits.SQUARE_FOOT |
data.spaces.spaceMeasureUnits.YARD |
data.spaces.spaceMeasureUnits.SQUARE_YARD |
data.spaces.commercial.complementarySpace |
Not available |
data.metaData.source.offererEstateId |
Not available |
data.structure.commercial.numberOfOutdoorParkingSpaces |
data.structure.parkingLots.outside |
data.structure.commercial.numberOfUndergroundParkingSpaces |
data.structure.parkingLots.underground |
data.links.externalLinks.urlType.VIRTUAL_TOUR |
Not available |
data.texts.regionalNote.Use |
data.location.locationNote |
data.portalOffererId |
Not available |
data.prices.buy.agencyFee |
data.prices.brokerageFee |
data.prices.rent.agencyFee |
data.prices.brokerageFee |
data.geo.geocodeLatitude |
data.location.geometry uses geoJSON formatting |
data.geo.geocodeLatitude |
data.location.geometry uses geoJSON formatting |
data.estateSubTypes.project.PLANED |
Not available |
data.energy.energyType.heatMethod.DISTRICT_HEATING |
Not available |
data.estateSubTypes.house.BEACH_HOUSE |
Not available |
data.estateSubTypes.apartment.ATTIKA |
Not available |
data.estateSubTypes.apartment.GALLERY |
Not available |
data.estateSubTypes.apartment.GROUNDFLOOR |
Not available |
data.estateSubTypes.apartment.HALF_BASEMENT |
Not available |
data.estateSubTypes.apartment.ROOF_STOREY |
Not available |
data.structure.parkingLots.mixed |
Not available |
data.features.internetConnection |
data.features.internet.internetAvailability |
data.features.bikeChargingStation |
Not available |
data.features.equipment |
Not available |
data.features.security.securitySmoke |
Not available |
data.features.security.truckBarrier |
Not available |
data.features.security.fireHose |
Not available |
data.features.security.accessBadge |
data.features.security.digitalLock |
data.features.residential.gardenShed |
Not available |
data.features.residential.patio |
Not available |
data.features.residential.outbuilding |
Not available |
data.features.residential.pergola |
Not available |
data.features.residential.winterGarden |
data.features.residential.veranda |
data.features.commercial.industrialSpur |
Not available |
data.features.commercial.numberOfHairDressingStations |
Not available |
data.features.commercial.numberOfShampooChairs |
Not available |
data.features.commercial.numberOfFittingRooms |
Not available |
data.features.commercial.numberOfTreatementCabins |
Not available |
data.features.commercial.changingRoom |
Not available |
data.features.parking.parkingBuildingSeparated |
Not available |
data.features.countrySpecific.fr.boulodrome |
Not available |
data.structure.commercial.numberOfSingleBeds |
data.structure.commercial.numberOfBeds |
data.structure.commercial.numberOfDoubleBeds |
data.structure.commercial.numberOfBeds |
data.structure.commercial.parkingLotNearby |
Not available |
data.structure.commercial.numberOfSmokingRooms |
Not available |
data.spaces.residential.miscSpace |
data.spaces.additionalSpace |
data.spaces.residential.outbuildingSpace |
data.spaces.additionalSpace |
data.spaces.residential.overallSpace |
data.spaces.overallSpace |
data.spaces.residential.usableFloorSpace |
data.spaces.usableFloorSpace |
data.spaces.residential.spaceMin |
data.spaces.spaceMin |
data.spaces.residential.spaceMax |
data.spaces.spaceMax |
data.spaces.residential.plotSpace |
data.spaces.plotSpace |
data.spaces.commercial.extendedSpace |
data.spaces.usableFloorSpace |
data.spaces.commercial.additionalSpace |
data.spaces.additionalSpace |
data.spaces.commercial.overallSpace |
data.spaces.overallSpace |
data.spaces.commercial.usableFloorSpace |
data.spaces.usableFloorSpace |
data.spaces.commercial.spaceMin |
data.spaces.spaceMin |
data.spaces.commercial.spaceMax |
data.spaces.spaceMax |
data.spaces.commercial.plotSpace |
data.spaces.plotSpace |
data.spaces.plot.plotSpace |
data.spaces.plotSpace |
data.spaces.plot |
Not available |
data.prices.buy.rentalIncome.isOperatingCostsIncluded |
Not available |
data.prices.buy.rentalIncomeExpect.isOperatingCostsIncluded |
Not available |
data.structure.building.kitchen.kitchenType.NONE |
Not available |
data.prices.rent.lease.leaseDuration |
data.management.rent.minRentalTime |
data.structure.building.changeableWalls |
data.features.commercial.flexibleRoomLayout |
portals is an array of strings |
portals is an array of unique strings with a maximum number of items at 5 |
management.availableFrom is a date |
management.availableFrom is a date-time |
structure.building.attic has the following values : YES, NO, CONVERTED, CONVERTIBLE ,NOT_APPLICABLE as enum |
structure.building.attic has the following values : CONVERTED, CONVERTIBLE ,PART_CONVERTED as enum |
Reponses format mapping
No changes.
⬆️ Migration guide from API v1 to API v2
The following section will help you to migrate your API integration from API v1 to API v2. Only the changes breaking the backward-compatible rules are detailed in this section.
Endpoints mapping
There is no changes in the endpoints definition. The API v2 endpoints remains the same as the one defined in API v1.
Headers parameters mapping
| API v1 | API v2 |
|---|---|
The User-Agent header is optional for all endpoints |
The User-Agent header is now mandatory for all endpoints |
Body parameters mapping
Click to expand
| API v1 | API v2 |
|---|---|
data.prices.buy.leasehold.endDate is a string |
data.prices.buy.leasehold.endDate is an ISO 8601 formatted ‘full-date’ string as defined by RFC-3339. Example: 2021-07-20 |
data.prices.buyAunction.startOfferPhase is a string |
data.prices.buyAunction.startOfferPhase is an ISO 8601 formatted ‘full-date’ string as defined by RFC-3339. Example: 2021-07-20 |
data.prices.buyAunction.endOfferPhase is a string |
data.prices.buyAunction.endOfferPhase is an ISO 8601 formatted ‘full-date’ string as defined by RFC-3339. Example: 2021-07-20 |
data.energy.countrySpecific.de.releaseDate is a string |
data.energy.countrySpecific.de.releaseDate is an ISO 8601 formatted ‘full-date’ string as defined by RFC-3339. Example: 2021-07-20 |
data.energy.countrySpecific.de.validUntil is a string |
data.energy.countrySpecific.de.validUntil is an ISO 8601 formatted ‘full-date’ string as defined by RFC-3339. Example: 2021-07-20 |
data.management.availableFrom is a string |
data.management.availableFrom is an ISO 8601 formatted ‘date-time’ string as defined by RFC-3339. Example: 2020-07-20T17:32:28Z |
data.energy.countrySpecific.de.validUntil is a string |
data.energy.countrySpecific.de.validUntil is an ISO 8601 formatted ‘date-time’ string as defined by RFC-3339. Example: 2020-07-20T17:32:28Z |
data.management.compulsoryAuction.cancellationDate is a string |
data.management.compulsoryAuction.cancellationDate is an ISO 8601 formatted ‘full-date’ string as defined by RFC-3339. Example: 2021-07-20 |
data.countrySpecific.fr.agentMandate.startDate |
data.countrySpecific.fr.agentMandate.startDate is an ISO 8601 formatted ‘full-date’ string as defined by RFC-3339. Example: 2021-07-20 |
data.countrySpecific.fr.agentMandate.endDate |
data.countrySpecific.fr.agentMandate.endDate is an ISO 8601 formatted ‘full-date’ string as defined by RFC-3339. Example: 2021-07-20 |
data.metaData.source.offererEstateId is an uuid formatted string |
data.metaData.source.offererEstateId is a string (without format constraint) |
data.spaces.commercial.complementarySpace |
Not available |
data.structure.commercial.numberOfOutdoorParkingSpaces |
Not available |
data.structure.commercial.numberOfUndergroundParkingSpaces |
Not available |
Reponses format mapping
Click to expand
| Endpoints | API v1 | API v2 |
|---|---|---|
| GET /classifieds | Returns results without limiting the number of results | Returns the 250 last items by default. The number of results can be limited using the ‘limit’ query string parameter. The ‘nextToken’ query string parameter is also now available to return the remaining results when the ‘limit’ parameter has been used in the query. Example 1: GET /classifieds?limit=10Example 2: GET /classifieds?nextToken=eyJ2ZXJzaW9uIjoiMiIsImNsYXNzaWZpZWRJZCI6ImFhYjJjNTFkLWU2MmYtNDFjNS1iMmM3LWFkMjJhNjk2MmUzOSIsImN1c3RvbWVySWQiOiJ0ZXN0LXNlci0xIn0= |
| GET /classifieds/:id/media | Returns results without limiting the number of results | Returns the 250 last items by default. The ‘nextToken’ query string parameter is now available to return the remaining results. Example : GET /classifieds?nextToken=eyJ2ZXJzaW9uIjoiMiIsImNsYXNzaWZpZWRJZCI6ImFhYjJjNTFkLWU2MmYtNDFjNS1iMmM3LWFkMjJhNjk2MmUzOSIsImN1c3RvbWVySWQiOiJ0ZXN0LXNlci0xIn0= |
📝 Changelog
All notable changes to this API will be documented here. The format is based on Keep a Changelog, and this API doesn’t fully adheres to Semantic Versioning as per described above.
[v3.7] - 2025-05-09
The Aviv Classified API v3.7 includes support for AvivClassified v3.1 and AvivImmo v2.1.
Click to expand
✨ Added
- Classified
- Added
data.energy.countrySpecific.fr.houseEnergyStandardTypesas list of enum (GAZ, LABELHPE, LABELPRO, LABELQUA, NUMERI, QUALIGAZ, VIVRELEC, FPC, NFLOG, DOLCEVIT, HABENV, HQE, CERQUAL,
CERQTEL, SNAL, EFFINER, GRDF, GDFDOLVI, CERFTEL, VIVREL, EVIE, EDFBLEU, RT2005, NFLOHQE, BBC, THPENR, QUALIPRO, FPCALPES, HAVBBC, NFBBC, UCI, CERQBBC, RT2012, NFQUAL, NFHQ, NF, BEPOSEFFINERGIE, EFFINERGIE_PLUS,
HPEBBC, ECOARTISAN, FFCMI, UMF, CCMI, LCAFFB, CNOA, MAISONQUALIT, RE2020, POLEHABITAT) - Added
data.management.countrySpecific.fr.legalNotesas list of enum (LOIDUFLOTOUTRE, LOILMP, LOILMNP, PLSINVESTISSEUR, LOITVA55, DEMEMBREMENT, LOITVA7, LOIEHPAD, AUCUNELOI, LOIPINEL, ANRU, BRS, LOIPINELPLUS) - Added
data.countrySpecific.fr.commercial.specialOfferas new object withstartDate,endDate,commercialTextandlegalNoticefields - Added
data.countrySpecific.fr.commercial.specialOffer.startDate - Added
data.countrySpecific.fr.commercial.specialOffer.endDate - Added
data.countrySpecific.fr.commercial.specialOffer.commercialText - Added
data.countrySpecific.fr.commercial.specialOffer.legalNotice - Added
data.spaces.residential.bathRoomSpaceas number - Added
data.spaces.residential.showerRoomSpaceas number - Added
data.spaces.residential.diningRoomSpaceas number - Added
structure.rooms.hasDiningRoomas boolean - Added
features.residential.Closetas enum with values (YES, NO, NOT_APPLICABLE) - Added
data.buildingProperty.programas object withcoPromotionandsalesOfficefields - Added
data.buildingProperty.program.coPromotion.promoteras object withname,urlLogoandaddressfields - Added
data.buildingProperty.program.coPromotion.coPromoteras object withname,urlLogoandaddressfields - Added
data.buildingProperty.program.coPromotion.promoter.nameas string - Added
data.buildingProperty.program.coPromotion.coPromoter.nameas string - Added
data.buildingProperty.program.coPromotion.promoter.urlLogoas string - Added
data.buildingProperty.program.coPromotion.coPromoter.urlLogoas string - Added
data.buildingProperty.program.coPromotion.promoter.addressas object withstreet,postalcode,city,countryandhouseNumberfields - Added
data.buildingProperty.program.coPromotion.coPromoter.addressas object withstreet,postalcode,city,countryandhouseNumberfields - Added
data.buildingProperty.program.coPromotion.promoter.address.streetas string - Added
data.buildingProperty.program.coPromotion.coPromoter.address.streetas string - Added
data.buildingProperty.program.coPromotion.promoter.address.postalcodeas string - Added
data.buildingProperty.program.coPromotion.coPromoter.address.postalcodeas string - Added
data.buildingProperty.program.coPromotion.promoter.address.cityas string - Added
data.buildingProperty.program.coPromotion.coPromoter.address.cityas string - Added
data.buildingProperty.program.coPromotion.promoter.address.countryas string - Added
data.buildingProperty.program.coPromotion.coPromoter.address.countryas string - Added
data.buildingProperty.program.coPromotion.promoter.address.houseNumberas string - Added
data.buildingProperty.program.coPromotion.coPromoter.address.houseNumberas string - Added
data.buildingProperty.program.salesOfficeas object withstreet,postalcode,city,countryandhouseNumberfields - Added
data.buildingProperty.program.salesOffice.streetas string - Added
data.buildingProperty.program.salesOffice.postalcodeas string - Added
data.buildingProperty.program.salesOffice.cityas string - Added
data.buildingProperty.program.salesOffice.countryas string - Added
data.buildingProperty.program.salesOffice.houseNumberas string - Added
PROVENCAL_FARMHOUSEindata.estateSubType.house
- Added
🏗️ Changed
- Updated
RT2020toRE2020 - Updated
management.projectStatusenum values to (COMMERCIAL_LAUNCH, UNDER_CONSTRUCTION, FINISHING_WORKS, SHELL_WORKS, PROJECT_ENDED, LAST_CHANCE, BUILDING_PERMISSION) - Updated
data.locationdescription
🗑️ Deprecated
The following fields are deprecated starting from 2025-05-09.
- Deprecated
data.energy.countrySpecific.fr.houseEnergyStandardTypein favor ofdata.energy.countrySpecific.fr.houseEnergyStandardTypes
[v3.6] - 2025-02-12
The Aviv Classified API v3.6 includes support for AvivClassified v3.1 and AvivImmo v2.1.
Click to expand
✨ Added
- Classified
- Added
data.prices.rent.minRent - Added
data.prices.buy.minBuy - Added
data.buildingProperty - Added SLN on portal enum
- Added
[v3.5] - 2025-01-17
The Aviv Classified API v3.5 includes support for AvivClassified v3.1 and AvivImmo v2.1.
Click to expand
✨ Added
- Classified
- Added
data.prices.buy.housePrice - Added
data.prices.buy.plotPrice - Added SLC on portal enum
- Added
[v3.4] - 2025-01-06
The Aviv Classified API v3.4 includes support for AvivClassified v3.1 and AvivImmo v2.1.
Click to expand
✨ Added
- Classified
- Added
data.structure.commercial.numberOfDesksMax - Added SERVICE_CONTRACT, SHORT_TERM_LEASE on commercialLease
- Added
[v3.3] - 2024-11-22
The Aviv Classified API v3.3 includes support for AvivClassified v3.1 and AvivImmo v2.1.
Click to expand
✨ Added
- Classified
- Added
data.countrySpecific.fr.commercial - Added
data.metaData.nbMedias
- Added
[v3.2] - 2024-02-01
The Aviv Classified API v3.2 includes support for AvivClassified v3.1 and AvivImmo v2.1.
Click to expand
✨ Added
- Classified
- Added
MANSIONindata.estateSubType.house - Added
data.structure.rooms.numberOfPowderRooms
- Added
[v3.1] - 2023-10-04
The Aviv Classified API v3.1 includes support for AvivClassified v3.0 and AvivImmo v2.1.
Click to expand
✨ Added
- Classified
- Added
data.energy.countrySpecific.fr.energyCertificate.finalConsumption - Added
data.countrySpecific.fr.risk.isPolluting - Added
data.countrySpecific.fr.risk.dateOfStatementOfRisksAndPollution
- Added
[v3] - 2022-06-20
The Aviv Classified API v3 includes support for AvivClassified v3.0 and AvivImmo v2.1.
Click to expand
🗑️ Deprecated
The following fields are deprecated starting from 2022-06-20 and will be discontinued on 2023-01-20.
- Deprecated
data.energy.countrySpecific.fr.energyCertificate.yearOfConsumptionCostEstimation - Deprecated
data.countrySpecific.fr.businessSubType.WINEWINEin favor ofcountrySpecific.fr.businessSubType.WINE - Deprecated
data.prices.buy.rentalIncome.priceInformation - Deprecated
data.prices.buy.rentalIncomeExpect.priceInformation - Deprecated
data.prices.compulsoryAuction.auctionProceeds.priceInformation - Deprecated
data.prices.compulsoryAuction.biddingGuarantee.priceInformation - Deprecated
data.prices.compulsoryAuction.marketValue.priceInformation - Deprecated
data.prices.compulsoryAuction.minimumBid.priceInformation - Deprecated
data.prices.brokerageFee.priceInformation - Deprecated
data.metaData.changeLog - Deprecated
specific.gsl.mainContactPersonin favor ofdata.contact.mainContactPersonId(refer to Aviv Contact API to generate this identifier) - Deprecated
specific.gsl.additionalContactPersonin favor ofdata.contact.additionalContactPersonId(refer to Aviv Contact API to generate this identifier)
✨ Added
- Classified
- Added
data.prices.buy.leasehold.isLeasehold - Added
data.prices.countrySpecific.be.commercial.isBusinessSold - Added
data.prices.countrySpecific.be.commercial.downPayment - Added
data.prices.buy.countrySpecific.be.isSubjectToVat - Added
data.prices.buy.countrySpecific.be.cadastralIncome - Added
data.management.countrySpecific.be.urbanPlanningInformation - Added
data.management.countrySpecific.be.isAsBuiltPlanCertificate - Added
data.management.countrySpecific.be.buildingPermission.constructionType - Added
data.management.countrySpecific.be.buildingPermission.floodZoneType - Added
data.management.countrySpecific.be.buildingPermission.hasObligationToConstruct - Added
data.management.countrySpecific.be.buildingPermission.hasPlotDivisionAuthorization - Added
data.management.countrySpecific.be.buildingPermission.hasPossiblePriorityPurchaseRight - Added
data.management.countrySpecific.be.buildingPermission.isBreachingUrbanPlanningRegulation - Added
data.prices.rent.countrySpecific.fr.maxRegulatedRent containing is the regulated price - Added
data.prices.buy.countrySpecific.be.lifeAnnuity.estimatedPropertyValue - Added
data.prices.buy.countrySpecific.be.lifeAnnuity.lumpSum - Added
data.prices.buy.countrySpecific.be.lifeAnnuity.monthlyAmount - Added
data.management.countrySpecific.be.lifeAnnuity.isIndexed - Added
data.management.countrySpecific.be.lifeAnnuity.isJointAndSurvivorContract - Added
data.management.countrySpecific.be.lifeAnnuity.isBareOwnership - Added
data.management.countrySpecific.be.lifeAnnuity.contractMaximumDurationDescription - Added
data.management.countrySpecific.be.lifeAnnuity.annuitants.count - Added
data.management.countrySpecific.be.lifeAnnuity.annuitants.ages - Added
data.energy.countrySpecific.fr.energyCertificate.dateOfConsumptionCostEstimation - Added
data.structure.building.numberOfFacades - Added
data.prices.rent.baseRentPerYearto report yearly discounted base rent without any operating costs, water, power, etc. To use only if you have already provided a yearly non-negotiated amount in price.rent.baseRent (i.e. with `data.prices.rent.priceTimeUnit = YEAR). - Added
data.structure.building.gardenOrientation - Added
data.spaces.kitchenSpace - Added
data.countrySpecific.fr.businessSubType.WINE - Added
data.energy.countrySpecific.be.oilTankCertificateStatus - Added
data.energy.countrySpecific.be.hasElectricalInstallationComplianceCertificate - Added
data.energy.countrySpecific.be.primaryEnergyConsumptionLevel - Added
data.energy.countrySpecific.be.globalThermalInsulationLevel - Added
data.energy.countrySpecific.be.energyCertificate - Added
data.energy.countrySpecific.be.energyCertificateNote - Added
data.prices.rent.countrySpecific.fr.overRegulatedRentas a number to get the amount above regulated price (mandatory when rent price exceeds it) - Using geoJSON Geometry instead of geocode data: Adding geometry in location block
- Added
data.geo.unitas location.unit to get detailed information on the unit where the property is. - Added
data.geo.staircaseas location.staircase to provide the staircase when applicable - Added
data.geo.entranceas location.entrance to provide the entrance name when applicable - Added
data.generic.linkssection - Added
data.links.virtualTourssection - Added
data.structure.building.offeredFloors - Added
data.energy.energyType.energySource.districtHeating - Added
data.structure.building.locationInBuilding - Added
MANOR_HOUSEindata.estateSubType.house - Added
data.features.internet.internetAvailabilitywith opticalFiber, DSL, cable, satellite - Added
data.features.internet.propertyInternetAccess - Added
data.spaces.additionalSpace: contains all cumulated additional spaces from outbuilding, extended or misc places. - Added
data.spaces.overallSpace - Added
data.spaces.usableFloorSpace - Added
data.spaces.spaceMin - Added
data.spaces.spaceMax - Added
data.spaces.plotSpace - Added
data.features.accessibleFromStreet - Added
data.management.rent.isShortTimeRental - Added
data.structure.building.kitchen.kitchenType.kitchenette - Added
data.structure.rooms.numberOfKitchens - Added
data.features.plot.developmentInfrastructure.districtHeating - Added
data.structure.building.window - Added
data.features.plot.brownfield - Added some agency fee data into
data.prices.brokerageFee - Added value to the
structure.building.atticenum :PART_CONVERTED
- Added
🏗️ Changed
- Moved
data.texts.locationNote to location.locationNote - Updated
data.location.geometrydescription to highlight WGS84 coordinates expected - Changed
data.metaData.classifiedIdto be a UUID now - Moved
data.prices.buy.agencyFeeinformation to `data.prices.brokerageFee - Moved
data.prices.rent.agencyFeeinformation to `data.prices.brokerageFee - Changed
data.prices.currencyby using ISO4217 ENUM for currency codes (last checked: October 1, 2021) - Changed
data.countrySpecific.fr.subdivisions.currencyby using ISO4217 ENUM for currency codes (last checked: October 1, 2021) - Changed
data.location.country,data.location.city,data.location.postalcode,data.location.streetanddata.location.houseNumberare now mandatory - Moved
data.externalLinkstodata.links.externalLinksto support new kind of links - Renamed
data.energy.countrySpecific.de.energyCertificatetodata.energy.countrySpecific.de.energyCertificates(as type is ARRAY) - Renamed
data.estateSubTypes.DUPLEX_OR_TRIPLEXtodata.estateSubType.MULTI_STOREY - Changed
data.energy.energyType.energyGenerationfrom enum to boolean types without SOLAR_HEAT and WIND - Renamed
data.features.residential.washDryRoomtodata.features.residential.laundryRoom - Renamed
data.estateType.GASTRO_HOTELtodata.estateType.GASTRONOMY_HOTEL - Renamed
data.estateSubTypes.gastroHoteltodata.estateSubType.gastronomyHotel - Renamed
data.estateSubTypes.gastroHotel.CLUB_DISCOTHEKtodata.estateSubType.gastronomyHotel.CLUB_DISCOTHEQUE - Renamed
data.countrySpecific.fr.business.businessType.GASTRO_HOTELtodata.countrySpecific.fr.business.businessType.GASTRONOMY_HOTEL - Renamed
data.countrySpecific.fr.business.businessSubType.CLUB_DISCOTHEKtodata.countrySpecific.fr.business.businessSubType.CLUB_DISCOTHEQUE - Renamed
data.estateSubTypes.house.CASTLE_MANOR_HOUSEto `data.estateSubType.house.CASTLE`` - Renamed
data.estateSubTypes.apartment.APARTMENTtodata.estateSubType.apartment.STUDIO - Changed
data.structure.rooms.numberOfBedRoomsformat from number to integer - Changed
data.structure.rooms.numberOfBathRoomsformat from number to integer - Changed
data.structure.rooms.numberOfToiletsformat from number to integer - Changed
data.structure.rooms.numberOfBalconiesformat from number to integer - Changed
data.structure.rooms.numberOfTerracesformat from number to integer - Changed
data.structure.rooms.numberOfKitchensformat from number to integer - Changed
data.structure.rooms.numberOfUnitsformat from number to integer - Changed
data.estateSubType.parkingby removing MIXED choice - Changed
data.prices.buy.parkingSpaceby removing MIXED choice - Changed
data.prices.rent.parkingRentby removing MIXED choice - Moved
data.features.bikeParkingtodata.features.parking.bikeParking - Moved
data.features.internetSpeedMbittodata.features.internet.internetSpeedMbit - Moved
data.features.commercial.accessibleFromStreettodata.features.accessibleFromStreet - Moved
data.features.plot.accessibleFromStreettodata.features.accessibleFromStreet - Changed
data.features.lightingby deleting: “natural”, “fluorescence”, “halogen”, “incandescence”, “desks”, “outside” - Changed
data.features.security.tel2policeanddata.features.security.tel2securitytodata.features.security.emergencyCall - Moved
data.features.residential.mezzaninetodata.features.mezzanine - Moved
data.structure.commercial.roomHeighttostructure.building.roomHeight - Renamed
data.features.parking.connectionForPowerSupplyto chargingStation (charging station for electric cars) - Moved
data.spaces.plot.plotSpacetodata.spaces.plotSpace - Moved
data.spaces.residential.plotFronttodata.spaces.plotFront - Changed
data.structure.balconyOrientationAdd NORTH_EAST, SOUTH_EAST, NORTH_WEST, SOUTH_WEST, SOUTH_NORTH and EAST_WEST - Renamed SINGLEROOM to FLATSHARING_ROOM in
data.estateSubType.apartment - Renamed
data.prices.buy.isleaseBuyCombi todata.prices.buy.isLeaseBuyCombi` - Changed
data.prices.buy.countrySpecific.fr.isReducedNotaryFeesChange YES/NO Enum into boolean field - Changed FLOOR to STOREY in
data.energy.energyType.heatMethod - Changed REMOTE to DISTRICT_HEATING in
data.energy.energyType.heatMethod - Renamed energy.energyType.heatForm.floor to
data.energy.energyType.heatForm.underfloor - Renamed
data.structure.building.windowMaterial.blindstodata.structure.building.window.blinds - Renamed
data.structure.building.windowMaterial.bayWindowtodata.structure.building.window.bayWindow - Moved
data.structure.building.windowMaterialtodata.structure.building.window.windowMaterial section - Changed
data.structure.building.kitchen.kitchenTypeenum to boolean fields. - Changed
data.structure.building.withViewenum to boolean fields. - Changed
data.feature.gardenenum to boolean fields. - Changed
data.features.propertyOrientationAdd NORTH_EAST, SOUTH_EAST, NORTH_WEST, SOUTH_WEST, SOUTH_NORTH and EAST_WEST - Renamed
data.prices.compulsoryAuction.minumumBidtoprices.compulsoryAuction.minimumBid - Renamed
data.features.floorCovering.tiletodata.features.floorCovering.tiles - Renamed
data.features.floorCovering.marbeltodata.features.floorCovering.marble - Renamed
data.features.commercial.flexibleWallstodata.features.commercial.flexibleRoomLayout - Changed
data.spaces.spaceMeasureUnits“SQUARE” prefix was added in front of the INCH, FOOT and YARD units - Changed
portalsto add a max items restriction and a unicity restriction - Changed
management.availableFromfromdatetodate-time
❌ Removed
- Complementary spaces: Removed
data.spaces.commercial.complementarySpace - Removed uuid format constraint from
data.metaData.source.offererEstateId - Removed duplicated properties (already in
data.structure.parkingLots)data.structure.commercial.numberOfOutdoorParkingSpaces(usedata.structure.parkingLots.outsideinstead) - Removed duplicated properties (already in
data.structure.parkingLots)data.structure.commercial.numberOfUndergroundParkingSpaces(usedata.structure.parkingLots.undergroundinstead) - Removed VIRTUAL_TOUR from
data.links.externalLinks.urlTypeenumeration values - Removed
data.texts.regionalNote.Usedata.location.locationNoteinstead. - Removed
data.portalOffererIdas it is already defined in Aviv Classified (where it will be named offererId from now on) - Removed
data.prices.buy.agencyFeeblock - usedata.prices.brokerageFeeinstead - Removed
data.prices.rent.agencyFeeblock - usedata.prices.brokerageFeeinstead - Deleted geocodeLatitude, geocodeLongitude. Use geometry instead.
- Removed
data.estateSubTypes.project.PLANED - Deleted
data.energy.energyType.heatMethod.DISTRICT_HEATING - Deleted BEACH_HOUSE in
data.estateSubTypes.house - Deleted ATTIKA in
data.estateSubTypes.apartment - Deleted GALLERY in
data.estateSubTypes.apartment - Deleted GROUNDFLOOR in
data.estateSubTypes.apartment(replaced bydata.structure.building.locationInBuilding.GROUNDFLOOR) - Deleted HALF_BASEMENT in
data.estateSubTypes.apartment(replaced bydata.structure.building.locationInBuilding.HALF_BASEMENT) - Deleted ROOF_STOREY in
data.estateSubTypes.apartment(replaced bydata.structure.building.locationInBuilding.ROOF_STOREY) - Removed
data.structure.parkingLots.mixed - Removed
data.features.internetConnectionUsedata.features.internet.internetAvailabilityinstead. - Removed
data.features.bikeChargingStation - Removed
data.features.equipment - Removed
data.features.security.securitySmoke - Removed
data.features.security.truckBarrier - Removed
data.features.security.fireHose - Removed
data.features.security.accessBadgeUsedata.features.security.digitalLockinstead. - Removed
data.features.residential.gardenShed - Removed
data.features.residential.patio - Removed
data.features.residential.outbuilding - Removed
data.features.residential.pergola - Removed
data.features.residential.winterGardenUsedata.features.residential.verandainstead. - Removed
data.features.commercial.industrialSpur - Removed
data.features.commercial.numberOfHairDressingStations - Removed
data.features.commercial.numberOfShampooChairs - Removed
data.features.commercial.numberOfFittingRooms - Removed
data.features.commercial.numberOfTreatementCabins - Removed
data.features.commercial.changingRoom - Removed
data.features.parking.parkingBuildingSeparated - Removed
data.features.countrySpecific.fr.boulodrome - Removed
data.structure.commercial.numberOfSingleBedsand numberOfDoubleBeds -> (summarized with numberOfBeds) - Removed
data.structure.commercial.parkingLotNearby - Removed
data.structure.commercial.numberOfSmokingRooms - Removed
data.spaces.residential.miscSpaceUsedata.spaces.additionalSpaceinstead. - Removed
data.spaces.residential.outbuildingSpaceUsedata.spaces.additionalSpaceinstead. - Removed
data.spaces.residential.overallSpaceUsedata.spaces.overallSpaceinstead. - Removed
data.spaces.residential.usableFloorSpaceUsedata.spaces.usableFloorSpaceinstead. - Removed
data.spaces.residential.spaceMinUsedata.spaces.spaceMininstead. - Removed
data.spaces.residential.spaceMaxUsedata.spaces.spaceMaxinstead. - Removed
data.spaces.residential.plotSpaceUsedata.spaces.plotSpaceinstead. - Removed
data.spaces.commercial.extendedSpaceUsespaces.usableFloorSpace` instead. - Removed
data.spaces.commercial.additionalSpaceUsedata.spaces.additionalSpaceinstead. - Removed
data.spaces.commercial.overallSpaceUsedata.spaces.overallSpaceinstead. - Removed
data.spaces.commercial.usableFloorSpaceUsedata.spaces.usableFloorSpaceinstead. - Removed
data.spaces.commercial.spaceMinUsedata.spaces.spaceMininstead. - Removed
data.spaces.commercial.spaceMaxUsedata.spaces.spaceMaxinstead. - Removed
data.spaces.commercial.plotSpaceUsedata.spaces.plotSpaceinstead. - Removed
data.spaces.plot.plotSpaceUsedata.spaces.plotSpaceinstead. - Removed
data.spaces.plot - Removed
data.prices.buy.rentalIncome.isOperatingCostsIncluded - Removed
data.prices.buy.rentalIncomeExpect.isOperatingCostsIncluded - Removed NONE from
data.structure.building.kitchen.kitchenType - Removed
data.prices.rent.lease.leaseDurationUsedata.rent.minRentalTimeinstead. - Removed
data.structure.building.changeableWallsToo similar todata.features.commercial.flexibleRoomLayout - Removed values to the
structure.building.atticenum :YES,NO,NOT_APPLICABLE
[v2] - 2022-01-05
The Aviv Classified API v2 includes support for AvivClassified v2.1 and AvivImmo v1.11.
Click to expand
🗑️ Deprecated
The following fields are deprecated starting from 2022-01-20 and will be discontinued on 2022-06-20.
- Deprecated
data.estateSubTypes.house.BEACH_HOUSE - Deprecated
data.estateSubTypes.apartment.GALLERY - Deprecated
data.estateSubTypes.apartment.ATTIKA - Deprecated
data.estateSubTypes.parking.MIXED - Deprecated
data.estateSubTypes.project.PLANED - Deprecated
data.prices.buy.rentalIncome.isOperatingCostsIncluded - Deprecated
data.prices.buy.rentalIncomeExpect.isOperatingCostsIncluded - Deprecated
data.prices.buy.parkingPrice.parkingStyle.MIXED - Deprecated
data.features.bikeChargingStation - Deprecated
data.features.equipment - Deprecated
data.features.lighting.natural - Deprecated
data.features.lighting.fluorescence - Deprecated
data.features.lighting.halogen - Deprecated
data.features.lighting.incandescence - Deprecated
data.features.lighting.desks - Deprecated
data.features.lighting.outside - Deprecated
data.features.security.fireHose - Deprecated
data.features.residential.gardenShed - Deprecated
data.features.residential.patio - Deprecated
data.features.residential.pergola - Deprecated
data.features.residential.winterGardenin favor ofdata.features.residential.veranda - Deprecated
data.features.residential.outbuilding - Deprecated
data.features.residential.countrySpecific.fr.boulodrome - Deprecated
data.features.commercial.industrialSpur - Deprecated
data.features.commercial.numberOfHairDressingStations - Deprecated
data.features.commercial.numberOfShampooChairs - Deprecated
data.features.commercial.numberOfFittingRooms - Deprecated
data.features.commercial.numberOfTreatementCabins - Deprecated
data.features.parking.parkingBuildingSeparated - Deprecated
data.energy.energyType.heatMethod.REMOTE - Deprecated
data.structure.commercial.parkingLotNearby - Deprecated
data.structure.commercial.numberOfSmokingRooms - Deprecated
data.structure.parkingLots.mixed - Deprecated
data.texts.regionalNote - Deprecated
data.metaData.portalOffererId - Deprecated
data.spaces.residential.miscSpacein favor ofdata.spaces.additionalSpace - Deprecated
data.spaces.residential.outbuildingSpacein favor ofdata.spaces.additionalSpace - Deprecated
data.spaces.residential.usableFloorSpacein favor ofdata.spaces.usableFloorSpace - Deprecated
data.spaces.residential.spaceMinin favor ofdata.spaces.spaceMin - Deprecated
data.spaces.residential.spaceMaxin favor ofdata.spaces.spaceMax - Deprecated
data.spaces.commercial.extendedSpacein favor ofdata.spaces.usableFloorSpace - Deprecated
data.spaces.commercial.additionalSpacein favor ofdata.spaces.additionalSpace - Deprecated
data.spaces.commercial.usableFloorSpacein favor ofdata.spaces.usableFloorSpace - Deprecated
data.spaces.commercial.spaceMinin favor ofdata.spaces.spaceMin - Deprecated
data.spaces.commercial.spaceMaxin favor ofdata.spaces.spaceMax - Deprecated
data.spaces.residential.overallSpacein favor ofdata.spaces.overallSpace - Deprecated
data.spaces.residential.plotSpacein favor ofdata.spaces.plotSpace - Deprecated
data.spaces.residential.plotFrontin favor ofdata.spaces.plotFront - Deprecated
data.spaces.commercial.overallSpacein favor ofdata.spaces.overallSpace - Deprecated
data.spaces.commercial.plotSpacein favor ofdata.spaces.plotSpace - Deprecated
data.spaces.plot.plotSpacein favor ofdata.spaces.plotSpace - Deprecated
data.management.countrySpecific.fr.commercialLeaseDurationin favor ofdata.management.countrySpecific.fr.commercialLeaseEndDate
✨ Added
- Added
data.prices.rent.countrySpecific.fr.overRegulatedRent - Added
data.energy.energyType.energySource.districtHeating - Added
data.features.plot.developmentInfrastructure.districtHeating - Added
data.structure.building.offeredFloors - Added
data.structure.rooms.numberOfKitchens - Added
data.spaces.overallSpace - Added
data.spaces.plotSpace - Added
data.spaces.plotFront - Added
data.management.countrySpecific.fr.commercialLeaseEndDateUse this new field instead of commercialLeaseDuration - Added
data.management.rent.isShortTimeRentalfor all kind of short time living, but NOT for vacation
🏗️ Changed
- Changed
data.features.plot.tilt(enum) with new NONE item.
[v2] - 2021-07-20
The Aviv Classified API v2 includes support for AvivClassified v2.0 and AvivImmo v1.8.
Additionally, the Aviv Classified API v2 introduces new API error messages which are now more human readable and machine parsable.
These error messages have been designed following the RFC-7807.
Click to expand
🗑️ Deprecated
The following fields are deprecated starting from 2021-07-20 and will be discontinued on 2022-01-20.
- Deprecated
data.energy.countrySpecific.fr.energyValuein favor ofdata.energy.countrySpecific.fr.certificateType.overallEnergyNeed - Deprecated
data.energy.countrySpecific.fr.energyLetterin favor ofdata.energy.countrySpecific.fr.certificateType.efficiencyClass - Deprecated
data.energy.countrySpecific.fr.GHGValuein favor ofdata.energy.countrySpecific.fr.certificateType.GHGEmission - Deprecated
data.energy.countrySpecific.fr.GHGLetterin favor ofdata.energy.countrySpecific.fr.certificateType.GHGEmissionClass
✨ Added
- Classified
- [Construction project] Added French tax reduction zones (new built, new constructions) :
data.prices.countrySpecific.fr.taxReductionZone - Added new French energy certificate block :
data.energy.countrySpecific.fr.energyCertificate - [Construction project] Added building materials :
data.structure.building.wallConstructionMaterial - Added new built and constructions project status :
data.management.projectStatus - [Construction project] Added spaceMin needed for catalog house and new programs (residential) :
data.spaces.residential.spaceMin. - [Construction project] Added spaceMax needed for catalog house and new programs (residential) :
data.spaces.residential.spaceMax - Added accounting sections to describe how are paid heating costs :
data.prices.rent.heatingCosts.accounting. - Added accounting sections to describe how are paid operating costs :
data.prices.rent.operatingCosts.accountinganddata.prices.buy.operatingCosts.accounting - Added property with/without entrance hall/lobby :
data.features.entranceHall - Added accessiblility from street feature :
data.features.plot.accessibleFromStreet - Added the possibility to indicate if when the property is sold with life annuity, is it free or occupied :
data.management.countrySpecific.fr.unoccupiedLifeAnnuity - [Construction project] Added half-Floor or multi floor :
data.structure.building.hasSplitFloor - [Complementary spaces] Added
data.spaces.commercial.complementarySpacesas ARRAY of complementarySpaceType, complementarySpaceSubType, complementarySpaceArea - [Construction project] Added land tilt to describe tilt of plot (lands have a tilt angle or degree) :
data.features.plot.tilt(enum : MINOR, SIGNIFICANT, STEEP) - [Construction project] Added field for terraced areas (houses can be of restanque style) :
data.features.plot.isTerracedArea(boolean) - [Construction project] Added shape of the house. It represents the external form of the house :
data.structure.building.shape(enum : L_SHAPED, U_SHAPED, V_SHAPE, RECTANGULAR, SQUARE, OTHER) - Added Energy saving labels for energy standard in France :
data.countrySpecific.fr.houseEnergyStandardType(enum : RT2012, RT2020, HIGH_PERFORMANCE, BBC, MINERGIE, EFFINERGIE_PLUS, HQE, THQE) - Added Building Facade length in space measure unit:
data.spaces.buildingFront - Added Minergie properties for Switzerland:
data.energy.countrySpecific.ch.isMinergieConstruction - Added Minergie properties for Switzerland:
data.energy.countrySpecific.ch.isMinergieCertified - Added
data.energy.energyType.energySource.liquidGasas new energy source - Added energy certificate property for Austria:
data.energy.countrySpecific.at.energyCertificate - Added price properties for Austria:
data.prices.(buy|rent).countrySpecific.at.operatingCostsNet - Added price properties for Austria:
data.prices.(buy|rent).countrySpecific.at.heatingCostsNet - Added price properties for Austria:
data.prices.(buy|rent).countrySpecific.at.miscCostsNet - Added price properties for Austria:
data.prices.buy.countrySpecific.at.vatCostsPerMonth - Added price properties for Austria:
data.prices.buy.countrySpecific.at.costsPerMonthGross - Added price properties for Austria:
data.prices.rent.countrySpecific.at.overallLoadVat - Added price properties for Austria:
data.prices.rent.countrySpecific.at.overallRentGross - Added price properties for Austria:
data.prices.rent.countrySpecific.at.rentNet - Added
date-timeformat declarations - Added external media links:
data.externalLink - Added a consistency check on the data.contact.mainContactPersonId and data.contact.additionalContactPersonId fields
- [Construction project] Added French tax reduction zones (new built, new constructions) :
- Media
- Added the
PANORAMAmedia type
- Added the
🏗️ Changed
- In PriceCommon, amount is no more mandatory: Changed
data.prices.buy.operatingCosts.amount - In PriceCommon, amount is no more mandatory: Changed
data.prices.rent.operatingCosts.amount - In PriceCommon, amount is no more mandatory: Changed
data.prices.rent.heatingCosts.amount - Changed
data.prices.buy.leasehold.endDate - Changed
data.prices.buyAunction.startOfferPhase - Changed
data.prices.buyAunction.endOfferPhase - Changed
data.energy.countrySpecific.de.releaseDate - Changed
data.energy.countrySpecific.de.validUntil - Changed
data.management.availableFrom - Changed
data.management.availableUntil - Changed
data.management.compulsoryAuction.cancellationDate - Changed
data.countrySpecific.fr.agentMandate.startDate - Changed
data.countrySpecific.fr.agentMandate.endDate - Changed
data.countrySpecific.fr.subdivisions.buildings.parts.partFromDate - Changed
data.metaData.source.offererEstateIdformat: Removed uuid constraint - Changed API error messages following the standard defined in RFC 7807. The error message is decribed in the “Schemas” paragraph of the documentation under the “ErrorResponse” section.
- Changed the behaviour of the
GET /classifiedsendpoint. The HTTP 200 response is now paginated.
ThelimitandnextTokenparameters have been made available to handle this pagination. - Changed the behaviour of the
GET /classifieds/:id/mediaendpoint. The HTTP 200 response is now paginated.
ThenextTokenparameter has been made available to handle this pagination.
❌ Removed
- Complementary spaces: Removed
data.spaces.commercial.complementarySpace - Removed uuid format constraint from
data.metaData.source.offererEstateId - Removed duplicated properties (already in
data.structure.parkingLots)data.structure.commercial.numberOfOutdoorParkingSpaces(usedata.structure.parkingLots.outsideinstead) - Removed duplicated properties (already in
data.structure.parkingLots)data.structure.commercial.numberOfUndergroundParkingSpaces(usedata.structure.parkingLots.undergroundinstead)
[v1] - 2020-07-02
First version of the API supporting AvivClassified 1.0.0 and AvivImmo v1.4.1
- Server 1:https://api.aviv-group.com/caas/v3
Production server
- Server 2:https://api.aviv-group.com/sandbox/caas/v3
Sandbox server
bearerAuth (http)
Provide your bearer token in the Authorization header when making requests to protected resources.
Example: Authorization: Bearer 123