Search
K
[dev] 🇫🇷 Classifieds Management V4

Aviv Classified API

4.0.2OAS 3.0

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: support-caas@groupeseloger.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://api.aviv-group.com/caas/v4. For example, the classifieds resource is reachable at https://api.aviv-group.com/caas/v4/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 endpoint across this API
caas:classifieds:read manage your GET classified endpoint (/classifieds, /classifieds/{ClassifiedId}) across this API
caas:classifieds:create manage your POST classified endpoint (/classifieds) across this API
caas:classifieds:update manage your PUT classified endpoint (/classifieds/{ClassifiedId}) across this API
caas:classifieds:delete manage your DELETE classified endpoint (/classifieds/{ClassifiedId}) 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 v4 so all the API request must be performed with this version number in the endpoints.

Example:
POST /v4/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 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 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 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 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/staging/seloger/ingest-v4/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/staging/seloger/ingest-v4/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/staging/seloger/ingest-v4/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/staging/seloger/ingest-v4/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 v3 to API v4

The following section will help you to migrate your API integration from API v3 to API v4. Only the changes breaking the backward-compatible rules are detailed in this section.

Endpoints mapping

The API v4 will not contain the media endpoints defined in API v3.
The following endpoints will be removed in API v4:

  • POST /classifieds/{classifiedId}/media
  • PATCH /classifieds/{classifiedId}/media/{mediaId}
  • DELETE /classifieds/{classifiedId}/media/{mediaId}
  • DELETE /classifieds/{classifiedId}/media
  • GET /classifieds/{classifiedId}/media
  • GET /classifieds/{classifiedId}/media/{mediaId}/statuses
  • PATCH /classifieds/{classifiedId}

Headers parameters mapping

No changes.

Body parameters mapping

Click to expand
API v4 API v3
media is an array of objects in the classified payload on the same level as portals and data Not available
media.[].url is a string Not available
media.[].mediaType is a string with MediaType enum formatting Not available
media.[].title is a string Not available
media.[].category is a string with MediaCategory enum formatting Not available
media.[].tags is an array of strings Not available

Reponses format mapping

Click to expand
Endpoints API v3 API v4
GET /classifieds Returns all classifieds. Returns results without limiting the number of results Returns all classifieds with all media associated to each classified. Returns results without limiting the number of results
GET /classifieds/{classifiedId} Returns the existing classified Returns the existing classified and all media associated to the classified
POST /classifieds Creates a new classified Creates a new classified and the media included in the payload.Media must now be sent in the payload.
PUT /classifieds/{classifiedId} Updates the existing classified Updates the existing classified and the media included in the payload. Media must now be sent in the payload.
DELETE /classifieds/{classifiedId} Deletes the existing classified and all media associated to the classified No changes.

⬆️ 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=10
Example 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.

[v4] - 2025-11-05

The Aviv Classified API v4 includes support for AvivClassified v3.1 and AvivImmo v2.1.

Click to expand

✨ Added

  • Classified
    • Added media as list of objects with url, mediaType, title, category and tags fields
    • Added media.url as string
    • Added media.mediaType as enum (PICTURE, VIRTUAL_TOUR, PANORAMA, VIDEO)
    • Added media.title as string
    • Added media.category as enum (BALCONY, BASEMENT, BATHROOM, BEDROOM, CHILDREN_ROOM, CORRIDOR, COVER_PICTURE, ENERGY_CERTIFICATE, ENTRY_HALL, FLOOR_PLAN, GARAGE, GARDEN, HOUSE_VIEW, INDOOR, KITCHEN, LIVING_ROOM, LOGO, MAP, MISC, OUTDOOR, OUTDOOR_BUILDING, OUTDOOR_HOUSE, OUTSIDE_VIEW, POOL, PROPERTY_INFORMATION, SCHEMA, SITE_PLAN, STAIRS, STORAGE_ROOM, SURROUNDING, TERRACE, TOILETS, VERANDA, VIEW_FROM_PROPERTY, WORK_ROOM)
    • Added media.tags as list of strings

🗑️ Removed

  • Removed GET /classifieds/{classifiedId}/media/{mediaId}/statuses endpoint. Media statuses are now available through the classified statuses endpoint.

[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.houseEnergyStandardTypes as 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, RE2025)
    • Added data.management.countrySpecific.fr.legalNotes as list of enum (LOIDUFLOTOUTRE, LOILMP, LOILMNP, PLSINVESTISSEUR, LOITVA55, DEMEMBREMENT, LOITVA7, LOIEHPAD, AUCUNELOI, LOIPINEL, ANRU, BRS, LOIPINELPLUS,
      LLI, PTZ)
    • Added data.countrySpecific.fr.commercial.specialOffer as new object with startDate, endDate, commercialText and legalNotice fields
    • 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.bathRoomSpace as number
    • Added data.spaces.residential.showerRoomSpace as number
    • Added data.spaces.residential.diningRoomSpace as number
    • Added structure.rooms.hasDiningRoom as boolean
    • Added features.residential.Closet as enum with values (YES, NO, NOT_APPLICABLE)
    • Added data.buildingProperty.program as object with coPromotion and salesOffice fields
    • Added data.buildingProperty.program.coPromotion.promoter as object with name, urlLogo and address fields
    • Added data.buildingProperty.program.coPromotion.coPromoter as object with name, urlLogo and address fields
    • Added data.buildingProperty.program.coPromotion.promoter.name as string
    • Added data.buildingProperty.program.coPromotion.coPromoter.name as string
    • Added data.buildingProperty.program.coPromotion.promoter.urlLogo as string
    • Added data.buildingProperty.program.coPromotion.coPromoter.urlLogo as string
    • Added data.buildingProperty.program.coPromotion.promoter.address as object with street, postalcode, city, country and houseNumber fields
    • Added data.buildingProperty.program.coPromotion.coPromoter.address as object with street, postalcode, city, country and houseNumber fields
    • Added data.buildingProperty.program.coPromotion.promoter.address.street as string
    • Added data.buildingProperty.program.coPromotion.coPromoter.address.street as string
    • Added data.buildingProperty.program.coPromotion.promoter.address.postalcode as string
    • Added data.buildingProperty.program.coPromotion.coPromoter.address.postalcode as string
    • Added data.buildingProperty.program.coPromotion.promoter.address.city as string
    • Added data.buildingProperty.program.coPromotion.coPromoter.address.city as string
    • Added data.buildingProperty.program.coPromotion.promoter.address.country as string
    • Added data.buildingProperty.program.coPromotion.coPromoter.address.country as string
    • Added data.buildingProperty.program.coPromotion.promoter.address.houseNumber as string
    • Added data.buildingProperty.program.coPromotion.coPromoter.address.houseNumber as string
    • Added data.buildingProperty.program.salesOffice as object with street, postalcode, city, country and houseNumber fields
    • Added data.buildingProperty.program.salesOffice.street as string
    • Added data.buildingProperty.program.salesOffice.postalcode as string
    • Added data.buildingProperty.program.salesOffice.city as string
    • Added data.buildingProperty.program.salesOffice.country as string
    • Added data.buildingProperty.program.salesOffice.houseNumber as string
    • Added PROVENCAL_FARMHOUSE in data.estateSubType.house

🏗️ Changed

  • Updated RT2020 to RE2020
  • Updated management.projectStatus enum values to (COMMERCIAL_LAUNCH, UNDER_CONSTRUCTION, FINISHING_WORKS, SHELL_WORKS, PROJECT_ENDED, LAST_CHANCE, BUILDING_PERMISSION)
  • Updated data.location description

🗑️ Deprecated

The following fields are deprecated starting from 2025-05-09.

  • Deprecated data.energy.countrySpecific.fr.houseEnergyStandardType in favor of data.energy.countrySpecific.fr.houseEnergyStandardTypes
- Deprecated `data.location.showAddress`. This attribute has no effect. Configuration has to be set in “Localisation des biens” in MySeLogerPRO account of the customer.

[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

[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

[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

[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

[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 MANSION in data.estateSubType.house
    • Added data.structure.rooms.numberOfPowderRooms

[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

[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.WINEWINE in favor of countrySpecific.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.mainContactPerson in favor of data.contact.mainContactPersonId (refer to Aviv Contact API to generate this identifier)
  • Deprecated specific.gsl.additionalContactPerson in favor of data.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.baseRentPerYear to 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.overRegulatedRent as 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.unit as location.unit to get detailed information on the unit where the property is.
    • Added data.geo.staircase as location.staircase to provide the staircase when applicable
    • Added data.geo.entrance as location.entrance to provide the entrance name when applicable
    • Added data.generic.links section
    • Added data.links.virtualTours section
    • Added data.structure.building.offeredFloors
    • Added data.energy.energyType.energySource.districtHeating
    • Added data.structure.building.locationInBuilding
    • Added MANOR_HOUSE in data.estateSubType.house
    • Added data.features.internet.internetAvailability with 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.attic enum : PART_CONVERTED

🏗️ Changed

  • Moved data.texts.locationNote to location.locationNote
  • Updated data.location.geometry description to highlight WGS84 coordinates expected
  • Changed data.metaData.classifiedId to be a UUID now
  • Moved data.prices.buy.agencyFee information to `data.prices.brokerageFee
  • Moved data.prices.rent.agencyFee information to `data.prices.brokerageFee
  • Changed data.prices.currency by using ISO4217 ENUM for currency codes (last checked: October 1, 2021)
  • Changed data.countrySpecific.fr.subdivisions.currency by using ISO4217 ENUM for currency codes (last checked: October 1, 2021)
  • Changed data.location.country, data.location.city, data.location.postalcode, data.location.street and data.location.houseNumber are now mandatory
  • Moved data.externalLinks to data.links.externalLinks to support new kind of links
  • Renamed data.energy.countrySpecific.de.energyCertificate to data.energy.countrySpecific.de.energyCertificates (as type is ARRAY)
  • Renamed data.estateSubTypes.DUPLEX_OR_TRIPLEX to data.estateSubType.MULTI_STOREY
  • Changed data.energy.energyType.energyGeneration from enum to boolean types without SOLAR_HEAT and WIND
  • Renamed data.features.residential.washDryRoom to data.features.residential.laundryRoom
  • Renamed data.estateType.GASTRO_HOTEL to data.estateType.GASTRONOMY_HOTEL
  • Renamed data.estateSubTypes.gastroHotel to data.estateSubType.gastronomyHotel
  • Renamed data.estateSubTypes.gastroHotel.CLUB_DISCOTHEK to data.estateSubType.gastronomyHotel.CLUB_DISCOTHEQUE
  • Renamed data.countrySpecific.fr.business.businessType.GASTRO_HOTEL to data.countrySpecific.fr.business.businessType.GASTRONOMY_HOTEL
  • Renamed data.countrySpecific.fr.business.businessSubType.CLUB_DISCOTHEK to data.countrySpecific.fr.business.businessSubType.CLUB_DISCOTHEQUE
  • Renamed data.estateSubTypes.house.CASTLE_MANOR_HOUSE to `data.estateSubType.house.CASTLE``
  • Renamed data.estateSubTypes.apartment.APARTMENT to data.estateSubType.apartment.STUDIO
  • Changed data.structure.rooms.numberOfBedRooms format from number to integer
  • Changed data.structure.rooms.numberOfBathRooms format from number to integer
  • Changed data.structure.rooms.numberOfToilets format from number to integer
  • Changed data.structure.rooms.numberOfBalconies format from number to integer
  • Changed data.structure.rooms.numberOfTerraces format from number to integer
  • Changed data.structure.rooms.numberOfKitchens format from number to integer
  • Changed data.structure.rooms.numberOfUnits format from number to integer
  • Changed data.estateSubType.parking by removing MIXED choice
  • Changed data.prices.buy.parkingSpace by removing MIXED choice
  • Changed data.prices.rent.parkingRent by removing MIXED choice
  • Moved data.features.bikeParking to data.features.parking.bikeParking
  • Moved data.features.internetSpeedMbit to data.features.internet.internetSpeedMbit
  • Moved data.features.commercial.accessibleFromStreet to data.features.accessibleFromStreet
  • Moved data.features.plot.accessibleFromStreet to data.features.accessibleFromStreet
  • Changed data.features.lighting by deleting: “natural”, “fluorescence”, “halogen”, “incandescence”, “desks”, “outside”
  • Changed data.features.security.tel2police and data.features.security.tel2security to data.features.security.emergencyCall
  • Moved data.features.residential.mezzanine to data.features.mezzanine
  • Moved data.structure.commercial.roomHeight to structure.building.roomHeight
  • Renamed data.features.parking.connectionForPowerSupply to chargingStation (charging station for electric cars)
  • Moved data.spaces.plot.plotSpace to data.spaces.plotSpace
  • Moved data.spaces.residential.plotFront to data.spaces.plotFront
  • Changed data.structure.balconyOrientation Add 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 to data.prices.buy.isLeaseBuyCombi`
  • Changed data.prices.buy.countrySpecific.fr.isReducedNotaryFees Change 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.blinds to data.structure.building.window.blinds
  • Renamed data.structure.building.windowMaterial.bayWindow to data.structure.building.window.bayWindow
  • Moved data.structure.building.windowMaterial to data.structure.building.window.windowMaterial section
  • Changed data.structure.building.kitchen.kitchenType enum to boolean fields.
  • Changed data.structure.building.withView enum to boolean fields.
  • Changed data.feature.garden enum to boolean fields.
  • Changed data.features.propertyOrientation Add NORTH_EAST, SOUTH_EAST, NORTH_WEST, SOUTH_WEST, SOUTH_NORTH and EAST_WEST
  • Renamed data.prices.compulsoryAuction.minumumBid to prices.compulsoryAuction.minimumBid
  • Renamed data.features.floorCovering.tile to data.features.floorCovering.tiles
  • Renamed data.features.floorCovering.marbel to data.features.floorCovering.marble
  • Renamed data.features.commercial.flexibleWalls to data.features.commercial.flexibleRoomLayout
  • Changed data.spaces.spaceMeasureUnits “SQUARE” prefix was added in front of the INCH, FOOT and YARD units
  • Changed portals to add a max items restriction and a unicity restriction
  • Changed management.availableFrom from date to date-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 (use data.structure.parkingLots.outside instead)
  • Removed duplicated properties (already in data.structure.parkingLots) data.structure.commercial.numberOfUndergroundParkingSpaces (use data.structure.parkingLots.underground instead)
  • Removed VIRTUAL_TOUR from data.links.externalLinks.urlType enumeration values
  • Removed data.texts.regionalNote.Use data.location.locationNote instead.
  • Removed data.portalOffererId as it is already defined in Aviv Classified (where it will be named offererId from now on)
  • Removed data.prices.buy.agencyFee block - use data.prices.brokerageFee instead
  • Removed data.prices.rent.agencyFee block - use data.prices.brokerageFee instead
  • 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 by data.structure.building.locationInBuilding.GROUNDFLOOR)
  • Deleted HALF_BASEMENT in data.estateSubTypes.apartment (replaced by data.structure.building.locationInBuilding.HALF_BASEMENT)
  • Deleted ROOF_STOREY in data.estateSubTypes.apartment (replaced by data.structure.building.locationInBuilding.ROOF_STOREY)
  • Removed data.structure.parkingLots.mixed
  • Removed data.features.internetConnection Use data.features.internet.internetAvailability instead.
  • 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.accessBadge Use data.features.security.digitalLock instead.
  • Removed data.features.residential.gardenShed
  • Removed data.features.residential.patio
  • Removed data.features.residential.outbuilding
  • Removed data.features.residential.pergola
  • Removed data.features.residential.winterGarden Use data.features.residential.veranda instead.
  • 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.numberOfSingleBeds and numberOfDoubleBeds -> (summarized with numberOfBeds)
  • Removed data.structure.commercial.parkingLotNearby
  • Removed data.structure.commercial.numberOfSmokingRooms
  • Removed data.spaces.residential.miscSpace Use data.spaces.additionalSpace instead.
  • Removed data.spaces.residential.outbuildingSpace Use data.spaces.additionalSpace instead.
  • Removed data.spaces.residential.overallSpace Use data.spaces.overallSpace instead.
  • Removed data.spaces.residential.usableFloorSpace Use data.spaces.usableFloorSpace instead.
  • Removed data.spaces.residential.spaceMin Use data.spaces.spaceMin instead.
  • Removed data.spaces.residential.spaceMax Use data.spaces.spaceMax instead.
  • Removed data.spaces.residential.plotSpace Use data.spaces.plotSpace instead.
  • Removed data.spaces.commercial.extendedSpace Usespaces.usableFloorSpace` instead.
  • Removed data.spaces.commercial.additionalSpace Use data.spaces.additionalSpace instead.
  • Removed data.spaces.commercial.overallSpace Use data.spaces.overallSpace instead.
  • Removed data.spaces.commercial.usableFloorSpace Use data.spaces.usableFloorSpace instead.
  • Removed data.spaces.commercial.spaceMin Use data.spaces.spaceMin instead.
  • Removed data.spaces.commercial.spaceMax Use data.spaces.spaceMax instead.
  • Removed data.spaces.commercial.plotSpace Use data.spaces.plotSpace instead.
  • Removed data.spaces.plot.plotSpace Use data.spaces.plotSpace instead.
  • 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.leaseDuration Use data.rent.minRentalTime instead.
  • Removed data.structure.building.changeableWalls Too similar to data.features.commercial.flexibleRoomLayout
  • Removed values to the structure.building.attic enum : 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.winterGarden in favor of data.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.miscSpace in favor of data.spaces.additionalSpace
  • Deprecated data.spaces.residential.outbuildingSpace in favor of data.spaces.additionalSpace
  • Deprecated data.spaces.residential.usableFloorSpace in favor of data.spaces.usableFloorSpace
  • Deprecated data.spaces.residential.spaceMin in favor of data.spaces.spaceMin
  • Deprecated data.spaces.residential.spaceMax in favor of data.spaces.spaceMax
  • Deprecated data.spaces.commercial.extendedSpace in favor of data.spaces.usableFloorSpace
  • Deprecated data.spaces.commercial.additionalSpace in favor of data.spaces.additionalSpace
  • Deprecated data.spaces.commercial.usableFloorSpace in favor of data.spaces.usableFloorSpace
  • Deprecated data.spaces.commercial.spaceMin in favor of data.spaces.spaceMin
  • Deprecated data.spaces.commercial.spaceMax in favor of data.spaces.spaceMax
  • Deprecated data.spaces.residential.overallSpace in favor of data.spaces.overallSpace
  • Deprecated data.spaces.residential.plotSpace in favor of data.spaces.plotSpace
  • Deprecated data.spaces.residential.plotFront in favor of data.spaces.plotFront
  • Deprecated data.spaces.commercial.overallSpace in favor of data.spaces.overallSpace
  • Deprecated data.spaces.commercial.plotSpace in favor of data.spaces.plotSpace
  • Deprecated data.spaces.plot.plotSpace in favor of data.spaces.plotSpace
  • Deprecated data.management.countrySpecific.fr.commercialLeaseDuration in favor of data.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.commercialLeaseEndDate Use this new field instead of commercialLeaseDuration
  • Added data.management.rent.isShortTimeRental for 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.energyValue in favor of data.energy.countrySpecific.fr.certificateType.overallEnergyNeed
  • Deprecated data.energy.countrySpecific.fr.energyLetter in favor of data.energy.countrySpecific.fr.certificateType.efficiencyClass
  • Deprecated data.energy.countrySpecific.fr.GHGValue in favor of data.energy.countrySpecific.fr.certificateType.GHGEmission
  • Deprecated data.energy.countrySpecific.fr.GHGLetter in favor of data.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.accounting and data.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.complementarySpaces as 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.liquidGas as 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-time format declarations
    • Added external media links: data.externalLink
    • Added a consistency check on the data.contact.mainContactPersonId and data.contact.additionalContactPersonId fields
  • Media
    • Added the PANORAMA media type

🏗️ 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.offererEstateId format: 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 /classifieds endpoint. The HTTP 200 response is now paginated.
    The limit and nextToken parameters have been made available to handle this pagination.
  • Changed the behaviour of the GET /classifieds/:id/media endpoint. The HTTP 200 response is now paginated.
    The nextToken parameter 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 (use data.structure.parkingLots.outside instead)
  • Removed duplicated properties (already in data.structure.parkingLots) data.structure.commercial.numberOfUndergroundParkingSpaces (use data.structure.parkingLots.underground instead)

[v1] - 2020-07-02

First version of the API supporting AvivClassified 1.0.0 and AvivImmo v1.4.1

API Base URL
  • Server 1:https://api.aviv-group.com/caas/v4

    Production

  • Server 2:https://api.aviv-group.com/sandbox/caas/v4

    Sandbox

Security
bearerAuth (http)

Provide your bearer token in the Authorization header when making requests to protected resources.

Example: Authorization: Bearer 123

Additional Information

Classifieds

CRUD operations about classifieds.

Create a new classified.

This endpoint allows you to create a new classified to be published on Aviv’s portals. Besides the classified, the media specified in the payload will be created and will be associated with the classified. Depending on the parameters sent along with the body payload, the classified can be created but not published. This endpoint returns synchronously a response informing if the body payload format is valid or not. In the case of a valid format, the endpoint will return a 202 Accepted HTTP status code with URL links to related resources. In the case of invalid format, the endpoint will return a 400 Invalid format HTTP status code with the details of the rejection’s reasons.

post

Headers

traceparentstring

Identifies the incoming request in the tracing system

Example:00-0af7651916cd43dd8448eb211c80319c-b9c7c989f97918e1-01

User-Agentstringrequired

Characteristic string that identifies the application, operating system, vendor, and version of the requesting user agent.

Syntax : User-Agent: <crm-software-name>/<crm-software-version> <tool-name>/<tool-version> <operating-system>/<operating-system-version>

All subset parts of this string do not allow the following characters : / and (whitespace)

Match pattern:^[^\/\s]+\/[^\/\s]+\s{1}[^\/\s]+\/[^\/\s]+\s{1}[^\/\s]+\/[^\/\s]+$

Example:MyAwesomeSoft/1.0.0 curl/7.52.1 debian/9~1.gbpf8534c

Body

application/json

AvivClassified

* Additional properties are NOT allowed.
portalsarray[string]requiredunique-items

Portals where the classified has to be published on.

Allowed values:SLBUCOMBDSLCSLN

>= 0 characters>= 0 items<= 5 items

Example:["SL","SLC"]

dataobjectrequired
* Additional properties are NOT allowed.
Show Child Parameters
specificobject

Information related to the classified

* Additional properties are NOT allowed.
Show Child Parameters
mediaOne Of
array
Mediaobject
* Additional properties are NOT allowed.
Show Child Parameters

Response

application/json

Accepted

classifiedIdstring(uuid)

Example:5c597a63-6932-4b0c-a2a0-2fd935be1755

linksarray
Show Child Parameters
post/classifieds

Body

{ "portals": [ "SL", "SLC" ], "data": { "estateType": "HOUSE", "distributionType": "BUY", "location": { "postalcode": "22455", "city": "Hamburg", "street": "Hauptstrasse", "houseNumber": "10", "country": "DEU" }, "prices": {}, "metaData": { "source": { "sourceSystem": "Example Property Software System", "sourceSystemVersion": "1.0.2", "offererMarketingKey": "HH-AH61a-WE15a-1", "offererEstateId": "c1b1160a-2502-4dff-8037-3888c9845981" } } } }
 
application/json