NAV -image
bash javascript php python

Introduction

In order to access this IP you have to granted too.

Base URL

https://dashboard-preprod.appartement-construction.com

Authenticating requests

This API is not authenticated.

Alertes

APIs for managing alertes

Create an alert

Une description à completer

Example request:

curl -X POST \
    "https://dashboard-preprod.appartement-construction.com/api/v2/alerte/create" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"website":"TC","email":"john.doe@example.com","utm_source":"voluptas","utm_campaign":"aperiam","front_user_id":13,"alert_search":"repudiandae","alert_object":"dolore","alert_filter":"accusamus","alert_fields":"nihil","alert_order":"vel","actif":true}'
const url = new URL(
    "https://dashboard-preprod.appartement-construction.com/api/v2/alerte/create"
);

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

let body = {
    "website": "TC",
    "email": "john.doe@example.com",
    "utm_source": "voluptas",
    "utm_campaign": "aperiam",
    "front_user_id": 13,
    "alert_search": "repudiandae",
    "alert_object": "dolore",
    "alert_filter": "accusamus",
    "alert_fields": "nihil",
    "alert_order": "vel",
    "actif": true
}

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

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://dashboard-preprod.appartement-construction.com/api/v2/alerte/create',
    [
        'headers' => [
            'Accept' => 'application/json',
        ],
        'json' => [
            'website' => 'TC',
            'email' => 'john.doe@example.com',
            'utm_source' => 'voluptas',
            'utm_campaign' => 'aperiam',
            'front_user_id' => 13,
            'alert_search' => 'repudiandae',
            'alert_object' => 'dolore',
            'alert_filter' => 'accusamus',
            'alert_fields' => 'nihil',
            'alert_order' => 'vel',
            'actif' => true,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dashboard-preprod.appartement-construction.com/api/v2/alerte/create'
payload = {
    "website": "TC",
    "email": "john.doe@example.com",
    "utm_source": "voluptas",
    "utm_campaign": "aperiam",
    "front_user_id": 13,
    "alert_search": "repudiandae",
    "alert_object": "dolore",
    "alert_filter": "accusamus",
    "alert_fields": "nihil",
    "alert_order": "vel",
    "actif": true
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (200):

{
    "code": 200,
    "status": "ok",
    "message": "alerte created"
}

Example response (400):

{
    "code": 400,
    "status": "error",
    "message": {
        "email": [
            "Le champ email doit être une adresse email valide."
        ],
        "actif": [
            "Le champ actif doit être vrai ou faux."
        ]
    }
}

Example response (500):

{
    "code": 500,
    "status": "error",
    "message": "contact has not been created"
}

Request   

POST api/v2/alerte/create

Body Parameters

website  string  
Website Code(ACdev, TC, etc...)

email  string optional  
Email

utm_source  string optional  

utm_campaign  string optional  

front_user_id  integer optional  

alert_search  string optional  

alert_object  string optional  

alert_filter  string optional  

alert_fields  string optional  

alert_order  string optional  

actif  boolean optional  
Actif (0,1)

Annonce

APIs for managing annonces

Display the specified annonce.

Example request:

curl -X GET \
    -G "https://dashboard-preprod.appartement-construction.com/api/v2/annonce/123?website=TC&client_vars=a%3A50%3A%7Bs%3A21%3A%22PHP_FCGI_MAX_REQUESTS%22%3Bs%3A4%3A%225000%22%3Bs%3A5%3A%22PHPRC%22%3Bs%3A18%3A%22%2Fvar%2Fwww%2Fconf%2Fweb3%22%3Bs%3A3%3A%22PWD%22%3Bs%3A30%3A%22%2Fvar%2Fwww%2Fphp-fcgi-scripts%2Fweb3%22...&ip=88.12.14.134" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json"
const url = new URL(
    "https://dashboard-preprod.appartement-construction.com/api/v2/annonce/123"
);

let params = {
    "website": "TC",
    "client_vars": "a:50:{s:21:"PHP_FCGI_MAX_REQUESTS";s:4:"5000";s:5:"PHPRC";s:18:"/var/www/conf/web3";s:3:"PWD";s:30:"/var/www/php-fcgi-scripts/web3"...",
    "ip": "88.12.14.134",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://dashboard-preprod.appartement-construction.com/api/v2/annonce/123',
    [
        'headers' => [
            'Accept' => 'application/json',
        ],
        'query' => [
            'website'=> 'TC',
            'client_vars'=> 'a:50:{s:21:"PHP_FCGI_MAX_REQUESTS";s:4:"5000";s:5:"PHPRC";s:18:"/var/www/conf/web3";s:3:"PWD";s:30:"/var/www/php-fcgi-scripts/web3"...',
            'ip'=> '88.12.14.134',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dashboard-preprod.appartement-construction.com/api/v2/annonce/123'
params = {
  'website': 'TC',
  'client_vars': 'a:50:{s:21:"PHP_FCGI_MAX_REQUESTS";s:4:"5000";s:5:"PHPRC";s:18:"/var/www/conf/web3";s:3:"PWD";s:30:"/var/www/php-fcgi-scripts/web3"...',
  'ip': '88.12.14.134',
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()

Example response (200):

{
    "code": 200,
    "status": "ok",
    "data": {
        "id": 7622,
        "programme_id": 21,
        "commune_id": 15992,
        "client_id": 1,
        "type": "APPARTEMENT",
        "external_reference": "5002",
        "slugged_external_reference": "5002",
        "email_contact_additionnel": null,
        "external_code_postal": "40000",
        "adresse": "RUE FERME DE FATIGUE",
        "proximite": "",
        "libelle": "L'AME Ô",
        "description": "Découvrez sans plus attendre, Quartier Saint médard, de beaux appartements du T1 au T3 DUPLEX, pour vivre ou investir à Mont de Marsan, à deux pas du centre ville. Belle opportunité pour INVESTIR. Pour plus d'infos, prenez contact avec l'un de nos conseillers Nexity !",
        "avant_premiere": 0,
        "exclusivite": null,
        "priorite_visibilite": 0,
        "surface": 61,
        "surface_maison": null,
        "surface_terrain": null,
        "surface_habitable": null,
        "surface_sejour": null,
        "prix": 155383,
        "prix_maison": null,
        "prix_terrain": null,
        "nbr_piece": 3,
        "etage": null,
        "terrasse": null,
        "nbr_balcon": null,
        "surface_balcon": 0,
        "nbr_etage": null,
        "ascenseur": 0,
        "cave": 1,
        "nbr_parking": 1,
        "nbr_boxe": null,
        "nbr_chambre": null,
        "nbr_chambre_rdc": null,
        "nbr_sdb": null,
        "type_cuisine": null,
        "type_chauffage": 0,
        "type_eau_chaude": null,
        "alarme": null,
        "piscine": null,
        "interphone": 1,
        "etat_interieur": null,
        "date_dispo": "2022-06-29T22:00:00.000000Z",
        "conso_energie": "",
        "bilan_conso_energie": "",
        "emission_ges": "",
        "bilan_emission_ges": "",
        "annee_construction": null,
        "loyer_mois": null,
        "loyer_mois_charges_comprises": null,
        "charges_mois": null,
        "droit_au_bail": null,
        "taxe_fonciere": null,
        "sous_type_bien": 1,
        "create_batch_id": 1326,
        "update_batch_id": 2674,
        "remove_batch_id": null,
        "lastseen_batch_id": 2674,
        "source": null,
        "from_website": null,
        "published": 1,
        "moderated": 0,
        "published_at": "2020-05-21T02:01:26.000000Z",
        "created_at": "2020-05-21T02:01:26.000000Z",
        "updated_at": "2020-12-28T11:04:57.000000Z",
        "deleted_at": null,
        "commune": {
            "id": 15992,
            "departement_id": 42,
            "nom": "MONT DE MARSAN",
            "insee": "40192",
            "nom_special": "Mont-de-Marsan",
            "nom_recherche": "MONTDEMARSAN",
            "prefixe_nom_special": "",
            "population": 28328,
            "actif": 1,
            "zone_id": null,
            "longitude": -0.497885,
            "latitude": 43.890985,
            "centre": {
                "type": "Point",
                "coordinates": [
                    -0.497885,
                    43.890985
                ]
            },
            "created_at": null,
            "updated_at": "2021-02-08T16:49:57.000000Z",
            "deleted_at": null,
            "departement": {
                "id": 42,
                "region_id": 18,
                "nom": "LANDES",
                "code": "40",
                "created_at": "2017-08-31T08:35:14.000000Z",
                "updated_at": "2017-08-31T08:35:14.000000Z",
                "deleted_at": null,
                "region": {
                    "id": 18,
                    "pays_id": 1,
                    "nom": "Aquitaine",
                    "created_at": "2017-08-31T08:35:14.000000Z",
                    "updated_at": "2017-08-31T08:35:14.000000Z",
                    "deleted_at": null
                }
            },
            "firstdistribution": {
                "id": 16074,
                "commune_id": 15992,
                "code_postal": "40000",
                "acheminement": "MONT DE MARSAN",
                "actif": 1,
                "created_at": null,
                "updated_at": null,
                "deleted_at": null
            }
        },
        "documents": [
            "https:\/\/files.appartement-construction.com\/images\/nexity\/0048__48007-1.jpg",
            "https:\/\/files.appartement-construction.com\/images\/nexity\/0048__48007-1.jpg",
            "https:\/\/files.appartement-construction.com\/images\/nexity\/0048__48007-2.jpg",
            "https:\/\/files-preprod.appartement-construction.com\/images\/nexity_2_0\/0048-48007\/3_0048_48007_PRG_PHOT_48007.jpg",
            "https:\/\/files-preprod.appartement-construction.com\/images\/nexity_2_0\/0048-48007\/3_0048_48007_PRG_PHO2_48007.jpg"
        ]
    }
}

Example response (400):

{
    "code": 400,
    "status": "error",
    "message": {
        "annonce_id": [
            "Le champ annonce id sélectionné est invalide."
        ]
    }
}

Request   

GET api/v2/annonce/{annonce}

URL Parameters

annonce  string  
Annonce ID

Query Parameters

website  string  
Website Code(ACdev, TC, etc...)

client_vars  string optional  
Serialization of $_SERVER.

ip  string optional  
re-searcher ip.

Store a newly created annonce.

Example request:

curl -X POST \
    "https://dashboard-preprod.appartement-construction.com/api/v2/annonce" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"website":"TC","client_id":456,"commune_id":456,"ext_ref":"2924-Ab-c","type":"beatae","price":100000,"programme_id":12,"surface":104.9,"published":1,"adresse":"10 street of change","alarme":1,"annee_construction":"2012","ascenseur":0,"associated_websites_codes":"{\"0\":\"MB\",\"1\",\"AC\"}","avant_premiere":1,"bilan_conso_energie":"B","bilan_emission_ges":"A","cave":1,"charges_mois":55.12,"conso_energie":"1520","date_dispo":"15\/01\/2023","description":"My long description","droit_au_bail":0,"email_contact_additionnel":"me@example.com","emission_ges":"1520","etage":2,"etat_interieur":"Etat neuf","exclusivite":0,"external_code_postal":"25300","interphone":0,"libelle":"Appartement neuf sous les combles 75m\u0153","loyer_mois_charges_comprises":760.25,"loyer_mois":705.13,"moderated":0,"nbr_balcon":1,"nbr_boxe":0,"nbr_chambre_rdc":1,"nbr_etage":2,"nbr_parking":1,"nbr_piece":4,"nbr_sdb":4,"piscine":0,"priorite_visibilite":2,"prix_maison":120000,"prix_terrain":8000,"prix":200000,"proximite":"Arret de bus ligne 10","sous_type_bien":250,"surface_balcon":14,"surface_habitable":100,"surface_maison":152.15,"surface_sejour":40.51,"surface_terrain":800,"taxe_fonciere":1000.9,"terrasse":0,"type_chauffage":4608,"type_cuisine":6,"type_eau_chaude":70}'
const url = new URL(
    "https://dashboard-preprod.appartement-construction.com/api/v2/annonce"
);

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

let body = {
    "website": "TC",
    "client_id": 456,
    "commune_id": 456,
    "ext_ref": "2924-Ab-c",
    "type": "beatae",
    "price": 100000,
    "programme_id": 12,
    "surface": 104.9,
    "published": 1,
    "adresse": "10 street of change",
    "alarme": 1,
    "annee_construction": "2012",
    "ascenseur": 0,
    "associated_websites_codes": "{\"0\":\"MB\",\"1\",\"AC\"}",
    "avant_premiere": 1,
    "bilan_conso_energie": "B",
    "bilan_emission_ges": "A",
    "cave": 1,
    "charges_mois": 55.12,
    "conso_energie": "1520",
    "date_dispo": "15\/01\/2023",
    "description": "My long description",
    "droit_au_bail": 0,
    "email_contact_additionnel": "me@example.com",
    "emission_ges": "1520",
    "etage": 2,
    "etat_interieur": "Etat neuf",
    "exclusivite": 0,
    "external_code_postal": "25300",
    "interphone": 0,
    "libelle": "Appartement neuf sous les combles 75m\u0153",
    "loyer_mois_charges_comprises": 760.25,
    "loyer_mois": 705.13,
    "moderated": 0,
    "nbr_balcon": 1,
    "nbr_boxe": 0,
    "nbr_chambre_rdc": 1,
    "nbr_etage": 2,
    "nbr_parking": 1,
    "nbr_piece": 4,
    "nbr_sdb": 4,
    "piscine": 0,
    "priorite_visibilite": 2,
    "prix_maison": 120000,
    "prix_terrain": 8000,
    "prix": 200000,
    "proximite": "Arret de bus ligne 10",
    "sous_type_bien": 250,
    "surface_balcon": 14,
    "surface_habitable": 100,
    "surface_maison": 152.15,
    "surface_sejour": 40.51,
    "surface_terrain": 800,
    "taxe_fonciere": 1000.9,
    "terrasse": 0,
    "type_chauffage": 4608,
    "type_cuisine": 6,
    "type_eau_chaude": 70
}

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

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://dashboard-preprod.appartement-construction.com/api/v2/annonce',
    [
        'headers' => [
            'Accept' => 'application/json',
        ],
        'json' => [
            'website' => 'TC',
            'client_id' => 456,
            'commune_id' => 456,
            'ext_ref' => '2924-Ab-c',
            'type' => 'beatae',
            'price' => 100000.0,
            'programme_id' => 12,
            'surface' => 104.9,
            'published' => 1,
            'adresse' => '10 street of change',
            'alarme' => 1,
            'annee_construction' => '2012',
            'ascenseur' => 0,
            'associated_websites_codes' => '{"0":"MB","1","AC"}',
            'avant_premiere' => 1,
            'bilan_conso_energie' => 'B',
            'bilan_emission_ges' => 'A',
            'cave' => 1,
            'charges_mois' => 55.12,
            'conso_energie' => '1520',
            'date_dispo' => '15/01/2023',
            'description' => 'My long description',
            'droit_au_bail' => 0.0,
            'email_contact_additionnel' => 'me@example.com',
            'emission_ges' => '1520',
            'etage' => 2,
            'etat_interieur' => 'Etat neuf',
            'exclusivite' => 0,
            'external_code_postal' => '25300',
            'interphone' => 0,
            'libelle' => 'Appartement neuf sous les combles 75mœ',
            'loyer_mois_charges_comprises' => 760.25,
            'loyer_mois' => 705.13,
            'moderated' => 0,
            'nbr_balcon' => 1,
            'nbr_boxe' => 0,
            'nbr_chambre_rdc' => 1,
            'nbr_etage' => 2,
            'nbr_parking' => 1,
            'nbr_piece' => 4,
            'nbr_sdb' => 4,
            'piscine' => 0,
            'priorite_visibilite' => 2,
            'prix_maison' => 120000.0,
            'prix_terrain' => 8000.0,
            'prix' => 200000.0,
            'proximite' => 'Arret de bus ligne 10',
            'sous_type_bien' => 250,
            'surface_balcon' => 14.0,
            'surface_habitable' => 100.0,
            'surface_maison' => 152.15,
            'surface_sejour' => 40.51,
            'surface_terrain' => 800.0,
            'taxe_fonciere' => 1000.9,
            'terrasse' => 0,
            'type_chauffage' => 4608,
            'type_cuisine' => 6,
            'type_eau_chaude' => 70,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dashboard-preprod.appartement-construction.com/api/v2/annonce'
payload = {
    "website": "TC",
    "client_id": 456,
    "commune_id": 456,
    "ext_ref": "2924-Ab-c",
    "type": "beatae",
    "price": 100000,
    "programme_id": 12,
    "surface": 104.9,
    "published": 1,
    "adresse": "10 street of change",
    "alarme": 1,
    "annee_construction": "2012",
    "ascenseur": 0,
    "associated_websites_codes": "{\"0\":\"MB\",\"1\",\"AC\"}",
    "avant_premiere": 1,
    "bilan_conso_energie": "B",
    "bilan_emission_ges": "A",
    "cave": 1,
    "charges_mois": 55.12,
    "conso_energie": "1520",
    "date_dispo": "15\/01\/2023",
    "description": "My long description",
    "droit_au_bail": 0,
    "email_contact_additionnel": "me@example.com",
    "emission_ges": "1520",
    "etage": 2,
    "etat_interieur": "Etat neuf",
    "exclusivite": 0,
    "external_code_postal": "25300",
    "interphone": 0,
    "libelle": "Appartement neuf sous les combles 75m\u0153",
    "loyer_mois_charges_comprises": 760.25,
    "loyer_mois": 705.13,
    "moderated": 0,
    "nbr_balcon": 1,
    "nbr_boxe": 0,
    "nbr_chambre_rdc": 1,
    "nbr_etage": 2,
    "nbr_parking": 1,
    "nbr_piece": 4,
    "nbr_sdb": 4,
    "piscine": 0,
    "priorite_visibilite": 2,
    "prix_maison": 120000,
    "prix_terrain": 8000,
    "prix": 200000,
    "proximite": "Arret de bus ligne 10",
    "sous_type_bien": 250,
    "surface_balcon": 14,
    "surface_habitable": 100,
    "surface_maison": 152.15,
    "surface_sejour": 40.51,
    "surface_terrain": 800,
    "taxe_fonciere": 1000.9,
    "terrasse": 0,
    "type_chauffage": 4608,
    "type_cuisine": 6,
    "type_eau_chaude": 70
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (200):

{
    "code": 200,
    "status": "ok",
    "message": "user created"
}

Example response (400):

{
    "code": 400,
    "status": "error",
    "message": {
        "commune_id": [
            "Le champ commune id est obligatoire."
        ],
        "external_code_postal": [
            "Le champ external code postal est obligatoire."
        ]
    }
}

Request   

POST api/v2/annonce

Body Parameters

website  string  
Website Code(ACdev, TC, etc...)

client_id  integer  
Client id

commune_id  integer  
Commune id

ext_ref  string  
External Reference

type  string  
Annonce Type see [Additional Datas / Type values](#annonce-type-values) :

price  number  
Price

programme_id  integer optional  
recommended Programme Id

surface  number optional  
recommended Surface

published  integer optional  
(1 for yes/ 0 for no, default 0)

adresse  string optional  
max 128 Adresse

alarme  integer optional  
(1 for yes/ 0 for no)

annee_construction  string optional  
Year of construction

ascenseur  integer optional  
(1 for yes/ 0 for no)

associated_websites_codes  json optional  
Force list of website appartenance

avant_premiere  integer optional  
Avant Premiere (yes/no)

bilan_conso_energie  string optional  
see [Additional Datas / Bilan Conso & Emission](#annonce-bilan-conso-emission)

bilan_emission_ges  string optional  
see [Additional Datas / Bilan Conso & Emission](#annonce-bilan-conso-emission)

cave  integer optional  
(1 for yes/ 0 for no)

charges_mois  number optional  
Charge par Mois

conso_energie  string optional  
(kWhEP/m²/an)

date_dispo  string optional  
(JJ/MM/AAAA)

description  text optional  
Espace char is mandatory before " - Tags allowed are p, div, br, italic, bold, code, link, strike, underline, bullet_list, ordered_list, blockquote.

droit_au_bail  number optional  
Montant droit au bail.

email_contact_additionnel  string optional  
Additional contact Email

emission_ges  string optional  
(kg éq CO2/m²/an).

etage  integer optional  

etat_interieur  string optional  
max 128

exclusivite  integer optional  
(1 for yes/ 0 for no)

external_code_postal  string optional  
Zip Code

interphone  integer optional  
(1 for yes/ 0 for no)

libelle  string optional  
max 254

loyer_mois_charges_comprises  number optional  

loyer_mois  number optional  

moderated  integer optional  
(1 for yes/ 0 for no)

nbr_balcon  integer optional  

nbr_boxe  integer optional  

nbr_chambre_rdc  integer optional  

nbr_etage  integer optional  

nbr_parking  integer optional  

nbr_piece  integer optional  

nbr_sdb  integer optional  

piscine  integer optional  
(1 for yes/ 0 for no)

priorite_visibilite  integer optional  

prix_maison  number optional  

prix_terrain  number optional  

prix  number optional  

proximite  string optional  
max 128 Adresse

sous_type_bien  integer optional  
see [Additional Datas / Sous Type de Bien](#annonce-sous-type-de-bien)

surface_balcon  number optional  
recommended Surface

surface_habitable  number optional  
recommended Surface

surface_maison  number optional  
recommended Surface

surface_sejour  number optional  
recommended Surface

surface_terrain  number optional  
recommended Surface

taxe_fonciere  number optional  
recommended Surface

terrasse  integer optional  
(1 for yes/ 0 for no)

type_chauffage  integer optional  
see [Additional Datas / Type Chauffage](#annonce-type-chauffage)

type_cuisine  integer optional  
see [Additional Datas / Type Cuisine](#annonce-type-cuisine)

type_eau_chaude  integer optional  
see [Additional Datas / Type Eau Chaude](#annonce-type-eau-chaude)

Update the specified annonce.

Example request:

curl -X POST \
    "https://dashboard-preprod.appartement-construction.com/api/v2/annonce/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"website":"TC","client_id":456,"commune_id":456,"ext_ref":"2924-Ab-c","type":"velit","price":100000,"programme_id":12,"surface":104.9,"published":1,"adresse":"10 street of change","alarme":1,"annee_construction":"2012","ascenseur":0,"associated_websites_codes":"{\"0\":\"MB\",\"1\",\"AC\"}","avant_premiere":1,"bilan_conso_energie":"B","bilan_emission_ges":"A","cave":1,"charges_mois":55.12,"conso_energie":"1520","date_dispo":"15\/01\/2023","description":"My long description","droit_au_bail":0,"email_contact_additionnel":"me@example.com","emission_ges":"1520","etage":2,"etat_interieur":"Etat neuf","exclusivite":0,"external_code_postal":"25300","interphone":0,"libelle":"Appartement neuf sous les combles 75m\u0153","loyer_mois_charges_comprises":760.25,"loyer_mois":705.13,"moderated":0,"nbr_balcon":1,"nbr_boxe":0,"nbr_chambre_rdc":1,"nbr_etage":2,"nbr_parking":1,"nbr_piece":4,"nbr_sdb":4,"piscine":0,"priorite_visibilite":2,"prix_maison":120000,"prix_terrain":8000,"prix":200000,"proximite":"Arret de bus ligne 10","sous_type_bien":250,"surface_balcon":14,"surface_habitable":100,"surface_maison":152.15,"surface_sejour":40.51,"surface_terrain":800,"taxe_fonciere":1000.9,"terrasse":0,"type_chauffage":4608,"type_cuisine":6,"type_eau_chaude":70}'
const url = new URL(
    "https://dashboard-preprod.appartement-construction.com/api/v2/annonce/1"
);

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

let body = {
    "website": "TC",
    "client_id": 456,
    "commune_id": 456,
    "ext_ref": "2924-Ab-c",
    "type": "velit",
    "price": 100000,
    "programme_id": 12,
    "surface": 104.9,
    "published": 1,
    "adresse": "10 street of change",
    "alarme": 1,
    "annee_construction": "2012",
    "ascenseur": 0,
    "associated_websites_codes": "{\"0\":\"MB\",\"1\",\"AC\"}",
    "avant_premiere": 1,
    "bilan_conso_energie": "B",
    "bilan_emission_ges": "A",
    "cave": 1,
    "charges_mois": 55.12,
    "conso_energie": "1520",
    "date_dispo": "15\/01\/2023",
    "description": "My long description",
    "droit_au_bail": 0,
    "email_contact_additionnel": "me@example.com",
    "emission_ges": "1520",
    "etage": 2,
    "etat_interieur": "Etat neuf",
    "exclusivite": 0,
    "external_code_postal": "25300",
    "interphone": 0,
    "libelle": "Appartement neuf sous les combles 75m\u0153",
    "loyer_mois_charges_comprises": 760.25,
    "loyer_mois": 705.13,
    "moderated": 0,
    "nbr_balcon": 1,
    "nbr_boxe": 0,
    "nbr_chambre_rdc": 1,
    "nbr_etage": 2,
    "nbr_parking": 1,
    "nbr_piece": 4,
    "nbr_sdb": 4,
    "piscine": 0,
    "priorite_visibilite": 2,
    "prix_maison": 120000,
    "prix_terrain": 8000,
    "prix": 200000,
    "proximite": "Arret de bus ligne 10",
    "sous_type_bien": 250,
    "surface_balcon": 14,
    "surface_habitable": 100,
    "surface_maison": 152.15,
    "surface_sejour": 40.51,
    "surface_terrain": 800,
    "taxe_fonciere": 1000.9,
    "terrasse": 0,
    "type_chauffage": 4608,
    "type_cuisine": 6,
    "type_eau_chaude": 70
}

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

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://dashboard-preprod.appartement-construction.com/api/v2/annonce/1',
    [
        'headers' => [
            'Accept' => 'application/json',
        ],
        'json' => [
            'website' => 'TC',
            'client_id' => 456,
            'commune_id' => 456,
            'ext_ref' => '2924-Ab-c',
            'type' => 'velit',
            'price' => 100000.0,
            'programme_id' => 12,
            'surface' => 104.9,
            'published' => 1,
            'adresse' => '10 street of change',
            'alarme' => 1,
            'annee_construction' => '2012',
            'ascenseur' => 0,
            'associated_websites_codes' => '{"0":"MB","1","AC"}',
            'avant_premiere' => 1,
            'bilan_conso_energie' => 'B',
            'bilan_emission_ges' => 'A',
            'cave' => 1,
            'charges_mois' => 55.12,
            'conso_energie' => '1520',
            'date_dispo' => '15/01/2023',
            'description' => 'My long description',
            'droit_au_bail' => 0.0,
            'email_contact_additionnel' => 'me@example.com',
            'emission_ges' => '1520',
            'etage' => 2,
            'etat_interieur' => 'Etat neuf',
            'exclusivite' => 0,
            'external_code_postal' => '25300',
            'interphone' => 0,
            'libelle' => 'Appartement neuf sous les combles 75mœ',
            'loyer_mois_charges_comprises' => 760.25,
            'loyer_mois' => 705.13,
            'moderated' => 0,
            'nbr_balcon' => 1,
            'nbr_boxe' => 0,
            'nbr_chambre_rdc' => 1,
            'nbr_etage' => 2,
            'nbr_parking' => 1,
            'nbr_piece' => 4,
            'nbr_sdb' => 4,
            'piscine' => 0,
            'priorite_visibilite' => 2,
            'prix_maison' => 120000.0,
            'prix_terrain' => 8000.0,
            'prix' => 200000.0,
            'proximite' => 'Arret de bus ligne 10',
            'sous_type_bien' => 250,
            'surface_balcon' => 14.0,
            'surface_habitable' => 100.0,
            'surface_maison' => 152.15,
            'surface_sejour' => 40.51,
            'surface_terrain' => 800.0,
            'taxe_fonciere' => 1000.9,
            'terrasse' => 0,
            'type_chauffage' => 4608,
            'type_cuisine' => 6,
            'type_eau_chaude' => 70,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dashboard-preprod.appartement-construction.com/api/v2/annonce/1'
payload = {
    "website": "TC",
    "client_id": 456,
    "commune_id": 456,
    "ext_ref": "2924-Ab-c",
    "type": "velit",
    "price": 100000,
    "programme_id": 12,
    "surface": 104.9,
    "published": 1,
    "adresse": "10 street of change",
    "alarme": 1,
    "annee_construction": "2012",
    "ascenseur": 0,
    "associated_websites_codes": "{\"0\":\"MB\",\"1\",\"AC\"}",
    "avant_premiere": 1,
    "bilan_conso_energie": "B",
    "bilan_emission_ges": "A",
    "cave": 1,
    "charges_mois": 55.12,
    "conso_energie": "1520",
    "date_dispo": "15\/01\/2023",
    "description": "My long description",
    "droit_au_bail": 0,
    "email_contact_additionnel": "me@example.com",
    "emission_ges": "1520",
    "etage": 2,
    "etat_interieur": "Etat neuf",
    "exclusivite": 0,
    "external_code_postal": "25300",
    "interphone": 0,
    "libelle": "Appartement neuf sous les combles 75m\u0153",
    "loyer_mois_charges_comprises": 760.25,
    "loyer_mois": 705.13,
    "moderated": 0,
    "nbr_balcon": 1,
    "nbr_boxe": 0,
    "nbr_chambre_rdc": 1,
    "nbr_etage": 2,
    "nbr_parking": 1,
    "nbr_piece": 4,
    "nbr_sdb": 4,
    "piscine": 0,
    "priorite_visibilite": 2,
    "prix_maison": 120000,
    "prix_terrain": 8000,
    "prix": 200000,
    "proximite": "Arret de bus ligne 10",
    "sous_type_bien": 250,
    "surface_balcon": 14,
    "surface_habitable": 100,
    "surface_maison": 152.15,
    "surface_sejour": 40.51,
    "surface_terrain": 800,
    "taxe_fonciere": 1000.9,
    "terrasse": 0,
    "type_chauffage": 4608,
    "type_cuisine": 6,
    "type_eau_chaude": 70
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (200):

{
    "code": 200,
    "status": "ok",
    "message": "annonce updated"
}

Example response (400):

{
    "code": 400,
    "status": "error",
    "message": {
        "annonce_id": [
            "Le champ annonce id sélectionné est invalide."
        ]
    }
}

Request   

POST api/v2/annonce/{annonce}

URL Parameters

annonce  string  
Annonce ID

Body Parameters

website  string  
Website Code(ACdev, TC, etc...)

client_id  integer optional  
Client id

commune_id  integer optional  
Commune id

ext_ref  string optional  
External Reference

type  string optional  
Annonce Type see [Additional Datas / Type values](#annonce-type-values) :

price  number optional  
Price

programme_id  integer optional  
recommended Programme Id

surface  number optional  
recommended Surface

published  integer optional  
(1 for yes/ 0 for no, default 0)

adresse  string optional  
max 128 Adresse

alarme  integer optional  
(1 for yes/ 0 for no)

annee_construction  string optional  
Year of construction

ascenseur  integer optional  
(1 for yes/ 0 for no)

associated_websites_codes  json optional  
Force list of website appartenance

avant_premiere  integer optional  
Avant Premiere (yes/no)

bilan_conso_energie  string optional  
see [Additional Datas / Bilan Conso & Emission](#annonce-bilan-conso-emission)

bilan_emission_ges  string optional  
see [Additional Datas / Bilan Conso & Emission](#annonce-bilan-conso-emission)

cave  integer optional  
(1 for yes/ 0 for no)

charges_mois  number optional  
Charge par Mois

conso_energie  string optional  
(kWhEP/m²/an)

date_dispo  string optional  
(JJ/MM/AAAA)

description  text optional  
Espace char is mandatory before " - Tags allowed are p, div, br, italic, bold, code, link, strike, underline, bullet_list, ordered_list, blockquote.

droit_au_bail  number optional  
Montant droit au bail.

email_contact_additionnel  string optional  
Additional contact Email

emission_ges  string optional  
(kg éq CO2/m²/an).

etage  integer optional  

etat_interieur  string optional  
max 128

exclusivite  integer optional  
(1 for yes/ 0 for no)

external_code_postal  string optional  
Zip Code

interphone  integer optional  
(1 for yes/ 0 for no)

libelle  string optional  
max 254

loyer_mois_charges_comprises  number optional  

loyer_mois  number optional  

moderated  integer optional  
(1 for yes/ 0 for no)

nbr_balcon  integer optional  

nbr_boxe  integer optional  

nbr_chambre_rdc  integer optional  

nbr_etage  integer optional  

nbr_parking  integer optional  

nbr_piece  integer optional  

nbr_sdb  integer optional  

piscine  integer optional  
(1 for yes/ 0 for no)

priorite_visibilite  integer optional  

prix_maison  number optional  

prix_terrain  number optional  

prix  number optional  

proximite  string optional  
max 128 Adresse

sous_type_bien  integer optional  
see [Additional Datas / Sous Type de Bien](#annonce-sous-type-de-bien)

surface_balcon  number optional  
recommended Surface

surface_habitable  number optional  
recommended Surface

surface_maison  number optional  
recommended Surface

surface_sejour  number optional  
recommended Surface

surface_terrain  number optional  
recommended Surface

taxe_fonciere  number optional  
recommended Surface

terrasse  integer optional  
(1 for yes/ 0 for no)

type_chauffage  integer optional  
see [Additional Datas / Type Chauffage](#annonce-type-chauffage)

type_cuisine  integer optional  
see [Additional Datas / Type Cuisine](#annonce-type-cuisine)

type_eau_chaude  integer optional  
see [Additional Datas / Type Eau Chaude](#annonce-type-eau-chaude)

Remove the specified annonce.

Example request:

curl -X DELETE \
    "https://dashboard-preprod.appartement-construction.com/api/v2/annonce/123" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"website":"TC"}'
const url = new URL(
    "https://dashboard-preprod.appartement-construction.com/api/v2/annonce/123"
);

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

let body = {
    "website": "TC"
}

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

$client = new \GuzzleHttp\Client();
$response = $client->delete(
    'https://dashboard-preprod.appartement-construction.com/api/v2/annonce/123',
    [
        'headers' => [
            'Accept' => 'application/json',
        ],
        'json' => [
            'website' => 'TC',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dashboard-preprod.appartement-construction.com/api/v2/annonce/123'
payload = {
    "website": "TC"
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('DELETE', url, headers=headers, json=payload)
response.json()

Example response (200):

{
    "code": 200,
    "status": "ok",
    "message": "annonce deleted"
}

Example response (400):

{
    "code": 400,
    "status": "error",
    "message": {
        "annonce_id": [
            "Le champ annonce id sélectionné est invalide."
        ]
    }
}

Request   

DELETE api/v2/annonce/{annonce}

URL Parameters

annonce  string  
Annonce id

Body Parameters

website  string  
Website Code(ACdev, TC, etc...)

Attach a document to the specified annonce.

Example request:

curl -X POST \
    "https://dashboard-preprod.appartement-construction.com/api/v2/annonce/123/attach/document" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"website":"TC","document_id":154}'
const url = new URL(
    "https://dashboard-preprod.appartement-construction.com/api/v2/annonce/123/attach/document"
);

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

let body = {
    "website": "TC",
    "document_id": 154
}

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

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://dashboard-preprod.appartement-construction.com/api/v2/annonce/123/attach/document',
    [
        'headers' => [
            'Accept' => 'application/json',
        ],
        'json' => [
            'website' => 'TC',
            'document_id' => 154,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dashboard-preprod.appartement-construction.com/api/v2/annonce/123/attach/document'
payload = {
    "website": "TC",
    "document_id": 154
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (200):

{
    "code": 200,
    "status": "ok",
    "message": "document attached"
}

Example response (400):

{
    "code": 400,
    "status": "error",
    "message": {
        "document_id": [
            "Le champ document id est obligatoire."
        ]
    }
}

Request   

POST api/v2/annonce/{annonce}/attach/document

URL Parameters

annonce  string  
Annonce ID

Body Parameters

website  string  
Website Code(ACdev, TC, etc...)

document_id  integer  
Document ID

Detach a document to the specified annonce.

Example request:

curl -X POST \
    "https://dashboard-preprod.appartement-construction.com/api/v2/annonce/123/detach/document" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"website":"TC","document_id":154}'
const url = new URL(
    "https://dashboard-preprod.appartement-construction.com/api/v2/annonce/123/detach/document"
);

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

let body = {
    "website": "TC",
    "document_id": 154
}

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

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://dashboard-preprod.appartement-construction.com/api/v2/annonce/123/detach/document',
    [
        'headers' => [
            'Accept' => 'application/json',
        ],
        'json' => [
            'website' => 'TC',
            'document_id' => 154,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dashboard-preprod.appartement-construction.com/api/v2/annonce/123/detach/document'
payload = {
    "website": "TC",
    "document_id": 154
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (200):

{
    "code": 200,
    "status": "ok",
    "message": "document detached"
}

Example response (400):

{
    "code": 400,
    "status": "error",
    "message": {
        "document_id": [
            "Le champ document id est obligatoire."
        ]
    }
}

Request   

POST api/v2/annonce/{annonce}/detach/document

URL Parameters

annonce  string  
Annonce ID

Body Parameters

website  string  
Website Code(ACdev, TC, etc...)

document_id  integer  
Document ID

Search All

Example request:

curl -X POST \
    "https://dashboard-preprod.appartement-construction.com/api/v2/annonce/search/all" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"website":"TC","type_annonce":"APPARTEMENT NEUF, MAISON NEUF","client_id":12,"range":10,"paginate":15,"order_on":"id","order_dir":"DESC","max_price":10000,"room":2,"consultation":"1","ip":"88.12.14.134","client_vars":"a:50:{s:21:\"PHP_FCGI_MAX_REQUESTS\";s:4:\"5000\";s:5:\"PHPRC\";s:18:\"\/var\/www\/conf\/web3\";s:3:\"PWD\";s:30:\"\/var\/www\/php-fcgi-scripts\/web3\"...","country":"fr","only_with_programme":false,"page":1}'
const url = new URL(
    "https://dashboard-preprod.appartement-construction.com/api/v2/annonce/search/all"
);

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

let body = {
    "website": "TC",
    "type_annonce": "APPARTEMENT NEUF, MAISON NEUF",
    "client_id": 12,
    "range": 10,
    "paginate": 15,
    "order_on": "id",
    "order_dir": "DESC",
    "max_price": 10000,
    "room": 2,
    "consultation": "1",
    "ip": "88.12.14.134",
    "client_vars": "a:50:{s:21:\"PHP_FCGI_MAX_REQUESTS\";s:4:\"5000\";s:5:\"PHPRC\";s:18:\"\/var\/www\/conf\/web3\";s:3:\"PWD\";s:30:\"\/var\/www\/php-fcgi-scripts\/web3\"...",
    "country": "fr",
    "only_with_programme": false,
    "page": 1
}

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

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://dashboard-preprod.appartement-construction.com/api/v2/annonce/search/all',
    [
        'headers' => [
            'Accept' => 'application/json',
        ],
        'json' => [
            'website' => 'TC',
            'type_annonce' => 'APPARTEMENT NEUF, MAISON NEUF',
            'client_id' => 12,
            'range' => 10,
            'paginate' => 15,
            'order_on' => 'id',
            'order_dir' => 'DESC',
            'max_price' => 10000,
            'room' => 2,
            'consultation' => '1',
            'ip' => '88.12.14.134',
            'client_vars' => 'a:50:{s:21:"PHP_FCGI_MAX_REQUESTS";s:4:"5000";s:5:"PHPRC";s:18:"/var/www/conf/web3";s:3:"PWD";s:30:"/var/www/php-fcgi-scripts/web3"...',
            'country' => 'fr',
            'only_with_programme' => false,
            'page' => 1,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dashboard-preprod.appartement-construction.com/api/v2/annonce/search/all'
payload = {
    "website": "TC",
    "type_annonce": "APPARTEMENT NEUF, MAISON NEUF",
    "client_id": 12,
    "range": 10,
    "paginate": 15,
    "order_on": "id",
    "order_dir": "DESC",
    "max_price": 10000,
    "room": 2,
    "consultation": "1",
    "ip": "88.12.14.134",
    "client_vars": "a:50:{s:21:\"PHP_FCGI_MAX_REQUESTS\";s:4:\"5000\";s:5:\"PHPRC\";s:18:\"\/var\/www\/conf\/web3\";s:3:\"PWD\";s:30:\"\/var\/www\/php-fcgi-scripts\/web3\"...",
    "country": "fr",
    "only_with_programme": false,
    "page": 1
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (400):

{
    "code": 400,
    "status": "error",
    "message": {
        "type_annonce": [
            "Le champ type annonce est obligatoire."
        ]
    }
}

Example response (200):

{
    "code": 200,
    "status": "ok",
    "data": {
        "current_page": 2,
        "data": [
            {
                "id": 436126,
                "programme_id": null,
                "commune_id": 17425,
                "client_id": 2202,
                "type": "MAISON ANCIEN",
                "external_reference": "21210_30495",
                "slugged_external_reference": "21210-30495",
                "email_contact_additionnel": null,
                "external_code_postal": "45130",
                "adresse": null,
                "proximite": null,
                "libelle": "Maison",
                "description": "MEUNG-SUR-LOIRE, Maison sur sous sol, offrant pièce de vie avec cheminée à foyer ouvert, une cuisine indépendante, 3 chambres, laissant encore du potentiel à exploiter. Travaux de maçonnerie à prévoir. A 1,5 kilomètres de la gare et 2 kilomètres de l'autoroute...\nRéf 30495 Prix 164 3   7\nLCDI Réseau National Immobilier\nVous souhaitez être rappelé plus tard pour ce bien ?,\nEnvoyez : \"RAPPEL réf 3  70 40\nHonoraires à la charge de l'acquéreur",
                "avant_premiere": 0,
                "exclusivite": null,
                "priorite_visibilite": 0,
                "surface": 140,
                "surface_maison": null,
                "surface_terrain": 1500,
                "surface_habitable": 140,
                "surface_sejour": 40,
                "prix": 164300,
                "prix_maison": 164300,
                "prix_terrain": null,
                "nbr_piece": 4,
                "etage": null,
                "terrasse": null,
                "nbr_balcon": null,
                "surface_balcon": null,
                "nbr_etage": null,
                "ascenseur": null,
                "cave": null,
                "nbr_parking": null,
                "nbr_boxe": null,
                "nbr_chambre": 3,
                "nbr_chambre_rdc": null,
                "nbr_sdb": 1,
                "type_cuisine": 11,
                "type_chauffage": 8200,
                "type_eau_chaude": null,
                "alarme": null,
                "piscine": null,
                "interphone": null,
                "etat_interieur": null,
                "date_dispo": null,
                "conso_energie": null,
                "bilan_conso_energie": null,
                "emission_ges": null,
                "bilan_emission_ges": null,
                "annee_construction": null,
                "loyer_mois": null,
                "loyer_mois_charges_comprises": null,
                "charges_mois": null,
                "droit_au_bail": null,
                "taxe_fonciere": null,
                "sous_type_bien": 270,
                "create_batch_id": 3006,
                "update_batch_id": null,
                "remove_batch_id": null,
                "lastseen_batch_id": 3006,
                "source": null,
                "from_website": null,
                "published": 1,
                "moderated": 0,
                "published_at": "2021-02-01T09:31:06.000000Z",
                "created_at": "2021-02-01T09:31:03.000000Z",
                "updated_at": "2021-02-01T09:31:06.000000Z",
                "deleted_at": null,
                "commune": {
                    "id": 17425,
                    "departement_id": 47,
                    "nom": "MEUNG SUR LOIRE",
                    "insee": "45203",
                    "nom_special": "Meung-sur-Loire",
                    "nom_recherche": "MEUNGSURLOIRE",
                    "prefixe_nom_special": "",
                    "population": 5993,
                    "actif": 1,
                    "zone_id": null,
                    "longitude": 1.695017,
                    "latitude": 47.82795,
                    "centre": {
                        "type": "Point",
                        "coordinates": [
                            1.695017,
                            47.82795
                        ]
                    },
                    "created_at": null,
                    "updated_at": "2021-02-08T16:50:00.000000Z",
                    "deleted_at": null,
                    "departement": {
                        "id": 47,
                        "region_id": 14,
                        "nom": "LOIRET",
                        "code": "45",
                        "created_at": "2017-08-31T08:35:14.000000Z",
                        "updated_at": "2017-08-31T08:35:14.000000Z",
                        "deleted_at": null,
                        "region": {
                            "id": 14,
                            "pays_id": 1,
                            "nom": "Centre",
                            "created_at": "2017-08-31T08:35:14.000000Z",
                            "updated_at": "2017-08-31T08:35:14.000000Z",
                            "deleted_at": null
                        }
                    }
                },
                "programme": null
            },
            {
                "id": 436127,
                "programme_id": null,
                "commune_id": 11566,
                "client_id": 2202,
                "type": "MAISON ANCIEN",
                "external_reference": "22322_30477",
                "slugged_external_reference": "22322-30477",
                "email_contact_additionnel": null,
                "external_code_postal": "30100",
                "adresse": null,
                "proximite": null,
                "libelle": "Maison",
                "description": "ALES, A 10 minutes de tout commerces, maison de 151 m² avec terrain de 843 m² clôturé et arboré. Dans un quartier calme . Au rez de chaussée, une chambre avec salle d'eau attenante, un bureau, une salle de jeux, un double garage, une chaufferie et une cuisine d'été. A l'étage, un salon salle à manger avec cheminée ouverte, une cuisine  donnant sur une terrasse, trois chambres avec placards, une salle de bains, un toilette. Double vitrage. A voir...\nRéf 30477  Prix 284 0  25\nAgent Mandataire Indépendant\nRCS de Nîmes (30), n°832 122 824\nLCDI Réseau National Immobilier\nVous souhaitez être rappelé plus tard pour ce bien ?,\nEnvoyez : \"RAPPEL réf 3  59 25\nHonoraires à la charge du vendeur",
                "avant_premiere": 0,
                "exclusivite": null,
                "priorite_visibilite": 0,
                "surface": 151,
                "surface_maison": null,
                "surface_terrain": 843,
                "surface_habitable": 151,
                "surface_sejour": 37,
                "prix": 284000,
                "prix_maison": 284000,
                "prix_terrain": null,
                "nbr_piece": 5,
                "etage": null,
                "terrasse": null,
                "nbr_balcon": null,
                "surface_balcon": null,
                "nbr_etage": null,
                "ascenseur": null,
                "cave": null,
                "nbr_parking": null,
                "nbr_boxe": null,
                "nbr_chambre": 4,
                "nbr_chambre_rdc": 1,
                "nbr_sdb": 1,
                "type_cuisine": 11,
                "type_chauffage": 8704,
                "type_eau_chaude": null,
                "alarme": null,
                "piscine": null,
                "interphone": null,
                "etat_interieur": null,
                "date_dispo": null,
                "conso_energie": "139",
                "bilan_conso_energie": "C",
                "emission_ges": "32",
                "bilan_emission_ges": "D",
                "annee_construction": null,
                "loyer_mois": null,
                "loyer_mois_charges_comprises": null,
                "charges_mois": null,
                "droit_au_bail": null,
                "taxe_fonciere": null,
                "sous_type_bien": 270,
                "create_batch_id": 3006,
                "update_batch_id": null,
                "remove_batch_id": null,
                "lastseen_batch_id": 3006,
                "source": null,
                "from_website": null,
                "published": 1,
                "moderated": 0,
                "published_at": "2021-02-01T09:31:06.000000Z",
                "created_at": "2021-02-01T09:31:03.000000Z",
                "updated_at": "2021-02-01T09:31:06.000000Z",
                "deleted_at": null,
                "commune": {
                    "id": 11566,
                    "departement_id": 32,
                    "nom": "ALES",
                    "insee": "30007",
                    "nom_special": "Alès",
                    "nom_recherche": "ALES",
                    "prefixe_nom_special": "",
                    "population": 41037,
                    "actif": 1,
                    "zone_id": null,
                    "longitude": 4.079023,
                    "latitude": 44.127402,
                    "centre": {
                        "type": "Point",
                        "coordinates": [
                            4.079023,
                            44.127402
                        ]
                    },
                    "created_at": null,
                    "updated_at": "2021-02-08T16:49:50.000000Z",
                    "deleted_at": null,
                    "departement": {
                        "id": 32,
                        "region_id": 20,
                        "nom": "GARD",
                        "code": "30",
                        "created_at": "2017-08-31T08:35:14.000000Z",
                        "updated_at": "2017-08-31T08:35:14.000000Z",
                        "deleted_at": null,
                        "region": {
                            "id": 20,
                            "pays_id": 1,
                            "nom": "Languedoc-Roussillon",
                            "created_at": "2017-08-31T08:35:14.000000Z",
                            "updated_at": "2017-08-31T08:35:14.000000Z",
                            "deleted_at": null
                        }
                    }
                },
                "programme": null
            }
        ],
        "first_page_url": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annonce\/search\/client?page=1",
        "from": 3,
        "last_page": 16,
        "last_page_url": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annonce\/search\/client?page=16",
        "next_page_url": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annonce\/search\/client?page=3",
        "path": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annonce\/search\/client",
        "per_page": 2,
        "prev_page_url": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annonce\/search\/client?page=1",
        "to": 4,
        "total": 32
    }
}

Request   

POST api/v2/annonce/search/all

Body Parameters

website  string  
Website Code(ACdev, TC, etc...)

type_annonce  string  
Values who can be separated by commas See [Additional Datas / Type values](#annonce-type-values).

client_id  integer optional  
Client id.

range  integer optional  
default is 0

paginate  integer optional  
default is 10

order_on  string optional  
Order column, default is updated_at is 10

order_dir  string optional  
Order Direction, ASC or DESC

max_price  integer optional  

room  integer optional  

consultation  required optional  
integer 1=>true, 0=>false

ip  string optional  
re-searcher ip.

client_vars  text optional  
Serialization of $_SERVER.

country  string optional  
default is "fr"

only_with_programme  boolean optional  
On with programme

page  integer optional  
Page

Search by State

Example request:

curl -X POST \
    "https://dashboard-preprod.appartement-construction.com/api/v2/annonce/search/state" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"website":"TC","range":10,"paginate":15,"order_on":"id","order_dir":"DESC","max_price":10000,"room":2,"type_annonce":"'APPARTEMENT NEUF, MAISON NEUF'","consultation":"1","ip":"88.12.14.134","client_vars":"a:50:{s:21:\"PHP_FCGI_MAX_REQUESTS\";s:4:\"5000\";s:5:\"PHPRC\";s:18:\"\/var\/www\/conf\/web3\";s:3:\"PWD\";s:30:\"\/var\/www\/php-fcgi-scripts\/web3\"...","state":"01","country":"fr","page":1}'
const url = new URL(
    "https://dashboard-preprod.appartement-construction.com/api/v2/annonce/search/state"
);

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

let body = {
    "website": "TC",
    "range": 10,
    "paginate": 15,
    "order_on": "id",
    "order_dir": "DESC",
    "max_price": 10000,
    "room": 2,
    "type_annonce": "'APPARTEMENT NEUF, MAISON NEUF'",
    "consultation": "1",
    "ip": "88.12.14.134",
    "client_vars": "a:50:{s:21:\"PHP_FCGI_MAX_REQUESTS\";s:4:\"5000\";s:5:\"PHPRC\";s:18:\"\/var\/www\/conf\/web3\";s:3:\"PWD\";s:30:\"\/var\/www\/php-fcgi-scripts\/web3\"...",
    "state": "01",
    "country": "fr",
    "page": 1
}

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

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://dashboard-preprod.appartement-construction.com/api/v2/annonce/search/state',
    [
        'headers' => [
            'Accept' => 'application/json',
        ],
        'json' => [
            'website' => 'TC',
            'range' => 10,
            'paginate' => 15,
            'order_on' => 'id',
            'order_dir' => 'DESC',
            'max_price' => 10000,
            'room' => 2,
            'type_annonce' => '\'APPARTEMENT NEUF, MAISON NEUF\'',
            'consultation' => '1',
            'ip' => '88.12.14.134',
            'client_vars' => 'a:50:{s:21:"PHP_FCGI_MAX_REQUESTS";s:4:"5000";s:5:"PHPRC";s:18:"/var/www/conf/web3";s:3:"PWD";s:30:"/var/www/php-fcgi-scripts/web3"...',
            'state' => '01',
            'country' => 'fr',
            'page' => 1,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dashboard-preprod.appartement-construction.com/api/v2/annonce/search/state'
payload = {
    "website": "TC",
    "range": 10,
    "paginate": 15,
    "order_on": "id",
    "order_dir": "DESC",
    "max_price": 10000,
    "room": 2,
    "type_annonce": "'APPARTEMENT NEUF, MAISON NEUF'",
    "consultation": "1",
    "ip": "88.12.14.134",
    "client_vars": "a:50:{s:21:\"PHP_FCGI_MAX_REQUESTS\";s:4:\"5000\";s:5:\"PHPRC\";s:18:\"\/var\/www\/conf\/web3\";s:3:\"PWD\";s:30:\"\/var\/www\/php-fcgi-scripts\/web3\"...",
    "state": "01",
    "country": "fr",
    "page": 1
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (400):

{
    "code": 400,
    "status": "error",
    "message": {
        "type_annonce": [
            "Le champ type annonce est obligatoire."
        ]
    }
}

Example response (200):

{
    "code": 200,
    "status": "ok",
    "data": {
        "current_page": 2,
        "data": [
            {
                "id": 436126,
                "programme_id": null,
                "commune_id": 17425,
                "client_id": 2202,
                "type": "MAISON ANCIEN",
                "external_reference": "21210_30495",
                "slugged_external_reference": "21210-30495",
                "email_contact_additionnel": null,
                "external_code_postal": "45130",
                "adresse": null,
                "proximite": null,
                "libelle": "Maison",
                "description": "MEUNG-SUR-LOIRE, Maison sur sous sol, offrant pièce de vie avec cheminée à foyer ouvert, une cuisine indépendante, 3 chambres, laissant encore du potentiel à exploiter. Travaux de maçonnerie à prévoir. A 1,5 kilomètres de la gare et 2 kilomètres de l'autoroute...\nRéf 30495 Prix 164 3   7\nLCDI Réseau National Immobilier\nVous souhaitez être rappelé plus tard pour ce bien ?,\nEnvoyez : \"RAPPEL réf 3  70 40\nHonoraires à la charge de l'acquéreur",
                "avant_premiere": 0,
                "exclusivite": null,
                "priorite_visibilite": 0,
                "surface": 140,
                "surface_maison": null,
                "surface_terrain": 1500,
                "surface_habitable": 140,
                "surface_sejour": 40,
                "prix": 164300,
                "prix_maison": 164300,
                "prix_terrain": null,
                "nbr_piece": 4,
                "etage": null,
                "terrasse": null,
                "nbr_balcon": null,
                "surface_balcon": null,
                "nbr_etage": null,
                "ascenseur": null,
                "cave": null,
                "nbr_parking": null,
                "nbr_boxe": null,
                "nbr_chambre": 3,
                "nbr_chambre_rdc": null,
                "nbr_sdb": 1,
                "type_cuisine": 11,
                "type_chauffage": 8200,
                "type_eau_chaude": null,
                "alarme": null,
                "piscine": null,
                "interphone": null,
                "etat_interieur": null,
                "date_dispo": null,
                "conso_energie": null,
                "bilan_conso_energie": null,
                "emission_ges": null,
                "bilan_emission_ges": null,
                "annee_construction": null,
                "loyer_mois": null,
                "loyer_mois_charges_comprises": null,
                "charges_mois": null,
                "droit_au_bail": null,
                "taxe_fonciere": null,
                "sous_type_bien": 270,
                "create_batch_id": 3006,
                "update_batch_id": null,
                "remove_batch_id": null,
                "lastseen_batch_id": 3006,
                "source": null,
                "from_website": null,
                "published": 1,
                "moderated": 0,
                "published_at": "2021-02-01T09:31:06.000000Z",
                "created_at": "2021-02-01T09:31:03.000000Z",
                "updated_at": "2021-02-01T09:31:06.000000Z",
                "deleted_at": null,
                "commune": {
                    "id": 17425,
                    "departement_id": 47,
                    "nom": "MEUNG SUR LOIRE",
                    "insee": "45203",
                    "nom_special": "Meung-sur-Loire",
                    "nom_recherche": "MEUNGSURLOIRE",
                    "prefixe_nom_special": "",
                    "population": 5993,
                    "actif": 1,
                    "zone_id": null,
                    "longitude": 1.695017,
                    "latitude": 47.82795,
                    "centre": {
                        "type": "Point",
                        "coordinates": [
                            1.695017,
                            47.82795
                        ]
                    },
                    "created_at": null,
                    "updated_at": "2021-02-08T16:50:00.000000Z",
                    "deleted_at": null,
                    "departement": {
                        "id": 47,
                        "region_id": 14,
                        "nom": "LOIRET",
                        "code": "45",
                        "created_at": "2017-08-31T08:35:14.000000Z",
                        "updated_at": "2017-08-31T08:35:14.000000Z",
                        "deleted_at": null,
                        "region": {
                            "id": 14,
                            "pays_id": 1,
                            "nom": "Centre",
                            "created_at": "2017-08-31T08:35:14.000000Z",
                            "updated_at": "2017-08-31T08:35:14.000000Z",
                            "deleted_at": null
                        }
                    }
                },
                "programme": null
            },
            {
                "id": 436127,
                "programme_id": null,
                "commune_id": 11566,
                "client_id": 2202,
                "type": "MAISON ANCIEN",
                "external_reference": "22322_30477",
                "slugged_external_reference": "22322-30477",
                "email_contact_additionnel": null,
                "external_code_postal": "30100",
                "adresse": null,
                "proximite": null,
                "libelle": "Maison",
                "description": "ALES, A 10 minutes de tout commerces, maison de 151 m² avec terrain de 843 m² clôturé et arboré. Dans un quartier calme . Au rez de chaussée, une chambre avec salle d'eau attenante, un bureau, une salle de jeux, un double garage, une chaufferie et une cuisine d'été. A l'étage, un salon salle à manger avec cheminée ouverte, une cuisine  donnant sur une terrasse, trois chambres avec placards, une salle de bains, un toilette. Double vitrage. A voir...\nRéf 30477  Prix 284 0  25\nAgent Mandataire Indépendant\nRCS de Nîmes (30), n°832 122 824\nLCDI Réseau National Immobilier\nVous souhaitez être rappelé plus tard pour ce bien ?,\nEnvoyez : \"RAPPEL réf 3  59 25\nHonoraires à la charge du vendeur",
                "avant_premiere": 0,
                "exclusivite": null,
                "priorite_visibilite": 0,
                "surface": 151,
                "surface_maison": null,
                "surface_terrain": 843,
                "surface_habitable": 151,
                "surface_sejour": 37,
                "prix": 284000,
                "prix_maison": 284000,
                "prix_terrain": null,
                "nbr_piece": 5,
                "etage": null,
                "terrasse": null,
                "nbr_balcon": null,
                "surface_balcon": null,
                "nbr_etage": null,
                "ascenseur": null,
                "cave": null,
                "nbr_parking": null,
                "nbr_boxe": null,
                "nbr_chambre": 4,
                "nbr_chambre_rdc": 1,
                "nbr_sdb": 1,
                "type_cuisine": 11,
                "type_chauffage": 8704,
                "type_eau_chaude": null,
                "alarme": null,
                "piscine": null,
                "interphone": null,
                "etat_interieur": null,
                "date_dispo": null,
                "conso_energie": "139",
                "bilan_conso_energie": "C",
                "emission_ges": "32",
                "bilan_emission_ges": "D",
                "annee_construction": null,
                "loyer_mois": null,
                "loyer_mois_charges_comprises": null,
                "charges_mois": null,
                "droit_au_bail": null,
                "taxe_fonciere": null,
                "sous_type_bien": 270,
                "create_batch_id": 3006,
                "update_batch_id": null,
                "remove_batch_id": null,
                "lastseen_batch_id": 3006,
                "source": null,
                "from_website": null,
                "published": 1,
                "moderated": 0,
                "published_at": "2021-02-01T09:31:06.000000Z",
                "created_at": "2021-02-01T09:31:03.000000Z",
                "updated_at": "2021-02-01T09:31:06.000000Z",
                "deleted_at": null,
                "commune": {
                    "id": 11566,
                    "departement_id": 32,
                    "nom": "ALES",
                    "insee": "30007",
                    "nom_special": "Alès",
                    "nom_recherche": "ALES",
                    "prefixe_nom_special": "",
                    "population": 41037,
                    "actif": 1,
                    "zone_id": null,
                    "longitude": 4.079023,
                    "latitude": 44.127402,
                    "centre": {
                        "type": "Point",
                        "coordinates": [
                            4.079023,
                            44.127402
                        ]
                    },
                    "created_at": null,
                    "updated_at": "2021-02-08T16:49:50.000000Z",
                    "deleted_at": null,
                    "departement": {
                        "id": 32,
                        "region_id": 20,
                        "nom": "GARD",
                        "code": "30",
                        "created_at": "2017-08-31T08:35:14.000000Z",
                        "updated_at": "2017-08-31T08:35:14.000000Z",
                        "deleted_at": null,
                        "region": {
                            "id": 20,
                            "pays_id": 1,
                            "nom": "Languedoc-Roussillon",
                            "created_at": "2017-08-31T08:35:14.000000Z",
                            "updated_at": "2017-08-31T08:35:14.000000Z",
                            "deleted_at": null
                        }
                    }
                },
                "programme": null
            }
        ],
        "first_page_url": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annonce\/search\/client?page=1",
        "from": 3,
        "last_page": 16,
        "last_page_url": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annonce\/search\/client?page=16",
        "next_page_url": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annonce\/search\/client?page=3",
        "path": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annonce\/search\/client",
        "per_page": 2,
        "prev_page_url": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annonce\/search\/client?page=1",
        "to": 4,
        "total": 32
    }
}

Request   

POST api/v2/annonce/search/state

Body Parameters

website  string  
Website Code(ACdev, TC, etc...)

range  integer optional  
default is 0

paginate  integer optional  
default is 10

order_on  string optional  
Order column, default is updated_at is 10

order_dir  string optional  
Order Direction, ASC or DESC

max_price  integer optional  

room  integer optional  

type_annonce  string  
Values who can be separated by commas See [Additional Datas / Type values](#annonce-type-values).

consultation  required optional  
integer 1=>true, 0=>false

ip  string optional  
re-searcher ip.

client_vars  text optional  
Serialization of $_SERVER.

state  string  
States ID

country  string optional  
default is "fr"

page  integer optional  
Page

Search by Zip

Example request:

curl -X POST \
    "https://dashboard-preprod.appartement-construction.com/api/v2/annonce/search/zip" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"website":"TC","range":10,"paginate":15,"order_on":"id","order_dir":"DESC","max_price":10000,"room":2,"type_annonce":"'APPARTEMENT NEUF, MAISON NEUF'","consultation":"1","ip":"88.12.14.134","client_vars":"a:50:{s:21:\"PHP_FCGI_MAX_REQUESTS\";s:4:\"5000\";s:5:\"PHPRC\";s:18:\"\/var\/www\/conf\/web3\";s:3:\"PWD\";s:30:\"\/var\/www\/php-fcgi-scripts\/web3\"...","zip":"75000","country":"fr","page":1,"client_id":12}'
const url = new URL(
    "https://dashboard-preprod.appartement-construction.com/api/v2/annonce/search/zip"
);

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

let body = {
    "website": "TC",
    "range": 10,
    "paginate": 15,
    "order_on": "id",
    "order_dir": "DESC",
    "max_price": 10000,
    "room": 2,
    "type_annonce": "'APPARTEMENT NEUF, MAISON NEUF'",
    "consultation": "1",
    "ip": "88.12.14.134",
    "client_vars": "a:50:{s:21:\"PHP_FCGI_MAX_REQUESTS\";s:4:\"5000\";s:5:\"PHPRC\";s:18:\"\/var\/www\/conf\/web3\";s:3:\"PWD\";s:30:\"\/var\/www\/php-fcgi-scripts\/web3\"...",
    "zip": "75000",
    "country": "fr",
    "page": 1,
    "client_id": 12
}

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

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://dashboard-preprod.appartement-construction.com/api/v2/annonce/search/zip',
    [
        'headers' => [
            'Accept' => 'application/json',
        ],
        'json' => [
            'website' => 'TC',
            'range' => 10,
            'paginate' => 15,
            'order_on' => 'id',
            'order_dir' => 'DESC',
            'max_price' => 10000,
            'room' => 2,
            'type_annonce' => '\'APPARTEMENT NEUF, MAISON NEUF\'',
            'consultation' => '1',
            'ip' => '88.12.14.134',
            'client_vars' => 'a:50:{s:21:"PHP_FCGI_MAX_REQUESTS";s:4:"5000";s:5:"PHPRC";s:18:"/var/www/conf/web3";s:3:"PWD";s:30:"/var/www/php-fcgi-scripts/web3"...',
            'zip' => '75000',
            'country' => 'fr',
            'page' => 1,
            'client_id' => 12,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dashboard-preprod.appartement-construction.com/api/v2/annonce/search/zip'
payload = {
    "website": "TC",
    "range": 10,
    "paginate": 15,
    "order_on": "id",
    "order_dir": "DESC",
    "max_price": 10000,
    "room": 2,
    "type_annonce": "'APPARTEMENT NEUF, MAISON NEUF'",
    "consultation": "1",
    "ip": "88.12.14.134",
    "client_vars": "a:50:{s:21:\"PHP_FCGI_MAX_REQUESTS\";s:4:\"5000\";s:5:\"PHPRC\";s:18:\"\/var\/www\/conf\/web3\";s:3:\"PWD\";s:30:\"\/var\/www\/php-fcgi-scripts\/web3\"...",
    "zip": "75000",
    "country": "fr",
    "page": 1,
    "client_id": 12
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (400):

{
    "code": 400,
    "status": "error",
    "message": {
        "type_annonce": [
            "Le champ type annonce est obligatoire."
        ]
    }
}

Example response (200):

{
    "code": 200,
    "status": "ok",
    "data": {
        "current_page": 2,
        "data": [
            {
                "id": 436126,
                "programme_id": null,
                "commune_id": 17425,
                "client_id": 2202,
                "type": "MAISON ANCIEN",
                "external_reference": "21210_30495",
                "slugged_external_reference": "21210-30495",
                "email_contact_additionnel": null,
                "external_code_postal": "45130",
                "adresse": null,
                "proximite": null,
                "libelle": "Maison",
                "description": "MEUNG-SUR-LOIRE, Maison sur sous sol, offrant pièce de vie avec cheminée à foyer ouvert, une cuisine indépendante, 3 chambres, laissant encore du potentiel à exploiter. Travaux de maçonnerie à prévoir. A 1,5 kilomètres de la gare et 2 kilomètres de l'autoroute...\nRéf 30495 Prix 164 3   7\nLCDI Réseau National Immobilier\nVous souhaitez être rappelé plus tard pour ce bien ?,\nEnvoyez : \"RAPPEL réf 3  70 40\nHonoraires à la charge de l'acquéreur",
                "avant_premiere": 0,
                "exclusivite": null,
                "priorite_visibilite": 0,
                "surface": 140,
                "surface_maison": null,
                "surface_terrain": 1500,
                "surface_habitable": 140,
                "surface_sejour": 40,
                "prix": 164300,
                "prix_maison": 164300,
                "prix_terrain": null,
                "nbr_piece": 4,
                "etage": null,
                "terrasse": null,
                "nbr_balcon": null,
                "surface_balcon": null,
                "nbr_etage": null,
                "ascenseur": null,
                "cave": null,
                "nbr_parking": null,
                "nbr_boxe": null,
                "nbr_chambre": 3,
                "nbr_chambre_rdc": null,
                "nbr_sdb": 1,
                "type_cuisine": 11,
                "type_chauffage": 8200,
                "type_eau_chaude": null,
                "alarme": null,
                "piscine": null,
                "interphone": null,
                "etat_interieur": null,
                "date_dispo": null,
                "conso_energie": null,
                "bilan_conso_energie": null,
                "emission_ges": null,
                "bilan_emission_ges": null,
                "annee_construction": null,
                "loyer_mois": null,
                "loyer_mois_charges_comprises": null,
                "charges_mois": null,
                "droit_au_bail": null,
                "taxe_fonciere": null,
                "sous_type_bien": 270,
                "create_batch_id": 3006,
                "update_batch_id": null,
                "remove_batch_id": null,
                "lastseen_batch_id": 3006,
                "source": null,
                "from_website": null,
                "published": 1,
                "moderated": 0,
                "published_at": "2021-02-01T09:31:06.000000Z",
                "created_at": "2021-02-01T09:31:03.000000Z",
                "updated_at": "2021-02-01T09:31:06.000000Z",
                "deleted_at": null,
                "commune": {
                    "id": 17425,
                    "departement_id": 47,
                    "nom": "MEUNG SUR LOIRE",
                    "insee": "45203",
                    "nom_special": "Meung-sur-Loire",
                    "nom_recherche": "MEUNGSURLOIRE",
                    "prefixe_nom_special": "",
                    "population": 5993,
                    "actif": 1,
                    "zone_id": null,
                    "longitude": 1.695017,
                    "latitude": 47.82795,
                    "centre": {
                        "type": "Point",
                        "coordinates": [
                            1.695017,
                            47.82795
                        ]
                    },
                    "created_at": null,
                    "updated_at": "2021-02-08T16:50:00.000000Z",
                    "deleted_at": null,
                    "departement": {
                        "id": 47,
                        "region_id": 14,
                        "nom": "LOIRET",
                        "code": "45",
                        "created_at": "2017-08-31T08:35:14.000000Z",
                        "updated_at": "2017-08-31T08:35:14.000000Z",
                        "deleted_at": null,
                        "region": {
                            "id": 14,
                            "pays_id": 1,
                            "nom": "Centre",
                            "created_at": "2017-08-31T08:35:14.000000Z",
                            "updated_at": "2017-08-31T08:35:14.000000Z",
                            "deleted_at": null
                        }
                    }
                },
                "programme": null
            },
            {
                "id": 436127,
                "programme_id": null,
                "commune_id": 11566,
                "client_id": 2202,
                "type": "MAISON ANCIEN",
                "external_reference": "22322_30477",
                "slugged_external_reference": "22322-30477",
                "email_contact_additionnel": null,
                "external_code_postal": "30100",
                "adresse": null,
                "proximite": null,
                "libelle": "Maison",
                "description": "ALES, A 10 minutes de tout commerces, maison de 151 m² avec terrain de 843 m² clôturé et arboré. Dans un quartier calme . Au rez de chaussée, une chambre avec salle d'eau attenante, un bureau, une salle de jeux, un double garage, une chaufferie et une cuisine d'été. A l'étage, un salon salle à manger avec cheminée ouverte, une cuisine  donnant sur une terrasse, trois chambres avec placards, une salle de bains, un toilette. Double vitrage. A voir...\nRéf 30477  Prix 284 0  25\nAgent Mandataire Indépendant\nRCS de Nîmes (30), n°832 122 824\nLCDI Réseau National Immobilier\nVous souhaitez être rappelé plus tard pour ce bien ?,\nEnvoyez : \"RAPPEL réf 3  59 25\nHonoraires à la charge du vendeur",
                "avant_premiere": 0,
                "exclusivite": null,
                "priorite_visibilite": 0,
                "surface": 151,
                "surface_maison": null,
                "surface_terrain": 843,
                "surface_habitable": 151,
                "surface_sejour": 37,
                "prix": 284000,
                "prix_maison": 284000,
                "prix_terrain": null,
                "nbr_piece": 5,
                "etage": null,
                "terrasse": null,
                "nbr_balcon": null,
                "surface_balcon": null,
                "nbr_etage": null,
                "ascenseur": null,
                "cave": null,
                "nbr_parking": null,
                "nbr_boxe": null,
                "nbr_chambre": 4,
                "nbr_chambre_rdc": 1,
                "nbr_sdb": 1,
                "type_cuisine": 11,
                "type_chauffage": 8704,
                "type_eau_chaude": null,
                "alarme": null,
                "piscine": null,
                "interphone": null,
                "etat_interieur": null,
                "date_dispo": null,
                "conso_energie": "139",
                "bilan_conso_energie": "C",
                "emission_ges": "32",
                "bilan_emission_ges": "D",
                "annee_construction": null,
                "loyer_mois": null,
                "loyer_mois_charges_comprises": null,
                "charges_mois": null,
                "droit_au_bail": null,
                "taxe_fonciere": null,
                "sous_type_bien": 270,
                "create_batch_id": 3006,
                "update_batch_id": null,
                "remove_batch_id": null,
                "lastseen_batch_id": 3006,
                "source": null,
                "from_website": null,
                "published": 1,
                "moderated": 0,
                "published_at": "2021-02-01T09:31:06.000000Z",
                "created_at": "2021-02-01T09:31:03.000000Z",
                "updated_at": "2021-02-01T09:31:06.000000Z",
                "deleted_at": null,
                "commune": {
                    "id": 11566,
                    "departement_id": 32,
                    "nom": "ALES",
                    "insee": "30007",
                    "nom_special": "Alès",
                    "nom_recherche": "ALES",
                    "prefixe_nom_special": "",
                    "population": 41037,
                    "actif": 1,
                    "zone_id": null,
                    "longitude": 4.079023,
                    "latitude": 44.127402,
                    "centre": {
                        "type": "Point",
                        "coordinates": [
                            4.079023,
                            44.127402
                        ]
                    },
                    "created_at": null,
                    "updated_at": "2021-02-08T16:49:50.000000Z",
                    "deleted_at": null,
                    "departement": {
                        "id": 32,
                        "region_id": 20,
                        "nom": "GARD",
                        "code": "30",
                        "created_at": "2017-08-31T08:35:14.000000Z",
                        "updated_at": "2017-08-31T08:35:14.000000Z",
                        "deleted_at": null,
                        "region": {
                            "id": 20,
                            "pays_id": 1,
                            "nom": "Languedoc-Roussillon",
                            "created_at": "2017-08-31T08:35:14.000000Z",
                            "updated_at": "2017-08-31T08:35:14.000000Z",
                            "deleted_at": null
                        }
                    }
                },
                "programme": null
            }
        ],
        "first_page_url": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annonce\/search\/client?page=1",
        "from": 3,
        "last_page": 16,
        "last_page_url": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annonce\/search\/client?page=16",
        "next_page_url": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annonce\/search\/client?page=3",
        "path": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annonce\/search\/client",
        "per_page": 2,
        "prev_page_url": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annonce\/search\/client?page=1",
        "to": 4,
        "total": 32
    }
}

Request   

POST api/v2/annonce/search/zip

Body Parameters

website  string  
Website Code(ACdev, TC, etc...)

range  integer optional  
default is 0

paginate  integer optional  
default is 10

order_on  string optional  
Order column, default is updated_at is 10

order_dir  string optional  
Order Direction, ASC or DESC

max_price  integer optional  

room  integer optional  

type_annonce  string  
Values who can be separated by commas See [Additional Datas / Type values](#annonce-type-values).

consultation  required optional  
integer 1=>true, 0=>false

ip  string optional  
re-searcher ip.

client_vars  text optional  
Serialization of $_SERVER.

zip  string  
Zip code

country  string optional  
default is "fr"

page  integer optional  
Page

client_id  integer optional  
Client id.

Search by Region

Example request:

curl -X POST \
    "https://dashboard-preprod.appartement-construction.com/api/v2/annonce/search/region" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"website":"TC","range":10,"paginate":15,"order_on":"id","order_dir":"DESC","max_price":10000,"room":2,"type_annonce":"'APPARTEMENT NEUF, MAISON NEUF'","consultation":"1","ip":"88.12.14.134","client_vars":"a:50:{s:21:\"PHP_FCGI_MAX_REQUESTS\";s:4:\"5000\";s:5:\"PHPRC\";s:18:\"\/var\/www\/conf\/web3\";s:3:\"PWD\";s:30:\"\/var\/www\/php-fcgi-scripts\/web3\"...","region":"01","country":"fr","page":1,"client_id":12}'
const url = new URL(
    "https://dashboard-preprod.appartement-construction.com/api/v2/annonce/search/region"
);

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

let body = {
    "website": "TC",
    "range": 10,
    "paginate": 15,
    "order_on": "id",
    "order_dir": "DESC",
    "max_price": 10000,
    "room": 2,
    "type_annonce": "'APPARTEMENT NEUF, MAISON NEUF'",
    "consultation": "1",
    "ip": "88.12.14.134",
    "client_vars": "a:50:{s:21:\"PHP_FCGI_MAX_REQUESTS\";s:4:\"5000\";s:5:\"PHPRC\";s:18:\"\/var\/www\/conf\/web3\";s:3:\"PWD\";s:30:\"\/var\/www\/php-fcgi-scripts\/web3\"...",
    "region": "01",
    "country": "fr",
    "page": 1,
    "client_id": 12
}

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

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://dashboard-preprod.appartement-construction.com/api/v2/annonce/search/region',
    [
        'headers' => [
            'Accept' => 'application/json',
        ],
        'json' => [
            'website' => 'TC',
            'range' => 10,
            'paginate' => 15,
            'order_on' => 'id',
            'order_dir' => 'DESC',
            'max_price' => 10000,
            'room' => 2,
            'type_annonce' => '\'APPARTEMENT NEUF, MAISON NEUF\'',
            'consultation' => '1',
            'ip' => '88.12.14.134',
            'client_vars' => 'a:50:{s:21:"PHP_FCGI_MAX_REQUESTS";s:4:"5000";s:5:"PHPRC";s:18:"/var/www/conf/web3";s:3:"PWD";s:30:"/var/www/php-fcgi-scripts/web3"...',
            'region' => '01',
            'country' => 'fr',
            'page' => 1,
            'client_id' => 12,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dashboard-preprod.appartement-construction.com/api/v2/annonce/search/region'
payload = {
    "website": "TC",
    "range": 10,
    "paginate": 15,
    "order_on": "id",
    "order_dir": "DESC",
    "max_price": 10000,
    "room": 2,
    "type_annonce": "'APPARTEMENT NEUF, MAISON NEUF'",
    "consultation": "1",
    "ip": "88.12.14.134",
    "client_vars": "a:50:{s:21:\"PHP_FCGI_MAX_REQUESTS\";s:4:\"5000\";s:5:\"PHPRC\";s:18:\"\/var\/www\/conf\/web3\";s:3:\"PWD\";s:30:\"\/var\/www\/php-fcgi-scripts\/web3\"...",
    "region": "01",
    "country": "fr",
    "page": 1,
    "client_id": 12
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (400):

{
    "code": 400,
    "status": "error",
    "message": {
        "type_annonce": [
            "Le champ type annonce est obligatoire."
        ]
    }
}

Example response (200):

{
    "code": 200,
    "status": "ok",
    "data": {
        "current_page": 2,
        "data": [
            {
                "id": 436126,
                "programme_id": null,
                "commune_id": 17425,
                "client_id": 2202,
                "type": "MAISON ANCIEN",
                "external_reference": "21210_30495",
                "slugged_external_reference": "21210-30495",
                "email_contact_additionnel": null,
                "external_code_postal": "45130",
                "adresse": null,
                "proximite": null,
                "libelle": "Maison",
                "description": "MEUNG-SUR-LOIRE, Maison sur sous sol, offrant pièce de vie avec cheminée à foyer ouvert, une cuisine indépendante, 3 chambres, laissant encore du potentiel à exploiter. Travaux de maçonnerie à prévoir. A 1,5 kilomètres de la gare et 2 kilomètres de l'autoroute...\nRéf 30495 Prix 164 3   7\nLCDI Réseau National Immobilier\nVous souhaitez être rappelé plus tard pour ce bien ?,\nEnvoyez : \"RAPPEL réf 3  70 40\nHonoraires à la charge de l'acquéreur",
                "avant_premiere": 0,
                "exclusivite": null,
                "priorite_visibilite": 0,
                "surface": 140,
                "surface_maison": null,
                "surface_terrain": 1500,
                "surface_habitable": 140,
                "surface_sejour": 40,
                "prix": 164300,
                "prix_maison": 164300,
                "prix_terrain": null,
                "nbr_piece": 4,
                "etage": null,
                "terrasse": null,
                "nbr_balcon": null,
                "surface_balcon": null,
                "nbr_etage": null,
                "ascenseur": null,
                "cave": null,
                "nbr_parking": null,
                "nbr_boxe": null,
                "nbr_chambre": 3,
                "nbr_chambre_rdc": null,
                "nbr_sdb": 1,
                "type_cuisine": 11,
                "type_chauffage": 8200,
                "type_eau_chaude": null,
                "alarme": null,
                "piscine": null,
                "interphone": null,
                "etat_interieur": null,
                "date_dispo": null,
                "conso_energie": null,
                "bilan_conso_energie": null,
                "emission_ges": null,
                "bilan_emission_ges": null,
                "annee_construction": null,
                "loyer_mois": null,
                "loyer_mois_charges_comprises": null,
                "charges_mois": null,
                "droit_au_bail": null,
                "taxe_fonciere": null,
                "sous_type_bien": 270,
                "create_batch_id": 3006,
                "update_batch_id": null,
                "remove_batch_id": null,
                "lastseen_batch_id": 3006,
                "source": null,
                "from_website": null,
                "published": 1,
                "moderated": 0,
                "published_at": "2021-02-01T09:31:06.000000Z",
                "created_at": "2021-02-01T09:31:03.000000Z",
                "updated_at": "2021-02-01T09:31:06.000000Z",
                "deleted_at": null,
                "commune": {
                    "id": 17425,
                    "departement_id": 47,
                    "nom": "MEUNG SUR LOIRE",
                    "insee": "45203",
                    "nom_special": "Meung-sur-Loire",
                    "nom_recherche": "MEUNGSURLOIRE",
                    "prefixe_nom_special": "",
                    "population": 5993,
                    "actif": 1,
                    "zone_id": null,
                    "longitude": 1.695017,
                    "latitude": 47.82795,
                    "centre": {
                        "type": "Point",
                        "coordinates": [
                            1.695017,
                            47.82795
                        ]
                    },
                    "created_at": null,
                    "updated_at": "2021-02-08T16:50:00.000000Z",
                    "deleted_at": null,
                    "departement": {
                        "id": 47,
                        "region_id": 14,
                        "nom": "LOIRET",
                        "code": "45",
                        "created_at": "2017-08-31T08:35:14.000000Z",
                        "updated_at": "2017-08-31T08:35:14.000000Z",
                        "deleted_at": null,
                        "region": {
                            "id": 14,
                            "pays_id": 1,
                            "nom": "Centre",
                            "created_at": "2017-08-31T08:35:14.000000Z",
                            "updated_at": "2017-08-31T08:35:14.000000Z",
                            "deleted_at": null
                        }
                    }
                },
                "programme": null
            },
            {
                "id": 436127,
                "programme_id": null,
                "commune_id": 11566,
                "client_id": 2202,
                "type": "MAISON ANCIEN",
                "external_reference": "22322_30477",
                "slugged_external_reference": "22322-30477",
                "email_contact_additionnel": null,
                "external_code_postal": "30100",
                "adresse": null,
                "proximite": null,
                "libelle": "Maison",
                "description": "ALES, A 10 minutes de tout commerces, maison de 151 m² avec terrain de 843 m² clôturé et arboré. Dans un quartier calme . Au rez de chaussée, une chambre avec salle d'eau attenante, un bureau, une salle de jeux, un double garage, une chaufferie et une cuisine d'été. A l'étage, un salon salle à manger avec cheminée ouverte, une cuisine  donnant sur une terrasse, trois chambres avec placards, une salle de bains, un toilette. Double vitrage. A voir...\nRéf 30477  Prix 284 0  25\nAgent Mandataire Indépendant\nRCS de Nîmes (30), n°832 122 824\nLCDI Réseau National Immobilier\nVous souhaitez être rappelé plus tard pour ce bien ?,\nEnvoyez : \"RAPPEL réf 3  59 25\nHonoraires à la charge du vendeur",
                "avant_premiere": 0,
                "exclusivite": null,
                "priorite_visibilite": 0,
                "surface": 151,
                "surface_maison": null,
                "surface_terrain": 843,
                "surface_habitable": 151,
                "surface_sejour": 37,
                "prix": 284000,
                "prix_maison": 284000,
                "prix_terrain": null,
                "nbr_piece": 5,
                "etage": null,
                "terrasse": null,
                "nbr_balcon": null,
                "surface_balcon": null,
                "nbr_etage": null,
                "ascenseur": null,
                "cave": null,
                "nbr_parking": null,
                "nbr_boxe": null,
                "nbr_chambre": 4,
                "nbr_chambre_rdc": 1,
                "nbr_sdb": 1,
                "type_cuisine": 11,
                "type_chauffage": 8704,
                "type_eau_chaude": null,
                "alarme": null,
                "piscine": null,
                "interphone": null,
                "etat_interieur": null,
                "date_dispo": null,
                "conso_energie": "139",
                "bilan_conso_energie": "C",
                "emission_ges": "32",
                "bilan_emission_ges": "D",
                "annee_construction": null,
                "loyer_mois": null,
                "loyer_mois_charges_comprises": null,
                "charges_mois": null,
                "droit_au_bail": null,
                "taxe_fonciere": null,
                "sous_type_bien": 270,
                "create_batch_id": 3006,
                "update_batch_id": null,
                "remove_batch_id": null,
                "lastseen_batch_id": 3006,
                "source": null,
                "from_website": null,
                "published": 1,
                "moderated": 0,
                "published_at": "2021-02-01T09:31:06.000000Z",
                "created_at": "2021-02-01T09:31:03.000000Z",
                "updated_at": "2021-02-01T09:31:06.000000Z",
                "deleted_at": null,
                "commune": {
                    "id": 11566,
                    "departement_id": 32,
                    "nom": "ALES",
                    "insee": "30007",
                    "nom_special": "Alès",
                    "nom_recherche": "ALES",
                    "prefixe_nom_special": "",
                    "population": 41037,
                    "actif": 1,
                    "zone_id": null,
                    "longitude": 4.079023,
                    "latitude": 44.127402,
                    "centre": {
                        "type": "Point",
                        "coordinates": [
                            4.079023,
                            44.127402
                        ]
                    },
                    "created_at": null,
                    "updated_at": "2021-02-08T16:49:50.000000Z",
                    "deleted_at": null,
                    "departement": {
                        "id": 32,
                        "region_id": 20,
                        "nom": "GARD",
                        "code": "30",
                        "created_at": "2017-08-31T08:35:14.000000Z",
                        "updated_at": "2017-08-31T08:35:14.000000Z",
                        "deleted_at": null,
                        "region": {
                            "id": 20,
                            "pays_id": 1,
                            "nom": "Languedoc-Roussillon",
                            "created_at": "2017-08-31T08:35:14.000000Z",
                            "updated_at": "2017-08-31T08:35:14.000000Z",
                            "deleted_at": null
                        }
                    }
                },
                "programme": null
            }
        ],
        "first_page_url": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annonce\/search\/client?page=1",
        "from": 3,
        "last_page": 16,
        "last_page_url": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annonce\/search\/client?page=16",
        "next_page_url": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annonce\/search\/client?page=3",
        "path": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annonce\/search\/client",
        "per_page": 2,
        "prev_page_url": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annonce\/search\/client?page=1",
        "to": 4,
        "total": 32
    }
}

Request   

POST api/v2/annonce/search/region

Body Parameters

website  string  
Website Code(ACdev, TC, etc...)

range  integer optional  
default is 0

paginate  integer optional  
default is 10

order_on  string optional  
Order column, default is updated_at is 10

order_dir  string optional  
Order Direction, ASC or DESC

max_price  integer optional  

room  integer optional  

type_annonce  string  
Values who can be separated by commas See [Additional Datas / Type values](#annonce-type-values).

consultation  required optional  
integer 1=>true, 0=>false

ip  string optional  
re-searcher ip.

client_vars  text optional  
Serialization of $_SERVER.

region  string  
Region IDS

country  string optional  
default is "fr"

page  integer optional  
Page

client_id  integer optional  
Client id.

Search by Client

Example request:

curl -X POST \
    "https://dashboard-preprod.appartement-construction.com/api/v2/annonce/search/client" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"website":"TC","range":10,"paginate":15,"order_on":"id","order_dir":"DESC","max_price":10000,"room":2,"type_annonce":"'APPARTEMENT NEUF, MAISON NEUF'","consultation":"1","ip":"88.12.14.134","client_vars":"a:50:{s:21:\"PHP_FCGI_MAX_REQUESTS\";s:4:\"5000\";s:5:\"PHPRC\";s:18:\"\/var\/www\/conf\/web3\";s:3:\"PWD\";s:30:\"\/var\/www\/php-fcgi-scripts\/web3\"...","client":"01","country":"fr","page":1,"client_id":12}'
const url = new URL(
    "https://dashboard-preprod.appartement-construction.com/api/v2/annonce/search/client"
);

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

let body = {
    "website": "TC",
    "range": 10,
    "paginate": 15,
    "order_on": "id",
    "order_dir": "DESC",
    "max_price": 10000,
    "room": 2,
    "type_annonce": "'APPARTEMENT NEUF, MAISON NEUF'",
    "consultation": "1",
    "ip": "88.12.14.134",
    "client_vars": "a:50:{s:21:\"PHP_FCGI_MAX_REQUESTS\";s:4:\"5000\";s:5:\"PHPRC\";s:18:\"\/var\/www\/conf\/web3\";s:3:\"PWD\";s:30:\"\/var\/www\/php-fcgi-scripts\/web3\"...",
    "client": "01",
    "country": "fr",
    "page": 1,
    "client_id": 12
}

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

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://dashboard-preprod.appartement-construction.com/api/v2/annonce/search/client',
    [
        'headers' => [
            'Accept' => 'application/json',
        ],
        'json' => [
            'website' => 'TC',
            'range' => 10,
            'paginate' => 15,
            'order_on' => 'id',
            'order_dir' => 'DESC',
            'max_price' => 10000,
            'room' => 2,
            'type_annonce' => '\'APPARTEMENT NEUF, MAISON NEUF\'',
            'consultation' => '1',
            'ip' => '88.12.14.134',
            'client_vars' => 'a:50:{s:21:"PHP_FCGI_MAX_REQUESTS";s:4:"5000";s:5:"PHPRC";s:18:"/var/www/conf/web3";s:3:"PWD";s:30:"/var/www/php-fcgi-scripts/web3"...',
            'client' => '01',
            'country' => 'fr',
            'page' => 1,
            'client_id' => 12,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dashboard-preprod.appartement-construction.com/api/v2/annonce/search/client'
payload = {
    "website": "TC",
    "range": 10,
    "paginate": 15,
    "order_on": "id",
    "order_dir": "DESC",
    "max_price": 10000,
    "room": 2,
    "type_annonce": "'APPARTEMENT NEUF, MAISON NEUF'",
    "consultation": "1",
    "ip": "88.12.14.134",
    "client_vars": "a:50:{s:21:\"PHP_FCGI_MAX_REQUESTS\";s:4:\"5000\";s:5:\"PHPRC\";s:18:\"\/var\/www\/conf\/web3\";s:3:\"PWD\";s:30:\"\/var\/www\/php-fcgi-scripts\/web3\"...",
    "client": "01",
    "country": "fr",
    "page": 1,
    "client_id": 12
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (400):

{
    "code": 400,
    "status": "error",
    "message": {
        "type_annonce": [
            "Le champ type annonce est obligatoire."
        ]
    }
}

Example response (200):

{
    "code": 200,
    "status": "ok",
    "data": {
        "current_page": 2,
        "data": [
            {
                "id": 436126,
                "programme_id": null,
                "commune_id": 17425,
                "client_id": 2202,
                "type": "MAISON ANCIEN",
                "external_reference": "21210_30495",
                "slugged_external_reference": "21210-30495",
                "email_contact_additionnel": null,
                "external_code_postal": "45130",
                "adresse": null,
                "proximite": null,
                "libelle": "Maison",
                "description": "MEUNG-SUR-LOIRE, Maison sur sous sol, offrant pièce de vie avec cheminée à foyer ouvert, une cuisine indépendante, 3 chambres, laissant encore du potentiel à exploiter. Travaux de maçonnerie à prévoir. A 1,5 kilomètres de la gare et 2 kilomètres de l'autoroute...\nRéf 30495 Prix 164 3   7\nLCDI Réseau National Immobilier\nVous souhaitez être rappelé plus tard pour ce bien ?,\nEnvoyez : \"RAPPEL réf 3  70 40\nHonoraires à la charge de l'acquéreur",
                "avant_premiere": 0,
                "exclusivite": null,
                "priorite_visibilite": 0,
                "surface": 140,
                "surface_maison": null,
                "surface_terrain": 1500,
                "surface_habitable": 140,
                "surface_sejour": 40,
                "prix": 164300,
                "prix_maison": 164300,
                "prix_terrain": null,
                "nbr_piece": 4,
                "etage": null,
                "terrasse": null,
                "nbr_balcon": null,
                "surface_balcon": null,
                "nbr_etage": null,
                "ascenseur": null,
                "cave": null,
                "nbr_parking": null,
                "nbr_boxe": null,
                "nbr_chambre": 3,
                "nbr_chambre_rdc": null,
                "nbr_sdb": 1,
                "type_cuisine": 11,
                "type_chauffage": 8200,
                "type_eau_chaude": null,
                "alarme": null,
                "piscine": null,
                "interphone": null,
                "etat_interieur": null,
                "date_dispo": null,
                "conso_energie": null,
                "bilan_conso_energie": null,
                "emission_ges": null,
                "bilan_emission_ges": null,
                "annee_construction": null,
                "loyer_mois": null,
                "loyer_mois_charges_comprises": null,
                "charges_mois": null,
                "droit_au_bail": null,
                "taxe_fonciere": null,
                "sous_type_bien": 270,
                "create_batch_id": 3006,
                "update_batch_id": null,
                "remove_batch_id": null,
                "lastseen_batch_id": 3006,
                "source": null,
                "from_website": null,
                "published": 1,
                "moderated": 0,
                "published_at": "2021-02-01T09:31:06.000000Z",
                "created_at": "2021-02-01T09:31:03.000000Z",
                "updated_at": "2021-02-01T09:31:06.000000Z",
                "deleted_at": null,
                "commune": {
                    "id": 17425,
                    "departement_id": 47,
                    "nom": "MEUNG SUR LOIRE",
                    "insee": "45203",
                    "nom_special": "Meung-sur-Loire",
                    "nom_recherche": "MEUNGSURLOIRE",
                    "prefixe_nom_special": "",
                    "population": 5993,
                    "actif": 1,
                    "zone_id": null,
                    "longitude": 1.695017,
                    "latitude": 47.82795,
                    "centre": {
                        "type": "Point",
                        "coordinates": [
                            1.695017,
                            47.82795
                        ]
                    },
                    "created_at": null,
                    "updated_at": "2021-02-08T16:50:00.000000Z",
                    "deleted_at": null,
                    "departement": {
                        "id": 47,
                        "region_id": 14,
                        "nom": "LOIRET",
                        "code": "45",
                        "created_at": "2017-08-31T08:35:14.000000Z",
                        "updated_at": "2017-08-31T08:35:14.000000Z",
                        "deleted_at": null,
                        "region": {
                            "id": 14,
                            "pays_id": 1,
                            "nom": "Centre",
                            "created_at": "2017-08-31T08:35:14.000000Z",
                            "updated_at": "2017-08-31T08:35:14.000000Z",
                            "deleted_at": null
                        }
                    }
                },
                "programme": null
            },
            {
                "id": 436127,
                "programme_id": null,
                "commune_id": 11566,
                "client_id": 2202,
                "type": "MAISON ANCIEN",
                "external_reference": "22322_30477",
                "slugged_external_reference": "22322-30477",
                "email_contact_additionnel": null,
                "external_code_postal": "30100",
                "adresse": null,
                "proximite": null,
                "libelle": "Maison",
                "description": "ALES, A 10 minutes de tout commerces, maison de 151 m² avec terrain de 843 m² clôturé et arboré. Dans un quartier calme . Au rez de chaussée, une chambre avec salle d'eau attenante, un bureau, une salle de jeux, un double garage, une chaufferie et une cuisine d'été. A l'étage, un salon salle à manger avec cheminée ouverte, une cuisine  donnant sur une terrasse, trois chambres avec placards, une salle de bains, un toilette. Double vitrage. A voir...\nRéf 30477  Prix 284 0  25\nAgent Mandataire Indépendant\nRCS de Nîmes (30), n°832 122 824\nLCDI Réseau National Immobilier\nVous souhaitez être rappelé plus tard pour ce bien ?,\nEnvoyez : \"RAPPEL réf 3  59 25\nHonoraires à la charge du vendeur",
                "avant_premiere": 0,
                "exclusivite": null,
                "priorite_visibilite": 0,
                "surface": 151,
                "surface_maison": null,
                "surface_terrain": 843,
                "surface_habitable": 151,
                "surface_sejour": 37,
                "prix": 284000,
                "prix_maison": 284000,
                "prix_terrain": null,
                "nbr_piece": 5,
                "etage": null,
                "terrasse": null,
                "nbr_balcon": null,
                "surface_balcon": null,
                "nbr_etage": null,
                "ascenseur": null,
                "cave": null,
                "nbr_parking": null,
                "nbr_boxe": null,
                "nbr_chambre": 4,
                "nbr_chambre_rdc": 1,
                "nbr_sdb": 1,
                "type_cuisine": 11,
                "type_chauffage": 8704,
                "type_eau_chaude": null,
                "alarme": null,
                "piscine": null,
                "interphone": null,
                "etat_interieur": null,
                "date_dispo": null,
                "conso_energie": "139",
                "bilan_conso_energie": "C",
                "emission_ges": "32",
                "bilan_emission_ges": "D",
                "annee_construction": null,
                "loyer_mois": null,
                "loyer_mois_charges_comprises": null,
                "charges_mois": null,
                "droit_au_bail": null,
                "taxe_fonciere": null,
                "sous_type_bien": 270,
                "create_batch_id": 3006,
                "update_batch_id": null,
                "remove_batch_id": null,
                "lastseen_batch_id": 3006,
                "source": null,
                "from_website": null,
                "published": 1,
                "moderated": 0,
                "published_at": "2021-02-01T09:31:06.000000Z",
                "created_at": "2021-02-01T09:31:03.000000Z",
                "updated_at": "2021-02-01T09:31:06.000000Z",
                "deleted_at": null,
                "commune": {
                    "id": 11566,
                    "departement_id": 32,
                    "nom": "ALES",
                    "insee": "30007",
                    "nom_special": "Alès",
                    "nom_recherche": "ALES",
                    "prefixe_nom_special": "",
                    "population": 41037,
                    "actif": 1,
                    "zone_id": null,
                    "longitude": 4.079023,
                    "latitude": 44.127402,
                    "centre": {
                        "type": "Point",
                        "coordinates": [
                            4.079023,
                            44.127402
                        ]
                    },
                    "created_at": null,
                    "updated_at": "2021-02-08T16:49:50.000000Z",
                    "deleted_at": null,
                    "departement": {
                        "id": 32,
                        "region_id": 20,
                        "nom": "GARD",
                        "code": "30",
                        "created_at": "2017-08-31T08:35:14.000000Z",
                        "updated_at": "2017-08-31T08:35:14.000000Z",
                        "deleted_at": null,
                        "region": {
                            "id": 20,
                            "pays_id": 1,
                            "nom": "Languedoc-Roussillon",
                            "created_at": "2017-08-31T08:35:14.000000Z",
                            "updated_at": "2017-08-31T08:35:14.000000Z",
                            "deleted_at": null
                        }
                    }
                },
                "programme": null
            }
        ],
        "first_page_url": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annonce\/search\/client?page=1",
        "from": 3,
        "last_page": 16,
        "last_page_url": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annonce\/search\/client?page=16",
        "next_page_url": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annonce\/search\/client?page=3",
        "path": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annonce\/search\/client",
        "per_page": 2,
        "prev_page_url": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annonce\/search\/client?page=1",
        "to": 4,
        "total": 32
    }
}

Request   

POST api/v2/annonce/search/client

Body Parameters

website  string  
Website Code(ACdev, TC, etc...)

range  integer optional  
default is 0

paginate  integer optional  
default is 10

order_on  string optional  
Order column, default is updated_at is 10

order_dir  string optional  
Order Direction, ASC or DESC

max_price  integer optional  

room  integer optional  

type_annonce  string  
Values who can be separated by commas See [Additional Datas / Type values](#annonce-type-values).

consultation  required optional  
integer 1=>true, 0=>false

ip  string optional  
re-searcher ip.

client_vars  text optional  
Serialization of $_SERVER.

client  string  
Clients ID

country  string optional  
default is "fr"

page  integer optional  
Page

client_id  integer optional  
Client id.

Search by Client

Example request:

curl -X POST \
    "https://dashboard-preprod.appartement-construction.com/api/v2/annonce/search/client-api" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"website":"TC","range":10,"paginate":15,"order_on":"id","order_dir":"DESC","max_price":10000,"room":2,"type_annonce":"'APPARTEMENT NEUF, MAISON NEUF'","consultation":"1","ip":"88.12.14.134","client_vars":"a:50:{s:21:\"PHP_FCGI_MAX_REQUESTS\";s:4:\"5000\";s:5:\"PHPRC\";s:18:\"\/var\/www\/conf\/web3\";s:3:\"PWD\";s:30:\"\/var\/www\/php-fcgi-scripts\/web3\"...","client":"01","country":"fr","page":1,"client_id":12}'
const url = new URL(
    "https://dashboard-preprod.appartement-construction.com/api/v2/annonce/search/client-api"
);

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

let body = {
    "website": "TC",
    "range": 10,
    "paginate": 15,
    "order_on": "id",
    "order_dir": "DESC",
    "max_price": 10000,
    "room": 2,
    "type_annonce": "'APPARTEMENT NEUF, MAISON NEUF'",
    "consultation": "1",
    "ip": "88.12.14.134",
    "client_vars": "a:50:{s:21:\"PHP_FCGI_MAX_REQUESTS\";s:4:\"5000\";s:5:\"PHPRC\";s:18:\"\/var\/www\/conf\/web3\";s:3:\"PWD\";s:30:\"\/var\/www\/php-fcgi-scripts\/web3\"...",
    "client": "01",
    "country": "fr",
    "page": 1,
    "client_id": 12
}

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

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://dashboard-preprod.appartement-construction.com/api/v2/annonce/search/client-api',
    [
        'headers' => [
            'Accept' => 'application/json',
        ],
        'json' => [
            'website' => 'TC',
            'range' => 10,
            'paginate' => 15,
            'order_on' => 'id',
            'order_dir' => 'DESC',
            'max_price' => 10000,
            'room' => 2,
            'type_annonce' => '\'APPARTEMENT NEUF, MAISON NEUF\'',
            'consultation' => '1',
            'ip' => '88.12.14.134',
            'client_vars' => 'a:50:{s:21:"PHP_FCGI_MAX_REQUESTS";s:4:"5000";s:5:"PHPRC";s:18:"/var/www/conf/web3";s:3:"PWD";s:30:"/var/www/php-fcgi-scripts/web3"...',
            'client' => '01',
            'country' => 'fr',
            'page' => 1,
            'client_id' => 12,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dashboard-preprod.appartement-construction.com/api/v2/annonce/search/client-api'
payload = {
    "website": "TC",
    "range": 10,
    "paginate": 15,
    "order_on": "id",
    "order_dir": "DESC",
    "max_price": 10000,
    "room": 2,
    "type_annonce": "'APPARTEMENT NEUF, MAISON NEUF'",
    "consultation": "1",
    "ip": "88.12.14.134",
    "client_vars": "a:50:{s:21:\"PHP_FCGI_MAX_REQUESTS\";s:4:\"5000\";s:5:\"PHPRC\";s:18:\"\/var\/www\/conf\/web3\";s:3:\"PWD\";s:30:\"\/var\/www\/php-fcgi-scripts\/web3\"...",
    "client": "01",
    "country": "fr",
    "page": 1,
    "client_id": 12
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (400):

{
    "code": 400,
    "status": "error",
    "message": {
        "type_annonce": [
            "Le champ type annonce est obligatoire."
        ]
    }
}

Example response (200):

{
    "code": 200,
    "status": "ok",
    "data": {
        "current_page": 2,
        "data": [
            {
                "id": 436126,
                "programme_id": null,
                "commune_id": 17425,
                "client_id": 2202,
                "type": "MAISON ANCIEN",
                "external_reference": "21210_30495",
                "slugged_external_reference": "21210-30495",
                "email_contact_additionnel": null,
                "external_code_postal": "45130",
                "adresse": null,
                "proximite": null,
                "libelle": "Maison",
                "description": "MEUNG-SUR-LOIRE, Maison sur sous sol, offrant pièce de vie avec cheminée à foyer ouvert, une cuisine indépendante, 3 chambres, laissant encore du potentiel à exploiter. Travaux de maçonnerie à prévoir. A 1,5 kilomètres de la gare et 2 kilomètres de l'autoroute...\nRéf 30495 Prix 164 3   7\nLCDI Réseau National Immobilier\nVous souhaitez être rappelé plus tard pour ce bien ?,\nEnvoyez : \"RAPPEL réf 3  70 40\nHonoraires à la charge de l'acquéreur",
                "avant_premiere": 0,
                "exclusivite": null,
                "priorite_visibilite": 0,
                "surface": 140,
                "surface_maison": null,
                "surface_terrain": 1500,
                "surface_habitable": 140,
                "surface_sejour": 40,
                "prix": 164300,
                "prix_maison": 164300,
                "prix_terrain": null,
                "nbr_piece": 4,
                "etage": null,
                "terrasse": null,
                "nbr_balcon": null,
                "surface_balcon": null,
                "nbr_etage": null,
                "ascenseur": null,
                "cave": null,
                "nbr_parking": null,
                "nbr_boxe": null,
                "nbr_chambre": 3,
                "nbr_chambre_rdc": null,
                "nbr_sdb": 1,
                "type_cuisine": 11,
                "type_chauffage": 8200,
                "type_eau_chaude": null,
                "alarme": null,
                "piscine": null,
                "interphone": null,
                "etat_interieur": null,
                "date_dispo": null,
                "conso_energie": null,
                "bilan_conso_energie": null,
                "emission_ges": null,
                "bilan_emission_ges": null,
                "annee_construction": null,
                "loyer_mois": null,
                "loyer_mois_charges_comprises": null,
                "charges_mois": null,
                "droit_au_bail": null,
                "taxe_fonciere": null,
                "sous_type_bien": 270,
                "create_batch_id": 3006,
                "update_batch_id": null,
                "remove_batch_id": null,
                "lastseen_batch_id": 3006,
                "source": null,
                "from_website": null,
                "published": 1,
                "moderated": 0,
                "published_at": "2021-02-01T09:31:06.000000Z",
                "created_at": "2021-02-01T09:31:03.000000Z",
                "updated_at": "2021-02-01T09:31:06.000000Z",
                "deleted_at": null,
                "commune": {
                    "id": 17425,
                    "departement_id": 47,
                    "nom": "MEUNG SUR LOIRE",
                    "insee": "45203",
                    "nom_special": "Meung-sur-Loire",
                    "nom_recherche": "MEUNGSURLOIRE",
                    "prefixe_nom_special": "",
                    "population": 5993,
                    "actif": 1,
                    "zone_id": null,
                    "longitude": 1.695017,
                    "latitude": 47.82795,
                    "centre": {
                        "type": "Point",
                        "coordinates": [
                            1.695017,
                            47.82795
                        ]
                    },
                    "created_at": null,
                    "updated_at": "2021-02-08T16:50:00.000000Z",
                    "deleted_at": null,
                    "departement": {
                        "id": 47,
                        "region_id": 14,
                        "nom": "LOIRET",
                        "code": "45",
                        "created_at": "2017-08-31T08:35:14.000000Z",
                        "updated_at": "2017-08-31T08:35:14.000000Z",
                        "deleted_at": null,
                        "region": {
                            "id": 14,
                            "pays_id": 1,
                            "nom": "Centre",
                            "created_at": "2017-08-31T08:35:14.000000Z",
                            "updated_at": "2017-08-31T08:35:14.000000Z",
                            "deleted_at": null
                        }
                    }
                },
                "programme": null
            },
            {
                "id": 436127,
                "programme_id": null,
                "commune_id": 11566,
                "client_id": 2202,
                "type": "MAISON ANCIEN",
                "external_reference": "22322_30477",
                "slugged_external_reference": "22322-30477",
                "email_contact_additionnel": null,
                "external_code_postal": "30100",
                "adresse": null,
                "proximite": null,
                "libelle": "Maison",
                "description": "ALES, A 10 minutes de tout commerces, maison de 151 m² avec terrain de 843 m² clôturé et arboré. Dans un quartier calme . Au rez de chaussée, une chambre avec salle d'eau attenante, un bureau, une salle de jeux, un double garage, une chaufferie et une cuisine d'été. A l'étage, un salon salle à manger avec cheminée ouverte, une cuisine  donnant sur une terrasse, trois chambres avec placards, une salle de bains, un toilette. Double vitrage. A voir...\nRéf 30477  Prix 284 0  25\nAgent Mandataire Indépendant\nRCS de Nîmes (30), n°832 122 824\nLCDI Réseau National Immobilier\nVous souhaitez être rappelé plus tard pour ce bien ?,\nEnvoyez : \"RAPPEL réf 3  59 25\nHonoraires à la charge du vendeur",
                "avant_premiere": 0,
                "exclusivite": null,
                "priorite_visibilite": 0,
                "surface": 151,
                "surface_maison": null,
                "surface_terrain": 843,
                "surface_habitable": 151,
                "surface_sejour": 37,
                "prix": 284000,
                "prix_maison": 284000,
                "prix_terrain": null,
                "nbr_piece": 5,
                "etage": null,
                "terrasse": null,
                "nbr_balcon": null,
                "surface_balcon": null,
                "nbr_etage": null,
                "ascenseur": null,
                "cave": null,
                "nbr_parking": null,
                "nbr_boxe": null,
                "nbr_chambre": 4,
                "nbr_chambre_rdc": 1,
                "nbr_sdb": 1,
                "type_cuisine": 11,
                "type_chauffage": 8704,
                "type_eau_chaude": null,
                "alarme": null,
                "piscine": null,
                "interphone": null,
                "etat_interieur": null,
                "date_dispo": null,
                "conso_energie": "139",
                "bilan_conso_energie": "C",
                "emission_ges": "32",
                "bilan_emission_ges": "D",
                "annee_construction": null,
                "loyer_mois": null,
                "loyer_mois_charges_comprises": null,
                "charges_mois": null,
                "droit_au_bail": null,
                "taxe_fonciere": null,
                "sous_type_bien": 270,
                "create_batch_id": 3006,
                "update_batch_id": null,
                "remove_batch_id": null,
                "lastseen_batch_id": 3006,
                "source": null,
                "from_website": null,
                "published": 1,
                "moderated": 0,
                "published_at": "2021-02-01T09:31:06.000000Z",
                "created_at": "2021-02-01T09:31:03.000000Z",
                "updated_at": "2021-02-01T09:31:06.000000Z",
                "deleted_at": null,
                "commune": {
                    "id": 11566,
                    "departement_id": 32,
                    "nom": "ALES",
                    "insee": "30007",
                    "nom_special": "Alès",
                    "nom_recherche": "ALES",
                    "prefixe_nom_special": "",
                    "population": 41037,
                    "actif": 1,
                    "zone_id": null,
                    "longitude": 4.079023,
                    "latitude": 44.127402,
                    "centre": {
                        "type": "Point",
                        "coordinates": [
                            4.079023,
                            44.127402
                        ]
                    },
                    "created_at": null,
                    "updated_at": "2021-02-08T16:49:50.000000Z",
                    "deleted_at": null,
                    "departement": {
                        "id": 32,
                        "region_id": 20,
                        "nom": "GARD",
                        "code": "30",
                        "created_at": "2017-08-31T08:35:14.000000Z",
                        "updated_at": "2017-08-31T08:35:14.000000Z",
                        "deleted_at": null,
                        "region": {
                            "id": 20,
                            "pays_id": 1,
                            "nom": "Languedoc-Roussillon",
                            "created_at": "2017-08-31T08:35:14.000000Z",
                            "updated_at": "2017-08-31T08:35:14.000000Z",
                            "deleted_at": null
                        }
                    }
                },
                "programme": null
            }
        ],
        "first_page_url": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annonce\/search\/client?page=1",
        "from": 3,
        "last_page": 16,
        "last_page_url": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annonce\/search\/client?page=16",
        "next_page_url": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annonce\/search\/client?page=3",
        "path": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annonce\/search\/client",
        "per_page": 2,
        "prev_page_url": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annonce\/search\/client?page=1",
        "to": 4,
        "total": 32
    }
}

Request   

POST api/v2/annonce/search/client-api

Body Parameters

website  string  
Website Code(ACdev, TC, etc...)

range  integer optional  
default is 0

paginate  integer optional  
default is 10

order_on  string optional  
Order column, default is updated_at is 10

order_dir  string optional  
Order Direction, ASC or DESC

max_price  integer optional  

room  integer optional  

type_annonce  string  
Values who can be separated by commas See [Additional Datas / Type values](#annonce-type-values).

consultation  required optional  
integer 1=>true, 0=>false

ip  string optional  
re-searcher ip.

client_vars  text optional  
Serialization of $_SERVER.

client  string  
Clients ID

country  string optional  
default is "fr"

page  integer optional  
Page

client_id  integer optional  
Client id.

Search by Programme

Example request:

curl -X POST \
    "https://dashboard-preprod.appartement-construction.com/api/v2/annonce/search/programme" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"website":"TC","programme":"1,25,47","consultation":1,"type_annonce":"'APPARTEMENT NEUF, MAISON NEUF'","range":10,"paginate":15,"order_on":"id","order_dir":"DESC","max_price":10000,"room":2,"ip":"88.12.14.134","client_vars":"a:50:{s:21:\"PHP_FCGI_MAX_REQUESTS\";s:4:\"5000\";s:5:\"PHPRC\";s:18:\"\/var\/www\/conf\/web3\";s:3:\"PWD\";s:30:\"\/var\/www\/php-fcgi-scripts\/web3\"...","country":"fr","page":1,"client_id":12}'
const url = new URL(
    "https://dashboard-preprod.appartement-construction.com/api/v2/annonce/search/programme"
);

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

let body = {
    "website": "TC",
    "programme": "1,25,47",
    "consultation": 1,
    "type_annonce": "'APPARTEMENT NEUF, MAISON NEUF'",
    "range": 10,
    "paginate": 15,
    "order_on": "id",
    "order_dir": "DESC",
    "max_price": 10000,
    "room": 2,
    "ip": "88.12.14.134",
    "client_vars": "a:50:{s:21:\"PHP_FCGI_MAX_REQUESTS\";s:4:\"5000\";s:5:\"PHPRC\";s:18:\"\/var\/www\/conf\/web3\";s:3:\"PWD\";s:30:\"\/var\/www\/php-fcgi-scripts\/web3\"...",
    "country": "fr",
    "page": 1,
    "client_id": 12
}

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

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://dashboard-preprod.appartement-construction.com/api/v2/annonce/search/programme',
    [
        'headers' => [
            'Accept' => 'application/json',
        ],
        'json' => [
            'website' => 'TC',
            'programme' => '1,25,47',
            'consultation' => 1,
            'type_annonce' => '\'APPARTEMENT NEUF, MAISON NEUF\'',
            'range' => 10,
            'paginate' => 15,
            'order_on' => 'id',
            'order_dir' => 'DESC',
            'max_price' => 10000,
            'room' => 2,
            'ip' => '88.12.14.134',
            'client_vars' => 'a:50:{s:21:"PHP_FCGI_MAX_REQUESTS";s:4:"5000";s:5:"PHPRC";s:18:"/var/www/conf/web3";s:3:"PWD";s:30:"/var/www/php-fcgi-scripts/web3"...',
            'country' => 'fr',
            'page' => 1,
            'client_id' => 12,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dashboard-preprod.appartement-construction.com/api/v2/annonce/search/programme'
payload = {
    "website": "TC",
    "programme": "1,25,47",
    "consultation": 1,
    "type_annonce": "'APPARTEMENT NEUF, MAISON NEUF'",
    "range": 10,
    "paginate": 15,
    "order_on": "id",
    "order_dir": "DESC",
    "max_price": 10000,
    "room": 2,
    "ip": "88.12.14.134",
    "client_vars": "a:50:{s:21:\"PHP_FCGI_MAX_REQUESTS\";s:4:\"5000\";s:5:\"PHPRC\";s:18:\"\/var\/www\/conf\/web3\";s:3:\"PWD\";s:30:\"\/var\/www\/php-fcgi-scripts\/web3\"...",
    "country": "fr",
    "page": 1,
    "client_id": 12
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (400):

{
    "code": 400,
    "status": "error",
    "message": {
        "type_annonce": [
            "Le champ type annonce est obligatoire."
        ]
    }
}

Example response (200):

{
    "code": 200,
    "status": "ok",
    "data": {
        "current_page": 2,
        "data": [
            {
                "id": 436126,
                "programme_id": null,
                "commune_id": 17425,
                "client_id": 2202,
                "type": "MAISON ANCIEN",
                "external_reference": "21210_30495",
                "slugged_external_reference": "21210-30495",
                "email_contact_additionnel": null,
                "external_code_postal": "45130",
                "adresse": null,
                "proximite": null,
                "libelle": "Maison",
                "description": "MEUNG-SUR-LOIRE, Maison sur sous sol, offrant pièce de vie avec cheminée à foyer ouvert, une cuisine indépendante, 3 chambres, laissant encore du potentiel à exploiter. Travaux de maçonnerie à prévoir. A 1,5 kilomètres de la gare et 2 kilomètres de l'autoroute...\nRéf 30495 Prix 164 3   7\nLCDI Réseau National Immobilier\nVous souhaitez être rappelé plus tard pour ce bien ?,\nEnvoyez : \"RAPPEL réf 3  70 40\nHonoraires à la charge de l'acquéreur",
                "avant_premiere": 0,
                "exclusivite": null,
                "priorite_visibilite": 0,
                "surface": 140,
                "surface_maison": null,
                "surface_terrain": 1500,
                "surface_habitable": 140,
                "surface_sejour": 40,
                "prix": 164300,
                "prix_maison": 164300,
                "prix_terrain": null,
                "nbr_piece": 4,
                "etage": null,
                "terrasse": null,
                "nbr_balcon": null,
                "surface_balcon": null,
                "nbr_etage": null,
                "ascenseur": null,
                "cave": null,
                "nbr_parking": null,
                "nbr_boxe": null,
                "nbr_chambre": 3,
                "nbr_chambre_rdc": null,
                "nbr_sdb": 1,
                "type_cuisine": 11,
                "type_chauffage": 8200,
                "type_eau_chaude": null,
                "alarme": null,
                "piscine": null,
                "interphone": null,
                "etat_interieur": null,
                "date_dispo": null,
                "conso_energie": null,
                "bilan_conso_energie": null,
                "emission_ges": null,
                "bilan_emission_ges": null,
                "annee_construction": null,
                "loyer_mois": null,
                "loyer_mois_charges_comprises": null,
                "charges_mois": null,
                "droit_au_bail": null,
                "taxe_fonciere": null,
                "sous_type_bien": 270,
                "create_batch_id": 3006,
                "update_batch_id": null,
                "remove_batch_id": null,
                "lastseen_batch_id": 3006,
                "source": null,
                "from_website": null,
                "published": 1,
                "moderated": 0,
                "published_at": "2021-02-01T09:31:06.000000Z",
                "created_at": "2021-02-01T09:31:03.000000Z",
                "updated_at": "2021-02-01T09:31:06.000000Z",
                "deleted_at": null,
                "commune": {
                    "id": 17425,
                    "departement_id": 47,
                    "nom": "MEUNG SUR LOIRE",
                    "insee": "45203",
                    "nom_special": "Meung-sur-Loire",
                    "nom_recherche": "MEUNGSURLOIRE",
                    "prefixe_nom_special": "",
                    "population": 5993,
                    "actif": 1,
                    "zone_id": null,
                    "longitude": 1.695017,
                    "latitude": 47.82795,
                    "centre": {
                        "type": "Point",
                        "coordinates": [
                            1.695017,
                            47.82795
                        ]
                    },
                    "created_at": null,
                    "updated_at": "2021-02-08T16:50:00.000000Z",
                    "deleted_at": null,
                    "departement": {
                        "id": 47,
                        "region_id": 14,
                        "nom": "LOIRET",
                        "code": "45",
                        "created_at": "2017-08-31T08:35:14.000000Z",
                        "updated_at": "2017-08-31T08:35:14.000000Z",
                        "deleted_at": null,
                        "region": {
                            "id": 14,
                            "pays_id": 1,
                            "nom": "Centre",
                            "created_at": "2017-08-31T08:35:14.000000Z",
                            "updated_at": "2017-08-31T08:35:14.000000Z",
                            "deleted_at": null
                        }
                    }
                },
                "programme": null
            },
            {
                "id": 436127,
                "programme_id": null,
                "commune_id": 11566,
                "client_id": 2202,
                "type": "MAISON ANCIEN",
                "external_reference": "22322_30477",
                "slugged_external_reference": "22322-30477",
                "email_contact_additionnel": null,
                "external_code_postal": "30100",
                "adresse": null,
                "proximite": null,
                "libelle": "Maison",
                "description": "ALES, A 10 minutes de tout commerces, maison de 151 m² avec terrain de 843 m² clôturé et arboré. Dans un quartier calme . Au rez de chaussée, une chambre avec salle d'eau attenante, un bureau, une salle de jeux, un double garage, une chaufferie et une cuisine d'été. A l'étage, un salon salle à manger avec cheminée ouverte, une cuisine  donnant sur une terrasse, trois chambres avec placards, une salle de bains, un toilette. Double vitrage. A voir...\nRéf 30477  Prix 284 0  25\nAgent Mandataire Indépendant\nRCS de Nîmes (30), n°832 122 824\nLCDI Réseau National Immobilier\nVous souhaitez être rappelé plus tard pour ce bien ?,\nEnvoyez : \"RAPPEL réf 3  59 25\nHonoraires à la charge du vendeur",
                "avant_premiere": 0,
                "exclusivite": null,
                "priorite_visibilite": 0,
                "surface": 151,
                "surface_maison": null,
                "surface_terrain": 843,
                "surface_habitable": 151,
                "surface_sejour": 37,
                "prix": 284000,
                "prix_maison": 284000,
                "prix_terrain": null,
                "nbr_piece": 5,
                "etage": null,
                "terrasse": null,
                "nbr_balcon": null,
                "surface_balcon": null,
                "nbr_etage": null,
                "ascenseur": null,
                "cave": null,
                "nbr_parking": null,
                "nbr_boxe": null,
                "nbr_chambre": 4,
                "nbr_chambre_rdc": 1,
                "nbr_sdb": 1,
                "type_cuisine": 11,
                "type_chauffage": 8704,
                "type_eau_chaude": null,
                "alarme": null,
                "piscine": null,
                "interphone": null,
                "etat_interieur": null,
                "date_dispo": null,
                "conso_energie": "139",
                "bilan_conso_energie": "C",
                "emission_ges": "32",
                "bilan_emission_ges": "D",
                "annee_construction": null,
                "loyer_mois": null,
                "loyer_mois_charges_comprises": null,
                "charges_mois": null,
                "droit_au_bail": null,
                "taxe_fonciere": null,
                "sous_type_bien": 270,
                "create_batch_id": 3006,
                "update_batch_id": null,
                "remove_batch_id": null,
                "lastseen_batch_id": 3006,
                "source": null,
                "from_website": null,
                "published": 1,
                "moderated": 0,
                "published_at": "2021-02-01T09:31:06.000000Z",
                "created_at": "2021-02-01T09:31:03.000000Z",
                "updated_at": "2021-02-01T09:31:06.000000Z",
                "deleted_at": null,
                "commune": {
                    "id": 11566,
                    "departement_id": 32,
                    "nom": "ALES",
                    "insee": "30007",
                    "nom_special": "Alès",
                    "nom_recherche": "ALES",
                    "prefixe_nom_special": "",
                    "population": 41037,
                    "actif": 1,
                    "zone_id": null,
                    "longitude": 4.079023,
                    "latitude": 44.127402,
                    "centre": {
                        "type": "Point",
                        "coordinates": [
                            4.079023,
                            44.127402
                        ]
                    },
                    "created_at": null,
                    "updated_at": "2021-02-08T16:49:50.000000Z",
                    "deleted_at": null,
                    "departement": {
                        "id": 32,
                        "region_id": 20,
                        "nom": "GARD",
                        "code": "30",
                        "created_at": "2017-08-31T08:35:14.000000Z",
                        "updated_at": "2017-08-31T08:35:14.000000Z",
                        "deleted_at": null,
                        "region": {
                            "id": 20,
                            "pays_id": 1,
                            "nom": "Languedoc-Roussillon",
                            "created_at": "2017-08-31T08:35:14.000000Z",
                            "updated_at": "2017-08-31T08:35:14.000000Z",
                            "deleted_at": null
                        }
                    }
                },
                "programme": null
            }
        ],
        "first_page_url": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annonce\/search\/client?page=1",
        "from": 3,
        "last_page": 16,
        "last_page_url": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annonce\/search\/client?page=16",
        "next_page_url": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annonce\/search\/client?page=3",
        "path": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annonce\/search\/client",
        "per_page": 2,
        "prev_page_url": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annonce\/search\/client?page=1",
        "to": 4,
        "total": 32
    }
}

Request   

POST api/v2/annonce/search/programme

Body Parameters

website  string  
Website Code(ACdev, TC, etc...)

programme  string  
Programme IDS separated by comma

consultation  integer  
1=>true, 0=>false

type_annonce  string  
Values who can be separated by commas See [Additional Datas / Type values](#annonce-type-values).

range  integer optional  
default is 0

paginate  integer optional  
default is 10

order_on  string optional  
Order column, default is updated_at is 10

order_dir  string optional  
Order Direction, ASC or DESC

max_price  integer optional  

room  integer optional  

ip  string optional  
re-searcher ip.

client_vars  text optional  
Serialization of $_SERVER.

country  string optional  
default is "fr"

page  integer optional  
Page

client_id  integer optional  
Client id.

Global count

Example request:

curl -X GET \
    -G "https://dashboard-preprod.appartement-construction.com/api/v2/annonce/count/all?website=TC&type_annonce=%22APPARTEMENT+NEUF%2C+MAISON+NEUF%22" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json"
const url = new URL(
    "https://dashboard-preprod.appartement-construction.com/api/v2/annonce/count/all"
);

let params = {
    "website": "TC",
    "type_annonce": ""APPARTEMENT NEUF, MAISON NEUF"",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://dashboard-preprod.appartement-construction.com/api/v2/annonce/count/all',
    [
        'headers' => [
            'Accept' => 'application/json',
        ],
        'query' => [
            'website'=> 'TC',
            'type_annonce'=> '"APPARTEMENT NEUF, MAISON NEUF"',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dashboard-preprod.appartement-construction.com/api/v2/annonce/count/all'
params = {
  'website': 'TC',
  'type_annonce': '"APPARTEMENT NEUF, MAISON NEUF"',
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()

Example response (400):

{
    "code": 400,
    "status": "error",
    "message": {
        "type_annonce": [
            "Le champ type annonce est obligatoire."
        ]
    }
}

Example response (200):

{
    "code": 200,
    "status": "ok",
    "data": 32
}

Request   

GET api/v2/annonce/count/all

Query Parameters

website  string  
Website Code(ACdev, TC, etc...)

type_annonce  string optional  
Values who can be separated by commas See [Additional Datas / Type values](#annonce-type-values).

Count by State

Example request:

curl -X POST \
    "https://dashboard-preprod.appartement-construction.com/api/v2/annonce/count/state" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"website":"TC","range":10,"paginate":15,"order_on":"id","order_dir":"DESC","max_price":10000,"room":2,"type_annonce":"'APPARTEMENT NEUF, MAISON NEUF'","consultation":"1","ip":"88.12.14.134","client_vars":"a:50:{s:21:\"PHP_FCGI_MAX_REQUESTS\";s:4:\"5000\";s:5:\"PHPRC\";s:18:\"\/var\/www\/conf\/web3\";s:3:\"PWD\";s:30:\"\/var\/www\/php-fcgi-scripts\/web3\"...","state":"01","country":"fr"}'
const url = new URL(
    "https://dashboard-preprod.appartement-construction.com/api/v2/annonce/count/state"
);

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

let body = {
    "website": "TC",
    "range": 10,
    "paginate": 15,
    "order_on": "id",
    "order_dir": "DESC",
    "max_price": 10000,
    "room": 2,
    "type_annonce": "'APPARTEMENT NEUF, MAISON NEUF'",
    "consultation": "1",
    "ip": "88.12.14.134",
    "client_vars": "a:50:{s:21:\"PHP_FCGI_MAX_REQUESTS\";s:4:\"5000\";s:5:\"PHPRC\";s:18:\"\/var\/www\/conf\/web3\";s:3:\"PWD\";s:30:\"\/var\/www\/php-fcgi-scripts\/web3\"...",
    "state": "01",
    "country": "fr"
}

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

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://dashboard-preprod.appartement-construction.com/api/v2/annonce/count/state',
    [
        'headers' => [
            'Accept' => 'application/json',
        ],
        'json' => [
            'website' => 'TC',
            'range' => 10,
            'paginate' => 15,
            'order_on' => 'id',
            'order_dir' => 'DESC',
            'max_price' => 10000,
            'room' => 2,
            'type_annonce' => '\'APPARTEMENT NEUF, MAISON NEUF\'',
            'consultation' => '1',
            'ip' => '88.12.14.134',
            'client_vars' => 'a:50:{s:21:"PHP_FCGI_MAX_REQUESTS";s:4:"5000";s:5:"PHPRC";s:18:"/var/www/conf/web3";s:3:"PWD";s:30:"/var/www/php-fcgi-scripts/web3"...',
            'state' => '01',
            'country' => 'fr',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dashboard-preprod.appartement-construction.com/api/v2/annonce/count/state'
payload = {
    "website": "TC",
    "range": 10,
    "paginate": 15,
    "order_on": "id",
    "order_dir": "DESC",
    "max_price": 10000,
    "room": 2,
    "type_annonce": "'APPARTEMENT NEUF, MAISON NEUF'",
    "consultation": "1",
    "ip": "88.12.14.134",
    "client_vars": "a:50:{s:21:\"PHP_FCGI_MAX_REQUESTS\";s:4:\"5000\";s:5:\"PHPRC\";s:18:\"\/var\/www\/conf\/web3\";s:3:\"PWD\";s:30:\"\/var\/www\/php-fcgi-scripts\/web3\"...",
    "state": "01",
    "country": "fr"
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (400):

{
    "code": 400,
    "status": "error",
    "message": {
        "type_annonce": [
            "Le champ type annonce est obligatoire."
        ]
    }
}

Example response (200):

{
    "code": 200,
    "status": "ok",
    "data": 32
}

Request   

POST api/v2/annonce/count/state

Body Parameters

website  string  
Website Code(ACdev, TC, etc...)

range  integer optional  
default is 0

paginate  integer optional  
default is 10

order_on  string optional  
Order column, default is updated_at is 10

order_dir  string optional  
Order Direction, ASC or DESC

max_price  integer optional  

room  integer optional  

type_annonce  string  
Values who can be separated by commas See [Additional Datas / Type values](#annonce-type-values).

consultation  required optional  
integer 1=>true, 0=>false

ip  string optional  
re-searcher ip.

client_vars  text optional  
Serialization of $_SERVER.

state  string  
States

country  string optional  
default is "fr"

Count by Zip

Example request:

curl -X POST \
    "https://dashboard-preprod.appartement-construction.com/api/v2/annonce/count/zip" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"website":"TC","range":10,"paginate":15,"order_on":"id","order_dir":"DESC","max_price":10000,"room":2,"type_annonce":"'APPARTEMENT NEUF, MAISON NEUF'","consultation":"1","ip":"88.12.14.134","client_vars":"a:50:{s:21:\"PHP_FCGI_MAX_REQUESTS\";s:4:\"5000\";s:5:\"PHPRC\";s:18:\"\/var\/www\/conf\/web3\";s:3:\"PWD\";s:30:\"\/var\/www\/php-fcgi-scripts\/web3\"...","zip":"75000","country":"fr"}'
const url = new URL(
    "https://dashboard-preprod.appartement-construction.com/api/v2/annonce/count/zip"
);

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

let body = {
    "website": "TC",
    "range": 10,
    "paginate": 15,
    "order_on": "id",
    "order_dir": "DESC",
    "max_price": 10000,
    "room": 2,
    "type_annonce": "'APPARTEMENT NEUF, MAISON NEUF'",
    "consultation": "1",
    "ip": "88.12.14.134",
    "client_vars": "a:50:{s:21:\"PHP_FCGI_MAX_REQUESTS\";s:4:\"5000\";s:5:\"PHPRC\";s:18:\"\/var\/www\/conf\/web3\";s:3:\"PWD\";s:30:\"\/var\/www\/php-fcgi-scripts\/web3\"...",
    "zip": "75000",
    "country": "fr"
}

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

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://dashboard-preprod.appartement-construction.com/api/v2/annonce/count/zip',
    [
        'headers' => [
            'Accept' => 'application/json',
        ],
        'json' => [
            'website' => 'TC',
            'range' => 10,
            'paginate' => 15,
            'order_on' => 'id',
            'order_dir' => 'DESC',
            'max_price' => 10000,
            'room' => 2,
            'type_annonce' => '\'APPARTEMENT NEUF, MAISON NEUF\'',
            'consultation' => '1',
            'ip' => '88.12.14.134',
            'client_vars' => 'a:50:{s:21:"PHP_FCGI_MAX_REQUESTS";s:4:"5000";s:5:"PHPRC";s:18:"/var/www/conf/web3";s:3:"PWD";s:30:"/var/www/php-fcgi-scripts/web3"...',
            'zip' => '75000',
            'country' => 'fr',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dashboard-preprod.appartement-construction.com/api/v2/annonce/count/zip'
payload = {
    "website": "TC",
    "range": 10,
    "paginate": 15,
    "order_on": "id",
    "order_dir": "DESC",
    "max_price": 10000,
    "room": 2,
    "type_annonce": "'APPARTEMENT NEUF, MAISON NEUF'",
    "consultation": "1",
    "ip": "88.12.14.134",
    "client_vars": "a:50:{s:21:\"PHP_FCGI_MAX_REQUESTS\";s:4:\"5000\";s:5:\"PHPRC\";s:18:\"\/var\/www\/conf\/web3\";s:3:\"PWD\";s:30:\"\/var\/www\/php-fcgi-scripts\/web3\"...",
    "zip": "75000",
    "country": "fr"
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (400):

{
    "code": 400,
    "status": "error",
    "message": {
        "type_annonce": [
            "Le champ type annonce est obligatoire."
        ]
    }
}

Example response (200):

{
    "code": 200,
    "status": "ok",
    "data": 32
}

Request   

POST api/v2/annonce/count/zip

Body Parameters

website  string  
Website Code(ACdev, TC, etc...)

range  integer optional  
default is 0

paginate  integer optional  
default is 10

order_on  string optional  
Order column, default is updated_at is 10

order_dir  string optional  
Order Direction, ASC or DESC

max_price  integer optional  

room  integer optional  

type_annonce  string  
Values who can be separated by commas See [Additional Datas / Type values](#annonce-type-values).

consultation  required optional  
integer 1=>true, 0=>false

ip  string optional  
re-searcher ip.

client_vars  text optional  
Serialization of $_SERVER.

zip  string  
Zip code

country  string optional  
default is "fr"

Count by Region

Example request:

curl -X POST \
    "https://dashboard-preprod.appartement-construction.com/api/v2/annonce/count/region" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"website":"TC","range":10,"paginate":15,"order_on":"id","order_dir":"DESC","max_price":10000,"room":2,"type_annonce":"'APPARTEMENT NEUF, MAISON NEUF'","consultation":"1","ip":"88.12.14.134","client_vars":"a:50:{s:21:\"PHP_FCGI_MAX_REQUESTS\";s:4:\"5000\";s:5:\"PHPRC\";s:18:\"\/var\/www\/conf\/web3\";s:3:\"PWD\";s:30:\"\/var\/www\/php-fcgi-scripts\/web3\"...","region":"01,02","country":"fr"}'
const url = new URL(
    "https://dashboard-preprod.appartement-construction.com/api/v2/annonce/count/region"
);

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

let body = {
    "website": "TC",
    "range": 10,
    "paginate": 15,
    "order_on": "id",
    "order_dir": "DESC",
    "max_price": 10000,
    "room": 2,
    "type_annonce": "'APPARTEMENT NEUF, MAISON NEUF'",
    "consultation": "1",
    "ip": "88.12.14.134",
    "client_vars": "a:50:{s:21:\"PHP_FCGI_MAX_REQUESTS\";s:4:\"5000\";s:5:\"PHPRC\";s:18:\"\/var\/www\/conf\/web3\";s:3:\"PWD\";s:30:\"\/var\/www\/php-fcgi-scripts\/web3\"...",
    "region": "01,02",
    "country": "fr"
}

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

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://dashboard-preprod.appartement-construction.com/api/v2/annonce/count/region',
    [
        'headers' => [
            'Accept' => 'application/json',
        ],
        'json' => [
            'website' => 'TC',
            'range' => 10,
            'paginate' => 15,
            'order_on' => 'id',
            'order_dir' => 'DESC',
            'max_price' => 10000,
            'room' => 2,
            'type_annonce' => '\'APPARTEMENT NEUF, MAISON NEUF\'',
            'consultation' => '1',
            'ip' => '88.12.14.134',
            'client_vars' => 'a:50:{s:21:"PHP_FCGI_MAX_REQUESTS";s:4:"5000";s:5:"PHPRC";s:18:"/var/www/conf/web3";s:3:"PWD";s:30:"/var/www/php-fcgi-scripts/web3"...',
            'region' => '01,02',
            'country' => 'fr',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dashboard-preprod.appartement-construction.com/api/v2/annonce/count/region'
payload = {
    "website": "TC",
    "range": 10,
    "paginate": 15,
    "order_on": "id",
    "order_dir": "DESC",
    "max_price": 10000,
    "room": 2,
    "type_annonce": "'APPARTEMENT NEUF, MAISON NEUF'",
    "consultation": "1",
    "ip": "88.12.14.134",
    "client_vars": "a:50:{s:21:\"PHP_FCGI_MAX_REQUESTS\";s:4:\"5000\";s:5:\"PHPRC\";s:18:\"\/var\/www\/conf\/web3\";s:3:\"PWD\";s:30:\"\/var\/www\/php-fcgi-scripts\/web3\"...",
    "region": "01,02",
    "country": "fr"
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (400):

{
    "code": 400,
    "status": "error",
    "message": {
        "type_annonce": [
            "Le champ type annonce est obligatoire."
        ]
    }
}

Example response (200):

{
    "code": 200,
    "status": "ok",
    "data": 32
}

Request   

POST api/v2/annonce/count/region

Body Parameters

website  string  
Website Code(ACdev, TC, etc...)

range  integer optional  
default is 0

paginate  integer optional  
default is 10

order_on  string optional  
Order column, default is updated_at is 10

order_dir  string optional  
Order Direction, ASC or DESC

max_price  integer optional  

room  integer optional  

type_annonce  string  
Values who can be separated by commas See [Additional Datas / Type values](#annonce-type-values).

consultation  required optional  
integer 1=>true, 0=>false

ip  string optional  
re-searcher ip.

client_vars  text optional  
Serialization of $_SERVER.

region  string  
Region ID

country  string optional  
default is "fr"

Count by Client

Example request:

curl -X POST \
    "https://dashboard-preprod.appartement-construction.com/api/v2/annonce/count/client" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"website":"TC","range":10,"paginate":15,"order_on":"id","order_dir":"DESC","max_price":10000,"room":2,"type_annonce":"'APPARTEMENT NEUF, MAISON NEUF'","consultation":"1","ip":"88.12.14.134","client_vars":"a:50:{s:21:\"PHP_FCGI_MAX_REQUESTS\";s:4:\"5000\";s:5:\"PHPRC\";s:18:\"\/var\/www\/conf\/web3\";s:3:\"PWD\";s:30:\"\/var\/www\/php-fcgi-scripts\/web3\"...","client":"01","country":"fr"}'
const url = new URL(
    "https://dashboard-preprod.appartement-construction.com/api/v2/annonce/count/client"
);

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

let body = {
    "website": "TC",
    "range": 10,
    "paginate": 15,
    "order_on": "id",
    "order_dir": "DESC",
    "max_price": 10000,
    "room": 2,
    "type_annonce": "'APPARTEMENT NEUF, MAISON NEUF'",
    "consultation": "1",
    "ip": "88.12.14.134",
    "client_vars": "a:50:{s:21:\"PHP_FCGI_MAX_REQUESTS\";s:4:\"5000\";s:5:\"PHPRC\";s:18:\"\/var\/www\/conf\/web3\";s:3:\"PWD\";s:30:\"\/var\/www\/php-fcgi-scripts\/web3\"...",
    "client": "01",
    "country": "fr"
}

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

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://dashboard-preprod.appartement-construction.com/api/v2/annonce/count/client',
    [
        'headers' => [
            'Accept' => 'application/json',
        ],
        'json' => [
            'website' => 'TC',
            'range' => 10,
            'paginate' => 15,
            'order_on' => 'id',
            'order_dir' => 'DESC',
            'max_price' => 10000,
            'room' => 2,
            'type_annonce' => '\'APPARTEMENT NEUF, MAISON NEUF\'',
            'consultation' => '1',
            'ip' => '88.12.14.134',
            'client_vars' => 'a:50:{s:21:"PHP_FCGI_MAX_REQUESTS";s:4:"5000";s:5:"PHPRC";s:18:"/var/www/conf/web3";s:3:"PWD";s:30:"/var/www/php-fcgi-scripts/web3"...',
            'client' => '01',
            'country' => 'fr',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dashboard-preprod.appartement-construction.com/api/v2/annonce/count/client'
payload = {
    "website": "TC",
    "range": 10,
    "paginate": 15,
    "order_on": "id",
    "order_dir": "DESC",
    "max_price": 10000,
    "room": 2,
    "type_annonce": "'APPARTEMENT NEUF, MAISON NEUF'",
    "consultation": "1",
    "ip": "88.12.14.134",
    "client_vars": "a:50:{s:21:\"PHP_FCGI_MAX_REQUESTS\";s:4:\"5000\";s:5:\"PHPRC\";s:18:\"\/var\/www\/conf\/web3\";s:3:\"PWD\";s:30:\"\/var\/www\/php-fcgi-scripts\/web3\"...",
    "client": "01",
    "country": "fr"
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (400):

{
    "code": 400,
    "status": "error",
    "message": {
        "type_annonce": [
            "Le champ type annonce est obligatoire."
        ]
    }
}

Example response (200):

{
    "code": 200,
    "status": "ok",
    "data": 32
}

Request   

POST api/v2/annonce/count/client

Body Parameters

website  string  
Website Code(ACdev, TC, etc...)

range  integer optional  
default is 0

paginate  integer optional  
default is 10

order_on  string optional  
Order column, default is updated_at is 10

order_dir  string optional  
Order Direction, ASC or DESC

max_price  integer optional  

room  integer optional  

type_annonce  string  
Values who can be separated by commas See [Additional Datas / Type values](#annonce-type-values).

consultation  required optional  
integer 1=>true, 0=>false

ip  string optional  
re-searcher ip.

client_vars  text optional  
Serialization of $_SERVER.

client  string  
Clients ID

country  string optional  
default is "fr"

Annuaire

APIs for managing annuaire

List clients in annuaire

Example request:

curl -X GET \
    -G "https://dashboard-preprod.appartement-construction.com/api/v2/annuaire?website=TC&paginate=10&page=2" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json"
const url = new URL(
    "https://dashboard-preprod.appartement-construction.com/api/v2/annuaire"
);

let params = {
    "website": "TC",
    "paginate": "10",
    "page": "2",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://dashboard-preprod.appartement-construction.com/api/v2/annuaire',
    [
        'headers' => [
            'Accept' => 'application/json',
        ],
        'query' => [
            'website'=> 'TC',
            'paginate'=> '10',
            'page'=> '2',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dashboard-preprod.appartement-construction.com/api/v2/annuaire'
params = {
  'website': 'TC',
  'paginate': '10',
  'page': '2',
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()

Example response (200):

{
    "code": 200,
    "status": "ok",
    "data": {
        "current_page": 1,
        "data": [
            {
                "id": 1,
                "type_id": 5,
                "commune_id": 9,
                "actif": 1,
                "annuaire": 1,
                "nom": "Nexity",
                "adresse": "19 p Rue de Vienne",
                "adresse_2": "Paris 8e Arrondissement",
                "website": "https:\/\/www.nexity.fr",
                "slogan": "Achat, vente, location, gestion, transaction, financement, promotion immobilière et solutions d'accompagnement.",
                "description": "<p>Véritable expert de l’immobilier, grâce à ses filiales spécialisées dans la vente, l’achat, la location ou la gestion de tout type de bien (terrains, bureaux, logements), Nexity est aujourd’hui un promoteur incontournable avec plus de 12 000 logements neufs construits chaque année.<\/p><p>Nexity commercialise actuellement plus de 6000 appartements neufs répartis sur toute la France. Paris, Bordeaux et Marseille sont les villes où se trouvent le plus grand nombre de programmes neufs Nexity avec des prix allant de 57 900€ pour un studio de 18.60m² à Perpignan à 2 150 000€ pour un loft de 95m² à Paris.<\/p><p>Avec l’achat de votre appartement neuf, Nexity vous offre également la recherche des meilleurs financements, grâce à ses nombreux partenariats bancaires. Que ce soit pour votre habitat principal ou pour un investissement locatif, leurs experts immobiliers sauront trouver les meilleurs conditions pour réaliser votre projet.<\/p><p>Si vous souhaitez investir dans l'immobilier neuf, le groupe Nexity développe de nombreux programmes éligibles aux différents dispositifs fiscaux (Pinel, LMNP, Censi-Bouvard) et  assure également la gestion des résidences étudiantes “Studea “et des résidences seniors \"Domitys\".<\/p>",
                "logo": "nexity.png",
                "logo_url": "https:\/\/files.appartement-construction.com\/images\/client\/nexity.png",
                "longitude": "2.321850",
                "latitude": "48.877200",
                "created_at": "2018-10-21T09:51:02.000000Z",
                "updated_at": "2020-03-12T14:04:07.000000Z",
                "childs": [
                    {
                        "id": 2,
                        "parent_id": 1,
                        "type_id": 5,
                        "commune_id": 18,
                        "nom": "TEST2",
                        "created_at": "2018-10-21T11:12:15.000000Z",
                        "updated_at": "2020-03-11T08:15:15.000000Z",
                        "childs": []
                    }
                ]
            },
            {
                "id": 722,
                "type_id": 5,
                "commune_id": 36310,
                "actif": 1,
                "annuaire": 1,
                "nom": "Ogic",
                "adresse": "58, avenue Édouard Vaillant",
                "slogan": "Ogic vous propose des biens immobiliers de grande qualité :  résidentiel, entreprise ou réhabilitation de bâtiments anciens. Idéal acquéreurs et investisseurs !",
                "description": "<p>Fondé en 1966, OGIC est un promoteur présent dans toute l'Île-de-France, en régions Rhône-Alpes et Provence-Alpes-Côte d'Azur.Fidèle à son ambition de réaliser des immeubles de qualité, OGIC privilégie les plus belles adresses proposant une architecture toujours adaptée au quartier dans lequel elle doit s'insérer. Choisir OGIC, c'est privilégier une adresse reconnue garante d'un patrimoine sûr et pérenne. Constitué d'une équipe de professionnels aguerris, le groupe intervient dans l'ensemble des métiers de la promotion immobilière :<\/p><ul><li><p>L'immobilier résidentiel<\/p><\/li><li><p>L'immobilier d'entreprise<\/p><\/li><li><p>La réhabilitation et valorisation de bâtiments anciens ou de Monuments Historiques<\/p><\/li><li><p>L'aménagement urbain et les opérations complexes de centre ville.<\/p><\/li><\/ul>",
                "logo": "ogic.jpeg",
                "created_at": "2020-03-11T13:08:30.000000Z",
                "updated_at": "2020-03-11T13:08:30.000000Z",
                "childs": []
            },
            {
                "id": 2202,
                "type_id": 7,
                "commune_id": 9659,
                "actif": 1,
                "annuaire": 1,
                "external_reference": "260045",
                "nom": "LCDI Le comptoir de l'immobilier",
                "email": "contact@lcdimmo.com",
                "adresse": "ZA Fortuneau9 Allée Hispano Suiza",
                "telephone": "04 75 53 19 19",
                "website": "www.lcdimmo.com",
                "logo": "ubiflowbailleur_1_0_260045_260045.jpg",
                "created_at": "2020-11-03T14:39:24.000000Z",
                "updated_at": "2021-02-01T09:26:32.000000Z",
                "childs": []
            }
        ],
        "first_page_url": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annuaire?page=1",
        "from": 1,
        "last_page": 1,
        "last_page_url": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annuaire?page=1",
        "next_page_url": null,
        "path": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annuaire",
        "per_page": 10,
        "prev_page_url": null,
        "to": 3,
        "total": 3
    }
}

Example response (400):

{
    "code": 400,
    "status": "error",
    "message": {
        "website": [
            "Le champ website sélectionné est invalide."
        ]
    }
}

Request   

GET api/v2/annuaire

Query Parameters

website  string  
Website Code(ACdev, TC, etc...)

paginate  integer optional  
Number of element by page

page  integer optional  
Page

List in random order

Example request:

curl -X GET \
    -G "https://dashboard-preprod.appartement-construction.com/api/v2/annuaire/random?website=TC&paginate=10&page=2" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json"
const url = new URL(
    "https://dashboard-preprod.appartement-construction.com/api/v2/annuaire/random"
);

let params = {
    "website": "TC",
    "paginate": "10",
    "page": "2",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://dashboard-preprod.appartement-construction.com/api/v2/annuaire/random',
    [
        'headers' => [
            'Accept' => 'application/json',
        ],
        'query' => [
            'website'=> 'TC',
            'paginate'=> '10',
            'page'=> '2',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dashboard-preprod.appartement-construction.com/api/v2/annuaire/random'
params = {
  'website': 'TC',
  'paginate': '10',
  'page': '2',
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()

Example response (200):

{
    "code": 200,
    "status": "ok",
    "data": {
        "current_page": 1,
        "data": [
            {
                "id": 1,
                "type_id": 5,
                "commune_id": 9,
                "actif": 1,
                "annuaire": 1,
                "nom": "Nexity",
                "adresse": "19 p Rue de Vienne",
                "adresse_2": "Paris 8e Arrondissement",
                "website": "https:\/\/www.nexity.fr",
                "slogan": "Achat, vente, location, gestion, transaction, financement, promotion immobilière et solutions d'accompagnement.",
                "description": "<p>Véritable expert de l’immobilier, grâce à ses filiales spécialisées dans la vente, l’achat, la location ou la gestion de tout type de bien (terrains, bureaux, logements), Nexity est aujourd’hui un promoteur incontournable avec plus de 12 000 logements neufs construits chaque année.<\/p><p>Nexity commercialise actuellement plus de 6000 appartements neufs répartis sur toute la France. Paris, Bordeaux et Marseille sont les villes où se trouvent le plus grand nombre de programmes neufs Nexity avec des prix allant de 57 900€ pour un studio de 18.60m² à Perpignan à 2 150 000€ pour un loft de 95m² à Paris.<\/p><p>Avec l’achat de votre appartement neuf, Nexity vous offre également la recherche des meilleurs financements, grâce à ses nombreux partenariats bancaires. Que ce soit pour votre habitat principal ou pour un investissement locatif, leurs experts immobiliers sauront trouver les meilleurs conditions pour réaliser votre projet.<\/p><p>Si vous souhaitez investir dans l'immobilier neuf, le groupe Nexity développe de nombreux programmes éligibles aux différents dispositifs fiscaux (Pinel, LMNP, Censi-Bouvard) et  assure également la gestion des résidences étudiantes “Studea “et des résidences seniors \"Domitys\".<\/p>",
                "logo": "nexity.png",
                "logo_url": "https:\/\/files.appartement-construction.com\/images\/client\/nexity.png",
                "longitude": "2.321850",
                "latitude": "48.877200",
                "created_at": "2018-10-21T09:51:02.000000Z",
                "updated_at": "2020-03-12T14:04:07.000000Z",
                "childs": [
                    {
                        "id": 2,
                        "parent_id": 1,
                        "type_id": 5,
                        "commune_id": 18,
                        "nom": "TEST2",
                        "created_at": "2018-10-21T11:12:15.000000Z",
                        "updated_at": "2020-03-11T08:15:15.000000Z",
                        "childs": []
                    }
                ]
            },
            {
                "id": 722,
                "type_id": 5,
                "commune_id": 36310,
                "actif": 1,
                "annuaire": 1,
                "nom": "Ogic",
                "adresse": "58, avenue Édouard Vaillant",
                "slogan": "Ogic vous propose des biens immobiliers de grande qualité :  résidentiel, entreprise ou réhabilitation de bâtiments anciens. Idéal acquéreurs et investisseurs !",
                "description": "<p>Fondé en 1966, OGIC est un promoteur présent dans toute l'Île-de-France, en régions Rhône-Alpes et Provence-Alpes-Côte d'Azur.Fidèle à son ambition de réaliser des immeubles de qualité, OGIC privilégie les plus belles adresses proposant une architecture toujours adaptée au quartier dans lequel elle doit s'insérer. Choisir OGIC, c'est privilégier une adresse reconnue garante d'un patrimoine sûr et pérenne. Constitué d'une équipe de professionnels aguerris, le groupe intervient dans l'ensemble des métiers de la promotion immobilière :<\/p><ul><li><p>L'immobilier résidentiel<\/p><\/li><li><p>L'immobilier d'entreprise<\/p><\/li><li><p>La réhabilitation et valorisation de bâtiments anciens ou de Monuments Historiques<\/p><\/li><li><p>L'aménagement urbain et les opérations complexes de centre ville.<\/p><\/li><\/ul>",
                "logo": "ogic.jpeg",
                "created_at": "2020-03-11T13:08:30.000000Z",
                "updated_at": "2020-03-11T13:08:30.000000Z",
                "childs": []
            },
            {
                "id": 2202,
                "type_id": 7,
                "commune_id": 9659,
                "actif": 1,
                "annuaire": 1,
                "external_reference": "260045",
                "nom": "LCDI Le comptoir de l'immobilier",
                "email": "contact@lcdimmo.com",
                "adresse": "ZA Fortuneau9 Allée Hispano Suiza",
                "telephone": "04 75 53 19 19",
                "website": "www.lcdimmo.com",
                "logo": "ubiflowbailleur_1_0_260045_260045.jpg",
                "created_at": "2020-11-03T14:39:24.000000Z",
                "updated_at": "2021-02-01T09:26:32.000000Z",
                "childs": []
            }
        ],
        "first_page_url": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annuaire?page=1",
        "from": 1,
        "last_page": 1,
        "last_page_url": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annuaire?page=1",
        "next_page_url": null,
        "path": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annuaire",
        "per_page": 10,
        "prev_page_url": null,
        "to": 3,
        "total": 3
    }
}

Example response (400):

{
    "code": 400,
    "status": "error",
    "message": {
        "website": [
            "Le champ website sélectionné est invalide."
        ]
    }
}

Request   

GET api/v2/annuaire/random

Query Parameters

website  string  
Website Code(ACdev, TC, etc...)

paginate  integer optional  
Number of element by page

page  integer optional  
Page

Search grouped by region

Example request:

curl -X GET \
    -G "https://dashboard-preprod.appartement-construction.com/api/v2/annuaire/search/region?website=TC&regions=1%2C2&paginate=10&page=2" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json"
const url = new URL(
    "https://dashboard-preprod.appartement-construction.com/api/v2/annuaire/search/region"
);

let params = {
    "website": "TC",
    "regions": "1,2",
    "paginate": "10",
    "page": "2",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://dashboard-preprod.appartement-construction.com/api/v2/annuaire/search/region',
    [
        'headers' => [
            'Accept' => 'application/json',
        ],
        'query' => [
            'website'=> 'TC',
            'regions'=> '1,2',
            'paginate'=> '10',
            'page'=> '2',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dashboard-preprod.appartement-construction.com/api/v2/annuaire/search/region'
params = {
  'website': 'TC',
  'regions': '1,2',
  'paginate': '10',
  'page': '2',
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()

Example response (200):

{
    "code": 200,
    "status": "ok",
    "data": {
        "current_page": 1,
        "data": {
            "13 - Île-de-France": [
                {
                    "id": 1,
                    "type_id": 5,
                    "commune_id": 9,
                    "actif": 1,
                    "annuaire": 1,
                    "nom": "Nexity",
                    "adresse": "19 p Rue de Vienne",
                    "adresse_2": "Paris 8e Arrondissement",
                    "website": "https:\/\/www.nexity.fr",
                    "slogan": "Achat, vente, location, gestion, transaction, financement, promotion immobilière et solutions d'accompagnement.",
                    "description": "<p>Véritable expert de l’immobilier, grâce à ses filiales spécialisées dans la vente, l’achat, la location ou la gestion de tout type de bien (terrains, bureaux, logements), Nexity est aujourd’hui un promoteur incontournable avec plus de 12 000 logements neufs construits chaque année.<\/p><p>Nexity commercialise actuellement plus de 6000 appartements neufs répartis sur toute la France. Paris, Bordeaux et Marseille sont les villes où se trouvent le plus grand nombre de programmes neufs Nexity avec des prix allant de 57 900€ pour un studio de 18.60m² à Perpignan à 2 150 000€ pour un loft de 95m² à Paris.<\/p><p>Avec l’achat de votre appartement neuf, Nexity vous offre également la recherche des meilleurs financements, grâce à ses nombreux partenariats bancaires. Que ce soit pour votre habitat principal ou pour un investissement locatif, leurs experts immobiliers sauront trouver les meilleurs conditions pour réaliser votre projet.<\/p><p>Si vous souhaitez investir dans l'immobilier neuf, le groupe Nexity développe de nombreux programmes éligibles aux différents dispositifs fiscaux (Pinel, LMNP, Censi-Bouvard) et  assure également la gestion des résidences étudiantes “Studea “et des résidences seniors \"Domitys\".<\/p>",
                    "logo": "nexity.png",
                    "longitude": "2.321850",
                    "latitude": "48.877200",
                    "created_at": "2018-10-21T09:51:02.000000Z",
                    "updated_at": "2020-03-12T14:04:07.000000Z",
                    "logo_url": "https:\/\/files.appartement-construction.com\/images\/client\/nexity.png",
                    "childs": [
                        {
                            "id": 2,
                            "parent_id": 1,
                            "type_id": 5,
                            "commune_id": 18,
                            "nom": "TEST2",
                            "created_at": "2018-10-21T11:12:15.000000Z",
                            "updated_at": "2020-03-11T08:15:15.000000Z",
                            "childs": []
                        }
                    ],
                    "commune": {
                        "id": 9,
                        "departement_id": 1,
                        "nom": "PARIS 08",
                        "insee": "75108",
                        "nom_special": "PARIS 8EME ARRONDISSEMENT",
                        "nom_recherche": "PARIS8EMEARRONDISSEMENT",
                        "actif": 1,
                        "longitude": 2.316333,
                        "latitude": 48.877783,
                        "centre": {
                            "type": "Point",
                            "coordinates": [
                                2.316333,
                                48.877783
                            ]
                        },
                        "updated_at": "2021-02-08T16:49:25.000000Z",
                        "departement": {
                            "id": 1,
                            "region_id": 13,
                            "nom": "PARIS",
                            "code": "75",
                            "created_at": "2017-08-31T08:35:14.000000Z",
                            "updated_at": "2018-10-21T10:27:44.000000Z",
                            "region": {
                                "id": 13,
                                "pays_id": 1,
                                "nom": "Île-de-France",
                                "created_at": "2017-08-31T08:35:14.000000Z",
                                "updated_at": "2017-08-31T08:35:14.000000Z"
                            }
                        }
                    }
                },
                {
                    "id": 722,
                    "type_id": 5,
                    "commune_id": 36310,
                    "actif": 1,
                    "annuaire": 1,
                    "nom": "Ogic",
                    "adresse": "58, avenue Édouard Vaillant",
                    "slogan": "Ogic vous propose des biens immobiliers de grande qualité :  résidentiel, entreprise ou réhabilitation de bâtiments anciens. Idéal acquéreurs et investisseurs !",
                    "description": "<p>Fondé en 1966, OGIC est un promoteur présent dans toute l'Île-de-France, en régions Rhône-Alpes et Provence-Alpes-Côte d'Azur.Fidèle à son ambition de réaliser des immeubles de qualité, OGIC privilégie les plus belles adresses proposant une architecture toujours adaptée au quartier dans lequel elle doit s'insérer. Choisir OGIC, c'est privilégier une adresse reconnue garante d'un patrimoine sûr et pérenne. Constitué d'une équipe de professionnels aguerris, le groupe intervient dans l'ensemble des métiers de la promotion immobilière :<\/p><ul><li><p>L'immobilier résidentiel<\/p><\/li><li><p>L'immobilier d'entreprise<\/p><\/li><li><p>La réhabilitation et valorisation de bâtiments anciens ou de Monuments Historiques<\/p><\/li><li><p>L'aménagement urbain et les opérations complexes de centre ville.<\/p><\/li><\/ul>",
                    "logo": "ogic.jpeg",
                    "created_at": "2020-03-11T13:08:30.000000Z",
                    "updated_at": "2020-03-11T13:08:30.000000Z",
                    "logo_url": "https:\/\/files.appartement-construction.com\/images\/client\/ogic.jpeg",
                    "childs": [],
                    "commune": {
                        "id": 36310,
                        "departement_id": 93,
                        "nom": "BOULOGNE BILLANCOURT",
                        "insee": "92012",
                        "nom_special": "Boulogne-Billancourt",
                        "nom_recherche": "BOULOGNEBILLANCOURT",
                        "population": 101743,
                        "actif": 1,
                        "longitude": 2.243312,
                        "latitude": 48.8338,
                        "centre": {
                            "type": "Point",
                            "coordinates": [
                                2.243312,
                                48.8338
                            ]
                        },
                        "updated_at": "2021-02-08T16:50:35.000000Z",
                        "departement": {
                            "id": 93,
                            "region_id": 13,
                            "nom": "HAUTS-DE-SEINE",
                            "code": "92",
                            "created_at": "2017-08-31T08:35:15.000000Z",
                            "updated_at": "2017-08-31T08:35:15.000000Z",
                            "region": {
                                "id": 13,
                                "pays_id": 1,
                                "nom": "Île-de-France",
                                "created_at": "2017-08-31T08:35:14.000000Z",
                                "updated_at": "2017-08-31T08:35:14.000000Z"
                            }
                        }
                    }
                }
            ],
            "3 - Rhône-Alpes": [
                {
                    "id": 2202,
                    "type_id": 7,
                    "commune_id": 9659,
                    "actif": 1,
                    "annuaire": 1,
                    "external_reference": "260045",
                    "nom": "LCDI Le comptoir de l'immobilier",
                    "email": "contact@lcdimmo.com",
                    "adresse": "ZA Fortuneau9 Allée Hispano Suiza",
                    "telephone": "04 75 53 19 19",
                    "website": "www.lcdimmo.com",
                    "logo": "ubiflowbailleur_1_0_260045_260045.jpg",
                    "created_at": "2020-11-03T14:39:24.000000Z",
                    "updated_at": "2021-02-01T09:26:32.000000Z",
                    "logo_url": "https:\/\/files.appartement-construction.com\/images\/client\/ubiflowbailleur_1_0_260045_260045.jpg",
                    "childs": [],
                    "commune": {
                        "id": 9659,
                        "departement_id": 26,
                        "nom": "MONTELIMAR",
                        "insee": "26198",
                        "nom_special": "Montélimar",
                        "nom_recherche": "MONTELIMAR",
                        "population": 29982,
                        "actif": 1,
                        "longitude": 4.750929,
                        "latitude": 44.558692,
                        "centre": {
                            "type": "Point",
                            "coordinates": [
                                4.750929,
                                44.558692
                            ]
                        },
                        "updated_at": "2021-02-08T16:49:45.000000Z",
                        "departement": {
                            "id": 26,
                            "region_id": 3,
                            "nom": "DROME",
                            "code": "26",
                            "created_at": "2017-08-31T08:35:14.000000Z",
                            "updated_at": "2017-08-31T08:35:14.000000Z",
                            "region": {
                                "id": 3,
                                "pays_id": 1,
                                "nom": "Rhône-Alpes",
                                "created_at": "2017-08-31T08:35:14.000000Z",
                                "updated_at": "2017-08-31T08:35:14.000000Z"
                            }
                        }
                    }
                }
            ]
        },
        "first_page_url": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annuaire\/search\/region?page=1",
        "from": 1,
        "last_page": 1,
        "last_page_url": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annuaire\/search\/region?page=1",
        "next_page_url": null,
        "path": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annuaire\/search\/region",
        "per_page": 10,
        "prev_page_url": null,
        "to": 3,
        "total": 3
    }
}

Example response (400):

{
    "code": 400,
    "status": "error",
    "message": {
        "regions.0": [
            "Le champ regions.0 sélectionné est invalide."
        ]
    }
}

Request   

GET api/v2/annuaire/search/region

Query Parameters

website  string  
Website Code(ACdev, TC, etc...)

regions  string  
Region, ID, separated by comma

paginate  integer optional  
Number of element by page

page  integer optional  
Page

Search grouped by state

Example request:

curl -X GET \
    -G "https://dashboard-preprod.appartement-construction.com/api/v2/annuaire/search/state?website=TC&states=1%2C2&paginate=10&page=2" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json"
const url = new URL(
    "https://dashboard-preprod.appartement-construction.com/api/v2/annuaire/search/state"
);

let params = {
    "website": "TC",
    "states": "1,2",
    "paginate": "10",
    "page": "2",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://dashboard-preprod.appartement-construction.com/api/v2/annuaire/search/state',
    [
        'headers' => [
            'Accept' => 'application/json',
        ],
        'query' => [
            'website'=> 'TC',
            'states'=> '1,2',
            'paginate'=> '10',
            'page'=> '2',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dashboard-preprod.appartement-construction.com/api/v2/annuaire/search/state'
params = {
  'website': 'TC',
  'states': '1,2',
  'paginate': '10',
  'page': '2',
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()

Example response (200):

{
    "code": 200,
    "status": "ok",
    "data": {
        "current_page": 1,
        "data": {
            "1 - PARIS": [
                {
                    "id": 1,
                    "type_id": 5,
                    "commune_id": 9,
                    "actif": 1,
                    "annuaire": 1,
                    "nom": "Nexity",
                    "adresse": "19 p Rue de Vienne",
                    "adresse_2": "Paris 8e Arrondissement",
                    "website": "https:\/\/www.nexity.fr",
                    "slogan": "Achat, vente, location, gestion, transaction, financement, promotion immobilière et solutions d'accompagnement.",
                    "description": "<p>Véritable expert de l’immobilier, grâce à ses filiales spécialisées dans la vente, l’achat, la location ou la gestion de tout type de bien (terrains, bureaux, logements), Nexity est aujourd’hui un promoteur incontournable avec plus de 12 000 logements neufs construits chaque année.<\/p><p>Nexity commercialise actuellement plus de 6000 appartements neufs répartis sur toute la France. Paris, Bordeaux et Marseille sont les villes où se trouvent le plus grand nombre de programmes neufs Nexity avec des prix allant de 57 900€ pour un studio de 18.60m² à Perpignan à 2 150 000€ pour un loft de 95m² à Paris.<\/p><p>Avec l’achat de votre appartement neuf, Nexity vous offre également la recherche des meilleurs financements, grâce à ses nombreux partenariats bancaires. Que ce soit pour votre habitat principal ou pour un investissement locatif, leurs experts immobiliers sauront trouver les meilleurs conditions pour réaliser votre projet.<\/p><p>Si vous souhaitez investir dans l'immobilier neuf, le groupe Nexity développe de nombreux programmes éligibles aux différents dispositifs fiscaux (Pinel, LMNP, Censi-Bouvard) et  assure également la gestion des résidences étudiantes “Studea “et des résidences seniors \"Domitys\".<\/p>",
                    "logo": "nexity.png",
                    "longitude": "2.321850",
                    "latitude": "48.877200",
                    "created_at": "2018-10-21T09:51:02.000000Z",
                    "updated_at": "2020-03-12T14:04:07.000000Z",
                    "logo_url": "https:\/\/files.appartement-construction.com\/images\/client\/nexity.png",
                    "childs": [
                        {
                            "id": 2,
                            "parent_id": 1,
                            "type_id": 5,
                            "commune_id": 18,
                            "nom": "TEST2",
                            "created_at": "2018-10-21T11:12:15.000000Z",
                            "updated_at": "2020-03-11T08:15:15.000000Z",
                            "childs": []
                        }
                    ],
                    "commune": {
                        "id": 9,
                        "departement_id": 1,
                        "nom": "PARIS 08",
                        "insee": "75108",
                        "nom_special": "PARIS 8EME ARRONDISSEMENT",
                        "nom_recherche": "PARIS8EMEARRONDISSEMENT",
                        "actif": 1,
                        "longitude": 2.316333,
                        "latitude": 48.877783,
                        "centre": {
                            "type": "Point",
                            "coordinates": [
                                2.316333,
                                48.877783
                            ]
                        },
                        "updated_at": "2021-02-08T16:49:25.000000Z",
                        "departement": {
                            "id": 1,
                            "region_id": 13,
                            "nom": "PARIS",
                            "code": "75",
                            "created_at": "2017-08-31T08:35:14.000000Z",
                            "updated_at": "2018-10-21T10:27:44.000000Z",
                            "region": {
                                "id": 13,
                                "pays_id": 1,
                                "nom": "Île-de-France",
                                "created_at": "2017-08-31T08:35:14.000000Z",
                                "updated_at": "2017-08-31T08:35:14.000000Z"
                            }
                        }
                    }
                }
            ]
        },
        "first_page_url": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annuaire\/search\/state?page=1",
        "from": 1,
        "last_page": 1,
        "last_page_url": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annuaire\/search\/state?page=1",
        "next_page_url": null,
        "path": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annuaire\/search\/state",
        "per_page": 10,
        "prev_page_url": null,
        "to": 1,
        "total": 1
    }
}

Example response (400):

{
    "code": 400,
    "status": "error",
    "message": {
        "states": [
            "Le champ states est obligatoire."
        ]
    }
}

Request   

GET api/v2/annuaire/search/state

Query Parameters

website  string  
Website Code(ACdev, TC, etc...)

states  string  
Departement, ID, separated by comma

paginate  integer optional  
Number of element by page

page  integer optional  
Page

Search by clients IDS

Example request:

curl -X GET \
    -G "https://dashboard-preprod.appartement-construction.com/api/v2/annuaire/search/ids?website=TC&client_id=1%2C2&paginate=10&page=2" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json"
const url = new URL(
    "https://dashboard-preprod.appartement-construction.com/api/v2/annuaire/search/ids"
);

let params = {
    "website": "TC",
    "client_id": "1,2",
    "paginate": "10",
    "page": "2",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://dashboard-preprod.appartement-construction.com/api/v2/annuaire/search/ids',
    [
        'headers' => [
            'Accept' => 'application/json',
        ],
        'query' => [
            'website'=> 'TC',
            'client_id'=> '1,2',
            'paginate'=> '10',
            'page'=> '2',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dashboard-preprod.appartement-construction.com/api/v2/annuaire/search/ids'
params = {
  'website': 'TC',
  'client_id': '1,2',
  'paginate': '10',
  'page': '2',
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()

Example response (200):

{
    "code": 200,
    "status": "ok",
    "data": {
        "current_page": 1,
        "data": [
            {
                "id": 1,
                "type_id": 5,
                "commune_id": 9,
                "actif": 1,
                "annuaire": 1,
                "nom": "Nexity",
                "adresse": "19 p Rue de Vienne",
                "adresse_2": "Paris 8e Arrondissement",
                "website": "https:\/\/www.nexity.fr",
                "slogan": "Achat, vente, location, gestion, transaction, financement, promotion immobilière et solutions d'accompagnement.",
                "description": "<p>Véritable expert de l’immobilier, grâce à ses filiales spécialisées dans la vente, l’achat, la location ou la gestion de tout type de bien (terrains, bureaux, logements), Nexity est aujourd’hui un promoteur incontournable avec plus de 12 000 logements neufs construits chaque année.<\/p><p>Nexity commercialise actuellement plus de 6000 appartements neufs répartis sur toute la France. Paris, Bordeaux et Marseille sont les villes où se trouvent le plus grand nombre de programmes neufs Nexity avec des prix allant de 57 900€ pour un studio de 18.60m² à Perpignan à 2 150 000€ pour un loft de 95m² à Paris.<\/p><p>Avec l’achat de votre appartement neuf, Nexity vous offre également la recherche des meilleurs financements, grâce à ses nombreux partenariats bancaires. Que ce soit pour votre habitat principal ou pour un investissement locatif, leurs experts immobiliers sauront trouver les meilleurs conditions pour réaliser votre projet.<\/p><p>Si vous souhaitez investir dans l'immobilier neuf, le groupe Nexity développe de nombreux programmes éligibles aux différents dispositifs fiscaux (Pinel, LMNP, Censi-Bouvard) et  assure également la gestion des résidences étudiantes “Studea “et des résidences seniors \"Domitys\".<\/p>",
                "logo": "nexity.png",
                "longitude": "2.321850",
                "latitude": "48.877200",
                "created_at": "2018-10-21T09:51:02.000000Z",
                "updated_at": "2020-03-12T14:04:07.000000Z",
                "logo_url": "https:\/\/files.appartement-construction.com\/images\/client\/nexity.png",
                "childs": [
                    {
                        "id": 2,
                        "parent_id": 1,
                        "type_id": 5,
                        "commune_id": 18,
                        "nom": "TEST2",
                        "created_at": "2018-10-21T11:12:15.000000Z",
                        "updated_at": "2020-03-11T08:15:15.000000Z",
                        "childs": [],
                        "commune": {
                            "id": 18,
                            "departement_id": 1,
                            "nom": "PARIS 17",
                            "insee": "75117",
                            "nom_special": "PARIS 17EME ARRONDISSEMENT",
                            "nom_recherche": "PARIS17EMEARRONDISSEMENT",
                            "actif": 1,
                            "longitude": 2.31923,
                            "latitude": 48.88328,
                            "centre": {
                                "type": "Point",
                                "coordinates": [
                                    2.31923,
                                    48.88328
                                ]
                            },
                            "updated_at": "2021-02-08T16:49:25.000000Z",
                            "departement": {
                                "id": 1,
                                "region_id": 13,
                                "nom": "PARIS",
                                "code": "75",
                                "created_at": "2017-08-31T08:35:14.000000Z",
                                "updated_at": "2018-10-21T10:27:44.000000Z",
                                "region": {
                                    "id": 13,
                                    "pays_id": 1,
                                    "nom": "Île-de-France",
                                    "created_at": "2017-08-31T08:35:14.000000Z",
                                    "updated_at": "2017-08-31T08:35:14.000000Z"
                                }
                            }
                        }
                    }
                ],
                "commune": {
                    "id": 9,
                    "departement_id": 1,
                    "nom": "PARIS 08",
                    "insee": "75108",
                    "nom_special": "PARIS 8EME ARRONDISSEMENT",
                    "nom_recherche": "PARIS8EMEARRONDISSEMENT",
                    "actif": 1,
                    "longitude": 2.316333,
                    "latitude": 48.877783,
                    "centre": {
                        "type": "Point",
                        "coordinates": [
                            2.316333,
                            48.877783
                        ]
                    },
                    "updated_at": "2021-02-08T16:49:25.000000Z",
                    "departement": {
                        "id": 1,
                        "region_id": 13,
                        "nom": "PARIS",
                        "code": "75",
                        "created_at": "2017-08-31T08:35:14.000000Z",
                        "updated_at": "2018-10-21T10:27:44.000000Z",
                        "region": {
                            "id": 13,
                            "pays_id": 1,
                            "nom": "Île-de-France",
                            "created_at": "2017-08-31T08:35:14.000000Z",
                            "updated_at": "2017-08-31T08:35:14.000000Z"
                        }
                    }
                }
            },
            {
                "id": 2202,
                "type_id": 7,
                "commune_id": 9659,
                "actif": 1,
                "annuaire": 1,
                "external_reference": "260045",
                "nom": "LCDI Le comptoir de l'immobilier",
                "email": "contact@lcdimmo.com",
                "adresse": "ZA Fortuneau9 Allée Hispano Suiza",
                "telephone": "04 75 53 19 19",
                "website": "www.lcdimmo.com",
                "logo": "ubiflowbailleur_1_0_260045_260045.jpg",
                "created_at": "2020-11-03T14:39:24.000000Z",
                "updated_at": "2021-02-01T09:26:32.000000Z",
                "logo_url": "https:\/\/files.appartement-construction.com\/images\/client\/ubiflowbailleur_1_0_260045_260045.jpg",
                "childs": [],
                "commune": {
                    "id": 9659,
                    "departement_id": 26,
                    "nom": "MONTELIMAR",
                    "insee": "26198",
                    "nom_special": "Montélimar",
                    "nom_recherche": "MONTELIMAR",
                    "population": 29982,
                    "actif": 1,
                    "longitude": 4.750929,
                    "latitude": 44.558692,
                    "centre": {
                        "type": "Point",
                        "coordinates": [
                            4.750929,
                            44.558692
                        ]
                    },
                    "updated_at": "2021-02-08T16:49:45.000000Z",
                    "departement": {
                        "id": 26,
                        "region_id": 3,
                        "nom": "DROME",
                        "code": "26",
                        "created_at": "2017-08-31T08:35:14.000000Z",
                        "updated_at": "2017-08-31T08:35:14.000000Z",
                        "region": {
                            "id": 3,
                            "pays_id": 1,
                            "nom": "Rhône-Alpes",
                            "created_at": "2017-08-31T08:35:14.000000Z",
                            "updated_at": "2017-08-31T08:35:14.000000Z"
                        }
                    }
                }
            }
        ],
        "first_page_url": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annuaire\/search\/ids?page=1",
        "from": 1,
        "last_page": 1,
        "last_page_url": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annuaire\/search\/ids?page=1",
        "next_page_url": null,
        "path": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annuaire\/search\/ids",
        "per_page": 10,
        "prev_page_url": null,
        "to": 2,
        "total": 2
    }
}

Example response (400):

{
    "code": 400,
    "status": "error",
    "message": {
        "client_id.0": [
            "Le champ client_id.0 sélectionné est invalide."
        ]
    }
}

Request   

GET api/v2/annuaire/search/ids

Query Parameters

website  string  
Website Code(ACdev, TC, etc...)

client_id  string  
Client, ID, separated by comma

paginate  integer optional  
Number of element by page

page  integer optional  
Page

Barometre

APIs for managing barometre

Get by country

Une description à completer

Example request:

curl -X GET \
    -G "https://dashboard-preprod.appartement-construction.com/api/v2/barometre/country" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"website":"TC","type":"APPARTEMENT"}'
const url = new URL(
    "https://dashboard-preprod.appartement-construction.com/api/v2/barometre/country"
);

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

let body = {
    "website": "TC",
    "type": "APPARTEMENT"
}

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

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://dashboard-preprod.appartement-construction.com/api/v2/barometre/country',
    [
        'headers' => [
            'Accept' => 'application/json',
        ],
        'json' => [
            'website' => 'TC',
            'type' => 'APPARTEMENT',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dashboard-preprod.appartement-construction.com/api/v2/barometre/country'
payload = {
    "website": "TC",
    "type": "APPARTEMENT"
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers, json=payload)
response.json()

Example response (200):

{
    "code": 200,
    "status": "ok",
    "data": {
        "m-12": "4630",
        "m-11": "4986",
        "m-10": "4981",
        "m-9": "4966",
        "m-8": "4950",
        "m-7": "5077",
        "m-6": "5030",
        "m-5": "4931",
        "m-4": "5302",
        "m-3": "5425",
        "m-2": "5509",
        "m-1": "5504"
    }
}

Example response (400):

{
    "code": 400,
    "status": "error",
    "message": {
        "website": [
            "Le champ website est obligatoire."
        ]
    }
}

Request   

GET api/v2/barometre/country

Body Parameters

website  string  
Website Code(ACdev, TC, etc...)

type  string optional  
Type [APPARTEMENT,TERRAIN,etc...] Default: APPARTEMENT

Get by state

Example request:

curl -X GET \
    -G "https://dashboard-preprod.appartement-construction.com/api/v2/barometre/state" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"website":"TC","type":"APPARTEMENT","state":"91"}'
const url = new URL(
    "https://dashboard-preprod.appartement-construction.com/api/v2/barometre/state"
);

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

let body = {
    "website": "TC",
    "type": "APPARTEMENT",
    "state": "91"
}

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

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://dashboard-preprod.appartement-construction.com/api/v2/barometre/state',
    [
        'headers' => [
            'Accept' => 'application/json',
        ],
        'json' => [
            'website' => 'TC',
            'type' => 'APPARTEMENT',
            'state' => '91',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dashboard-preprod.appartement-construction.com/api/v2/barometre/state'
payload = {
    "website": "TC",
    "type": "APPARTEMENT",
    "state": "91"
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers, json=payload)
response.json()

Example response (200):

{
    "code": 200,
    "status": "ok",
    "data": {
        "m-12": "4630",
        "m-11": "4986",
        "m-10": "4981",
        "m-9": "4966",
        "m-8": "4950",
        "m-7": "5077",
        "m-6": "5030",
        "m-5": "4931",
        "m-4": "5302",
        "m-3": "5425",
        "m-2": "5509",
        "m-1": "5504"
    }
}

Example response (400):

{
    "code": 400,
    "status": "error",
    "message": {
        "website": [
            "Le champ website est obligatoire."
        ],
        "state": [
            "Le champ state est obligatoire."
        ]
    }
}

Request   

GET api/v2/barometre/state

Body Parameters

website  string  
Website Code(ACdev, TC, etc...)

type  string optional  
Type [APPARTEMENT,TERRAIN,etc...]

state  string  
Department code [67,91,etc...]

Get by zip

Example request:

curl -X GET \
    -G "https://dashboard-preprod.appartement-construction.com/api/v2/barometre/zip" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"website":"TC","type":"APPARTEMENT","zip":"67100","range":50}'
const url = new URL(
    "https://dashboard-preprod.appartement-construction.com/api/v2/barometre/zip"
);

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

let body = {
    "website": "TC",
    "type": "APPARTEMENT",
    "zip": "67100",
    "range": 50
}

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

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://dashboard-preprod.appartement-construction.com/api/v2/barometre/zip',
    [
        'headers' => [
            'Accept' => 'application/json',
        ],
        'json' => [
            'website' => 'TC',
            'type' => 'APPARTEMENT',
            'zip' => '67100',
            'range' => 50,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dashboard-preprod.appartement-construction.com/api/v2/barometre/zip'
payload = {
    "website": "TC",
    "type": "APPARTEMENT",
    "zip": "67100",
    "range": 50
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers, json=payload)
response.json()

Example response (200):

{
    "code": 200,
    "status": "ok",
    "data": {
        "m-12": "4630",
        "m-11": "4986",
        "m-10": "4981",
        "m-9": "4966",
        "m-8": "4950",
        "m-7": "5077",
        "m-6": "5030",
        "m-5": "4931",
        "m-4": "5302",
        "m-3": "5425",
        "m-2": "5509",
        "m-1": "5504"
    }
}

Example response (400):

{
    "code": 400,
    "status": "error",
    "message": {
        "zip": [
            "Le champ zip est obligatoire."
        ]
    }
}

Request   

GET api/v2/barometre/zip

Body Parameters

website  string  
Website Code(ACdev, TC, etc...)

type  string optional  
Type [APPARTEMENT,TERRAIN,etc...]

zip  string  
Zip code [75001,75002,etc...]

range  integer optional  
Range(in km) (Default:0)

Client

APIs for managing clients

Display the specified client.

Example request:

curl -X GET \
    -G "https://dashboard-preprod.appartement-construction.com/api/v2/client/17" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json"
const url = new URL(
    "https://dashboard-preprod.appartement-construction.com/api/v2/client/17"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://dashboard-preprod.appartement-construction.com/api/v2/client/17',
    [
        'headers' => [
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dashboard-preprod.appartement-construction.com/api/v2/client/17'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "code": 200,
    "status": "ok",
    "data": {
        "id": 2579,
        "type_id": 7,
        "commune_id": 18,
        "external_reference": "test-ref",
        "nom": "test",
        "website": "url",
        "source": "api",
        "created_at": "2021-03-16T12:59:34.000000Z",
        "updated_at": "2021-03-16T12:59:34.000000Z"
    }
}

Example response (400):

{
    "code": 400,
    "status": "error",
    "message": {
        "website": [
            "Le champ website est obligatoire."
        ]
    }
}

Request   

GET api/v2/client/{client}

URL Parameters

client  integer optional  
Client ID

Store a newly created client.

Example request:

curl -X POST \
    "https://dashboard-preprod.appartement-construction.com/api/v2/client" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"website":"TC","parent_id":2,"type":"AGENCE","commune_id":75,"actif":false,"annuaire":false,"external_reference":"custom reference","nom":"John Doe","email":"john.doe@example.com","adresse":"11 rue du paradis 00000 Ciel","adresse_2":"13 rue du paradis 00000 Ciel","telephone":"0909090909","slogan":"We are the champions","description":"He is very <h1>Big<\/h1>","url":"https:\/\/urloftheclient.fr"}'
const url = new URL(
    "https://dashboard-preprod.appartement-construction.com/api/v2/client"
);

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

let body = {
    "website": "TC",
    "parent_id": 2,
    "type": "AGENCE",
    "commune_id": 75,
    "actif": false,
    "annuaire": false,
    "external_reference": "custom reference",
    "nom": "John Doe",
    "email": "john.doe@example.com",
    "adresse": "11 rue du paradis 00000 Ciel",
    "adresse_2": "13 rue du paradis 00000 Ciel",
    "telephone": "0909090909",
    "slogan": "We are the champions",
    "description": "He is very <h1>Big<\/h1>",
    "url": "https:\/\/urloftheclient.fr"
}

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

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://dashboard-preprod.appartement-construction.com/api/v2/client',
    [
        'headers' => [
            'Accept' => 'application/json',
        ],
        'json' => [
            'website' => 'TC',
            'parent_id' => 2,
            'type' => 'AGENCE',
            'commune_id' => 75,
            'actif' => false,
            'annuaire' => false,
            'external_reference' => 'custom reference',
            'nom' => 'John Doe',
            'email' => 'john.doe@example.com',
            'adresse' => '11 rue du paradis 00000 Ciel',
            'adresse_2' => '13 rue du paradis 00000 Ciel',
            'telephone' => '0909090909',
            'slogan' => 'We are the champions',
            'description' => 'He is very <h1>Big</h1>',
            'url' => 'https://urloftheclient.fr',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dashboard-preprod.appartement-construction.com/api/v2/client'
payload = {
    "website": "TC",
    "parent_id": 2,
    "type": "AGENCE",
    "commune_id": 75,
    "actif": false,
    "annuaire": false,
    "external_reference": "custom reference",
    "nom": "John Doe",
    "email": "john.doe@example.com",
    "adresse": "11 rue du paradis 00000 Ciel",
    "adresse_2": "13 rue du paradis 00000 Ciel",
    "telephone": "0909090909",
    "slogan": "We are the champions",
    "description": "He is very <h1>Big<\/h1>",
    "url": "https:\/\/urloftheclient.fr"
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (200):

{
    "code": 200,
    "status": "ok",
    "data": {
        "type_id": 7,
        "commune_id": "18",
        "external_reference": "test-ref",
        "nom": "test",
        "source": "api",
        "website": "url",
        "updated_at": "2021-03-16T12:30:03.000000Z",
        "created_at": "2021-03-16T12:30:03.000000Z",
        "id": 2578
    }
}

Example response (400):

{
    "code": 400,
    "status": "error",
    "message": {
        "type_id": [
            "Le champ type id est obligatoire."
        ],
        "commune_id": [
            "Le champ commune id est obligatoire."
        ],
        "external_reference": [
            "Le champ external reference est obligatoire."
        ],
        "nom": [
            "Le champ nom est obligatoire."
        ]
    }
}

Request   

POST api/v2/client

Body Parameters

website  string  
Website Code(ACdev, TC, etc...)

parent_id  integer optional  
Parent Client ID

type  string  
Type of client (PROMOTEUR,MULTI-DIFFUSEUR,AGENCE)

commune_id  integer optional  
Commune ID

actif  boolean optional  
1 if user is active, else 0 (Default:0)

annuaire  boolean optional  
1 if client need to be searchable on annuaire (Default:0)

external_reference  string  
Unique reference for client

nom  string  
Name of the client

email  string optional  
Email of the client

adresse  string optional  
Address of the client

adresse_2  string optional  
Address Line 2 of the client

telephone  string optional  
Phone Number of the client

slogan  string optional  
Baseline of the client

description  string optional  
Html escaped description

longitude  string optional  
Longitude coordinate

latitude  string optional  
Latitude coordinate

url  string optional  
Url of the client

Update the specified client.

Example request:

curl -X POST \
    "https://dashboard-preprod.appartement-construction.com/api/v2/client/{client}" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"website":"TC","parent_id":2,"type":"AGENCE","commune_id":75,"actif":false,"annuaire":false,"external_reference":"custom reference","nom":"John Doe","email":"john.doe@example.com","adresse":"11 rue du paradis 00000 Ciel","adresse_2":"13 rue du paradis 00000 Ciel","telephone":"0909090909","slogan":"We are the champions","description":"He is very <h1>Big<\/h1>","url":"https:\/\/urloftheclient.fr"}'
const url = new URL(
    "https://dashboard-preprod.appartement-construction.com/api/v2/client/{client}"
);

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

let body = {
    "website": "TC",
    "parent_id": 2,
    "type": "AGENCE",
    "commune_id": 75,
    "actif": false,
    "annuaire": false,
    "external_reference": "custom reference",
    "nom": "John Doe",
    "email": "john.doe@example.com",
    "adresse": "11 rue du paradis 00000 Ciel",
    "adresse_2": "13 rue du paradis 00000 Ciel",
    "telephone": "0909090909",
    "slogan": "We are the champions",
    "description": "He is very <h1>Big<\/h1>",
    "url": "https:\/\/urloftheclient.fr"
}

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

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://dashboard-preprod.appartement-construction.com/api/v2/client/{client}',
    [
        'headers' => [
            'Accept' => 'application/json',
        ],
        'json' => [
            'website' => 'TC',
            'parent_id' => 2,
            'type' => 'AGENCE',
            'commune_id' => 75,
            'actif' => false,
            'annuaire' => false,
            'external_reference' => 'custom reference',
            'nom' => 'John Doe',
            'email' => 'john.doe@example.com',
            'adresse' => '11 rue du paradis 00000 Ciel',
            'adresse_2' => '13 rue du paradis 00000 Ciel',
            'telephone' => '0909090909',
            'slogan' => 'We are the champions',
            'description' => 'He is very <h1>Big</h1>',
            'url' => 'https://urloftheclient.fr',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dashboard-preprod.appartement-construction.com/api/v2/client/{client}'
payload = {
    "website": "TC",
    "parent_id": 2,
    "type": "AGENCE",
    "commune_id": 75,
    "actif": false,
    "annuaire": false,
    "external_reference": "custom reference",
    "nom": "John Doe",
    "email": "john.doe@example.com",
    "adresse": "11 rue du paradis 00000 Ciel",
    "adresse_2": "13 rue du paradis 00000 Ciel",
    "telephone": "0909090909",
    "slogan": "We are the champions",
    "description": "He is very <h1>Big<\/h1>",
    "url": "https:\/\/urloftheclient.fr"
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (200):

{
    "code": 200,
    "status": "ok",
    "data": {
        "id": 2578,
        "type_id": 5,
        "commune_id": "17",
        "external_reference": "test-ref2",
        "nom": "test2",
        "website": "url",
        "source": "api",
        "created_at": "2021-03-16T12:30:03.000000Z",
        "updated_at": "2021-03-16T12:51:22.000000Z"
    }
}

Example response (400):

{
    "code": 400,
    "status": "error",
    "message": {
        "client_id": [
            "Le champ client id sélectionné est invalide."
        ]
    }
}

Request   

POST api/v2/client/{client}

Body Parameters

website  string  
Website Code(ACdev, TC, etc...)

parent_id  integer optional  
Parent Client ID

type  string optional  
Type of client (PROMOTEUR,MULTI-DIFFUSEUR,AGENCE)

commune_id  integer optional  
Commune ID

actif  boolean optional  
1 if user is active, else 0 (Default:0)

annuaire  boolean optional  
1 if client need to be searchable on annuaire (Default:0)

external_reference  string optional  
Unique reference for client

nom  string optional  
Name of the client

email  string optional  
Email of the client

adresse  string optional  
Address of the client

adresse_2  string optional  
Address Line 2 of the client

telephone  string optional  
Phone Number of the client

slogan  string optional  
Baseline of the client

description  string optional  
Html escaped description

longitude  string optional  
Longitude coordinate

latitude  string optional  
Latitude coordinate

url  string optional  
Url of the client

Remove the specified client.

Example request:

curl -X DELETE \
    "https://dashboard-preprod.appartement-construction.com/api/v2/client/123" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"website":"TC"}'
const url = new URL(
    "https://dashboard-preprod.appartement-construction.com/api/v2/client/123"
);

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

let body = {
    "website": "TC"
}

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

$client = new \GuzzleHttp\Client();
$response = $client->delete(
    'https://dashboard-preprod.appartement-construction.com/api/v2/client/123',
    [
        'headers' => [
            'Accept' => 'application/json',
        ],
        'json' => [
            'website' => 'TC',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dashboard-preprod.appartement-construction.com/api/v2/client/123'
payload = {
    "website": "TC"
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('DELETE', url, headers=headers, json=payload)
response.json()

Example response (200):

{
    "code": 200,
    "status": "ok",
    "message": "client deleted"
}

Example response (400):

{
    "code": 400,
    "status": "error",
    "message": {
        "client_id": [
            "Le champ client id sélectionné est invalide."
        ]
    }
}

Request   

DELETE api/v2/client/{client}

URL Parameters

client  string  
Client id

Body Parameters

website  string  
Website Code(ACdev, TC, etc...)

Consultations

APIs for managing consultations

Most viewed programmes

Example request:

curl -X GET \
    -G "https://dashboard-preprod.appartement-construction.com/api/v2/consultation/programme/mostviewed?paginate=15&offset=30" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json"
const url = new URL(
    "https://dashboard-preprod.appartement-construction.com/api/v2/consultation/programme/mostviewed"
);

let params = {
    "paginate": "15",
    "offset": "30",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://dashboard-preprod.appartement-construction.com/api/v2/consultation/programme/mostviewed',
    [
        'headers' => [
            'Accept' => 'application/json',
        ],
        'query' => [
            'paginate'=> '15',
            'offset'=> '30',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dashboard-preprod.appartement-construction.com/api/v2/consultation/programme/mostviewed'
params = {
  'paginate': '15',
  'offset': '30',
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()

Example response (200):

{
    "code": 200,
    "status": "ok",
    "data": [
        {
            "id": 1142,
            "annonce_id": null,
            "programme_id": 4,
            "website_id": 3,
            "ip": "66.249.79.227",
            "client_vars": "a:52:{s:21:\"PHP_FCGI_MAX_REQUESTS\";s:4:\"5000\";s:5:\"PHPRC\";s:18:\"\/var\/www\/conf\/web3\";s:3:\"PWD\";s:30:\"\/var\/www\/php-fcgi-scripts\/web3\";s:6:\"TMPDIR\";s:33:\"\/var\/www\/clients\/client1\/web3\/tmp\";s:4:\"TEMP\";s:33:\"\/var\/www\/clients\/client1\/web3\/tmp\";s:5:\"SHLVL\";s:1:\"0\";s:3:\"TMP\";s:33:\"\/var\/www\/clients\/client1\/web3\/tmp\";s:4:\"PATH\";s:60:\"\/usr\/local\/sbin:\/usr\/local\/bin:\/usr\/sbin:\/usr\/bin:\/sbin:\/bin\";s:17:\"PHP_DOCUMENT_ROOT\";s:29:\"\/var\/www\/clients\/client1\/web3\";s:14:\"CONTENT_LENGTH\";s:1:\"0\";s:11:\"SCRIPT_NAME\";s:10:\"\/index.php\";s:11:\"REQUEST_URI\";s:48:\"\/immobilier-neuf\/vezin-le-coquet-35132\/bellevy-4\";s:12:\"QUERY_STRING\";s:0:\"\";s:14:\"REQUEST_METHOD\";s:3:\"GET\";s:15:\"SERVER_PROTOCOL\";s:8:\"HTTP\/1.1\";s:17:\"GATEWAY_INTERFACE\";s:7:\"CGI\/1.1\";s:12:\"REDIRECT_URL\";s:48:\"\/immobilier-neuf\/vezin-le-coquet-35132\/bellevy-4\";s:11:\"REMOTE_PORT\";s:5:\"61032\";s:15:\"SCRIPT_FILENAME\";s:57:\"\/var\/www\/appartement-construction.com\/web\/front\/index.php\";s:12:\"SERVER_ADMIN\";s:38:\"webmaster@appartement-construction.com\";s:21:\"CONTEXT_DOCUMENT_ROOT\";s:47:\"\/var\/www\/appartement-construction.com\/web\/front\";s:14:\"CONTEXT_PREFIX\";s:0:\"\";s:14:\"REQUEST_SCHEME\";s:5:\"https\";s:13:\"DOCUMENT_ROOT\";s:47:\"\/var\/www\/appartement-construction.com\/web\/front\";s:11:\"REMOTE_ADDR\";s:13:\"66.249.79.227\";s:11:\"SERVER_PORT\";s:3:\"443\";s:11:\"SERVER_ADDR\";s:14:\"51.178.239.163\";s:11:\"SERVER_NAME\";s:32:\"www.appartement-construction.com\";s:15:\"SERVER_SOFTWARE\";s:22:\"Apache\/2.4.38 (Debian)\";s:16:\"SERVER_SIGNATURE\";s:94:\"<address>Apache\/2.4.38 (Debian) Server at www.appartement-construction.com Port 443<\/address>\n\";s:20:\"HTTP_ACCEPT_ENCODING\";s:15:\"gzip,deflate,br\";s:15:\"HTTP_USER_AGENT\";s:198:\"Mozilla\/5.0 (Linux; Android 6.0.1; Nexus 5X Build\/MMB29P) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/41.0.2272.96 Mobile Safari\/537.36 (compatible; Googlebot\/2.1; +http:\/\/www.google.com\/bot.html)\";s:9:\"HTTP_FROM\";s:26:\"googlebot(at)googlebot.com\";s:11:\"HTTP_ACCEPT\";s:96:\"text\/html,application\/xhtml+xml,application\/signed-exchange;v=b3,application\/xml;q=0.9,*\/*;q=0.8\";s:15:\"HTTP_CONNECTION\";s:5:\"close\";s:24:\"HTTP_AMP_CACHE_TRANSFORM\";s:15:\"google;v=\"1..3\"\";s:9:\"HTTP_HOST\";s:32:\"www.appartement-construction.com\";s:11:\"SSL_TLS_SNI\";s:32:\"www.appartement-construction.com\";s:5:\"HTTPS\";s:2:\"on\";s:18:\"HTTP_AUTHORIZATION\";s:0:\"\";s:10:\"SCRIPT_URI\";s:88:\"https:\/\/www.appartement-construction.com\/immobilier-neuf\/vezin-le-coquet-35132\/bellevy-4\";s:10:\"SCRIPT_URL\";s:48:\"\/immobilier-neuf\/vezin-le-coquet-35132\/bellevy-4\";s:15:\"REDIRECT_STATUS\";s:3:\"200\";s:20:\"REDIRECT_SSL_TLS_SNI\";s:32:\"www.appartement-construction.com\";s:14:\"REDIRECT_HTTPS\";s:2:\"on\";s:27:\"REDIRECT_HTTP_AUTHORIZATION\";s:0:\"\";s:19:\"REDIRECT_SCRIPT_URI\";s:88:\"https:\/\/www.appartement-construction.com\/immobilier-neuf\/vezin-le-coquet-35132\/bellevy-4\";s:19:\"REDIRECT_SCRIPT_URL\";s:48:\"\/immobilier-neuf\/vezin-le-coquet-35132\/bellevy-4\";s:9:\"FCGI_ROLE\";s:9:\"RESPONDER\";s:8:\"PHP_SELF\";s:10:\"\/index.php\";s:18:\"REQUEST_TIME_FLOAT\";d:1588362011.822298;s:12:\"REQUEST_TIME\";i:1588362011;}",
            "created_at": "2020-05-01T17:40:11.000000Z",
            "updated_at": "2020-05-01T17:40:11.000000Z",
            "deleted_at": null,
            "programme_count": 1,
            "programme": {
                "id": 4,
                "commune_id": 14190,
                "client_id": 1,
                "external_reference": "0058__58068",
                "slugged_external_reference": "0058-58068",
                "email_contact_additionnel": null,
                "adresse": "LIEU DIT LE MOULIN A VENT",
                "proximite": "",
                "libelle": "BELLEVY",
                "description": "Démarrage travaux !<BR><BR>Jusqu'au 20 décembre 2020, Nexity vous offre les frais de notaire, la 1ère mise en location, la première année de gestion locative.*<BR><BR>Aux portes de RENNES, à VEZIN LE COQUET où il fait bon vivre. Dans un cadre verdoyant à deux pas des commerces, BELLEVY vous attend :<BR><BR> Découvrez 26 appartements du 2 au 3 pièces. Il ont été pensés pour votre confort avec des esapces de vie lumineux et spacieux qui se prolongent vers l'extérieur grâce à des balcons, terrasses ou jardins privatifs pour ceux en rez-de-chaussée.<BR><BR>*Voir conditions détaillées en Espace de Vente, dans la limite des stocks disponibles. Pour toutes informations complémentaires, prenez contact avec nous !",
                "avant_premiere": 0,
                "exclusivite": null,
                "priorite_visibilite": 0,
                "appartement": 1,
                "maison": 0,
                "terrain": 0,
                "piscine": 0,
                "climatisation": 1,
                "pinel": 1,
                "anru": null,
                "lmnp": null,
                "tva5": null,
                "localisation_mer": null,
                "localisation_montagne": null,
                "localisation_etranger": null,
                "type_senior": null,
                "type_etudiant": null,
                "type_tourisme": null,
                "date_dispo": "2022-06-29T22:00:00.000000Z",
                "identifiant_quartier": "",
                "transport_ligne": "",
                "transport_station": "",
                "etat": "",
                "conso_energie": "",
                "bilan_conso_energie": "",
                "emission_ges": "",
                "bilan_emission_ges": "",
                "identifiant_technique": null,
                "create_batch_id": 2,
                "update_batch_id": 2476,
                "remove_batch_id": null,
                "lastseen_batch_id": 2674,
                "source": null,
                "from_website": null,
                "published": 1,
                "moderated": 0,
                "published_at": "2020-12-28T11:06:30.000000Z",
                "created_at": "2020-02-20T13:01:18.000000Z",
                "updated_at": "2020-12-28T11:06:30.000000Z",
                "deleted_at": null,
                "firstdocument": "https:\/\/files-preprod.appartement-construction.com\/images\/nexity_2_0\/0058-58068\/3_0058_58068_PRG_PHOT_58068.jpg",
                "commune": {
                    "id": 14190,
                    "departement_id": 37,
                    "nom": "VEZIN LE COQUET",
                    "insee": "35353",
                    "nom_special": "Vezin-le-Coquet",
                    "nom_recherche": "VEZINLECOQUET",
                    "prefixe_nom_special": "",
                    "population": 3268,
                    "actif": 1,
                    "zone_id": null,
                    "longitude": -1.757291,
                    "latitude": 48.118991,
                    "centre": {
                        "type": "Point",
                        "coordinates": [
                            -1.757291,
                            48.118991
                        ]
                    },
                    "created_at": null,
                    "updated_at": "2021-02-08T16:49:55.000000Z",
                    "deleted_at": null,
                    "departement": {
                        "id": 37,
                        "region_id": 10,
                        "nom": "ILLE-ET-VILAINE",
                        "code": "35",
                        "created_at": "2017-08-31T08:35:14.000000Z",
                        "updated_at": "2017-08-31T08:35:14.000000Z",
                        "deleted_at": null,
                        "region": {
                            "id": 10,
                            "pays_id": 1,
                            "nom": "Bretagne",
                            "created_at": "2017-08-31T08:35:14.000000Z",
                            "updated_at": "2017-08-31T08:35:14.000000Z",
                            "deleted_at": null
                        }
                    },
                    "firstdistribution": {
                        "id": 14261,
                        "commune_id": 14190,
                        "code_postal": "35132",
                        "acheminement": "VEZIN LE COQUET",
                        "actif": 1,
                        "created_at": null,
                        "updated_at": null,
                        "deleted_at": null
                    }
                }
            }
        },
        {
            "id": 523,
            "annonce_id": null,
            "programme_id": 10,
            "website_id": 3,
            "ip": "66.249.79.225",
            "client_vars": "a:52:{s:21:\"PHP_FCGI_MAX_REQUESTS\";s:4:\"5000\";s:5:\"PHPRC\";s:18:\"\/var\/www\/conf\/web3\";s:3:\"PWD\";s:30:\"\/var\/www\/php-fcgi-scripts\/web3\";s:6:\"TMPDIR\";s:33:\"\/var\/www\/clients\/client1\/web3\/tmp\";s:4:\"TEMP\";s:33:\"\/var\/www\/clients\/client1\/web3\/tmp\";s:5:\"SHLVL\";s:1:\"0\";s:3:\"TMP\";s:33:\"\/var\/www\/clients\/client1\/web3\/tmp\";s:4:\"PATH\";s:60:\"\/usr\/local\/sbin:\/usr\/local\/bin:\/usr\/sbin:\/usr\/bin:\/sbin:\/bin\";s:17:\"PHP_DOCUMENT_ROOT\";s:29:\"\/var\/www\/clients\/client1\/web3\";s:14:\"CONTENT_LENGTH\";s:1:\"0\";s:11:\"SCRIPT_NAME\";s:10:\"\/index.php\";s:11:\"REQUEST_URI\";s:41:\"\/immobilier-neuf\/toulouse-31000\/pop-up-10\";s:12:\"QUERY_STRING\";s:0:\"\";s:14:\"REQUEST_METHOD\";s:3:\"GET\";s:15:\"SERVER_PROTOCOL\";s:8:\"HTTP\/1.1\";s:17:\"GATEWAY_INTERFACE\";s:7:\"CGI\/1.1\";s:12:\"REDIRECT_URL\";s:41:\"\/immobilier-neuf\/toulouse-31000\/pop-up-10\";s:11:\"REMOTE_PORT\";s:5:\"52535\";s:15:\"SCRIPT_FILENAME\";s:57:\"\/var\/www\/appartement-construction.com\/web\/front\/index.php\";s:12:\"SERVER_ADMIN\";s:38:\"webmaster@appartement-construction.com\";s:21:\"CONTEXT_DOCUMENT_ROOT\";s:47:\"\/var\/www\/appartement-construction.com\/web\/front\";s:14:\"CONTEXT_PREFIX\";s:0:\"\";s:14:\"REQUEST_SCHEME\";s:5:\"https\";s:13:\"DOCUMENT_ROOT\";s:47:\"\/var\/www\/appartement-construction.com\/web\/front\";s:11:\"REMOTE_ADDR\";s:13:\"66.249.79.225\";s:11:\"SERVER_PORT\";s:3:\"443\";s:11:\"SERVER_ADDR\";s:14:\"51.178.239.163\";s:11:\"SERVER_NAME\";s:32:\"www.appartement-construction.com\";s:15:\"SERVER_SOFTWARE\";s:22:\"Apache\/2.4.38 (Debian)\";s:16:\"SERVER_SIGNATURE\";s:94:\"<address>Apache\/2.4.38 (Debian) Server at www.appartement-construction.com Port 443<\/address>\n\";s:20:\"HTTP_ACCEPT_ENCODING\";s:15:\"gzip,deflate,br\";s:15:\"HTTP_USER_AGENT\";s:198:\"Mozilla\/5.0 (Linux; Android 6.0.1; Nexus 5X Build\/MMB29P) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/80.0.3987.92 Mobile Safari\/537.36 (compatible; Googlebot\/2.1; +http:\/\/www.google.com\/bot.html)\";s:9:\"HTTP_FROM\";s:26:\"googlebot(at)googlebot.com\";s:11:\"HTTP_ACCEPT\";s:96:\"text\/html,application\/xhtml+xml,application\/signed-exchange;v=b3,application\/xml;q=0.9,*\/*;q=0.8\";s:15:\"HTTP_CONNECTION\";s:5:\"close\";s:24:\"HTTP_AMP_CACHE_TRANSFORM\";s:15:\"google;v=\"1..3\"\";s:9:\"HTTP_HOST\";s:32:\"www.appartement-construction.com\";s:11:\"SSL_TLS_SNI\";s:32:\"www.appartement-construction.com\";s:5:\"HTTPS\";s:2:\"on\";s:18:\"HTTP_AUTHORIZATION\";s:0:\"\";s:10:\"SCRIPT_URI\";s:81:\"https:\/\/www.appartement-construction.com\/immobilier-neuf\/toulouse-31000\/pop-up-10\";s:10:\"SCRIPT_URL\";s:41:\"\/immobilier-neuf\/toulouse-31000\/pop-up-10\";s:15:\"REDIRECT_STATUS\";s:3:\"200\";s:20:\"REDIRECT_SSL_TLS_SNI\";s:32:\"www.appartement-construction.com\";s:14:\"REDIRECT_HTTPS\";s:2:\"on\";s:27:\"REDIRECT_HTTP_AUTHORIZATION\";s:0:\"\";s:19:\"REDIRECT_SCRIPT_URI\";s:81:\"https:\/\/www.appartement-construction.com\/immobilier-neuf\/toulouse-31000\/pop-up-10\";s:19:\"REDIRECT_SCRIPT_URL\";s:41:\"\/immobilier-neuf\/toulouse-31000\/pop-up-10\";s:9:\"FCGI_ROLE\";s:9:\"RESPONDER\";s:8:\"PHP_SELF\";s:10:\"\/index.php\";s:18:\"REQUEST_TIME_FLOAT\";d:1588300825.914304;s:12:\"REQUEST_TIME\";i:1588300825;}",
            "created_at": "2020-05-01T00:40:25.000000Z",
            "updated_at": "2020-05-01T00:40:25.000000Z",
            "deleted_at": null,
            "programme_count": 1,
            "programme": {
                "id": 10,
                "commune_id": 12462,
                "client_id": 1,
                "external_reference": "0049__49028",
                "slugged_external_reference": "0049-49028",
                "email_contact_additionnel": null,
                "adresse": "395 ROUTE DE ST SIMON",
                "proximite": "",
                "libelle": "POP UP",
                "description": "Devenez propriétaire de votre appartement à Toulouse. Achetez votre futur logement  accessible en TVA réduite, située à 2 min à pied du métro, du tramway, de 5 lignes de bus, du jardin du Pech. Du T2 au T5 duplex, la résidence propose de grandes surfaces, et fait la part belle au végétal. Les appartements sont connectés avec domotique et bénéficient même de jardinières afin de réaliser vos plantations !<BR>Poute toutes informations complémentaires, prenez-contact avec nous ! Pour toutes informations complémentaires, prenez contact avec nous !",
                "avant_premiere": 0,
                "exclusivite": null,
                "priorite_visibilite": 0,
                "appartement": 1,
                "maison": 0,
                "terrain": 0,
                "piscine": 0,
                "climatisation": 1,
                "pinel": 1,
                "anru": null,
                "lmnp": null,
                "tva5": null,
                "localisation_mer": null,
                "localisation_montagne": null,
                "localisation_etranger": null,
                "type_senior": null,
                "type_etudiant": null,
                "type_tourisme": null,
                "date_dispo": "2022-12-30T23:00:00.000000Z",
                "identifiant_quartier": "",
                "transport_ligne": "",
                "transport_station": "",
                "etat": "",
                "conso_energie": "",
                "bilan_conso_energie": "",
                "emission_ges": "",
                "bilan_emission_ges": "",
                "identifiant_technique": null,
                "create_batch_id": 2,
                "update_batch_id": 2476,
                "remove_batch_id": null,
                "lastseen_batch_id": 2674,
                "source": null,
                "from_website": null,
                "published": 1,
                "moderated": 0,
                "published_at": "2020-12-28T11:08:04.000000Z",
                "created_at": "2020-02-20T13:01:48.000000Z",
                "updated_at": "2020-12-28T11:08:04.000000Z",
                "deleted_at": null,
                "firstdocument": "https:\/\/files-preprod.appartement-construction.com\/images\/nexity_2_0\/0049-49028\/3_0049_49028_PRG_PHOT_49028.jpg",
                "commune": {
                    "id": 12462,
                    "departement_id": 33,
                    "nom": "TOULOUSE",
                    "insee": "31555",
                    "nom_special": "Toulouse",
                    "nom_recherche": "TOULOUSE",
                    "prefixe_nom_special": "",
                    "population": 358688,
                    "actif": 1,
                    "zone_id": null,
                    "longitude": 1.442949,
                    "latitude": 43.604378,
                    "centre": {
                        "type": "Point",
                        "coordinates": [
                            1.442949,
                            43.604378
                        ]
                    },
                    "created_at": null,
                    "updated_at": "2021-02-08T16:49:52.000000Z",
                    "deleted_at": null,
                    "departement": {
                        "id": 33,
                        "region_id": 19,
                        "nom": "HAUTE-GARONNE",
                        "code": "31",
                        "created_at": "2017-08-31T08:35:14.000000Z",
                        "updated_at": "2017-08-31T08:35:14.000000Z",
                        "deleted_at": null,
                        "region": {
                            "id": 19,
                            "pays_id": 1,
                            "nom": "Midi-Pyrénées",
                            "created_at": "2017-08-31T08:35:14.000000Z",
                            "updated_at": "2017-08-31T08:35:14.000000Z",
                            "deleted_at": null
                        }
                    },
                    "firstdistribution": {
                        "id": 70348,
                        "commune_id": 12462,
                        "code_postal": "31503",
                        "acheminement": "TOULOUSE CEDEX 9",
                        "actif": 0,
                        "created_at": null,
                        "updated_at": null,
                        "deleted_at": null
                    }
                }
            }
        },
        {
            "id": 22,
            "annonce_id": null,
            "programme_id": 7,
            "website_id": 4,
            "ip": "88.122.71.162",
            "client_vars": "a:54:{s:21:\"PHP_FCGI_MAX_REQUESTS\";s:4:\"5000\";s:5:\"PHPRC\";s:18:\"\/var\/www\/conf\/web2\";s:3:\"PWD\";s:30:\"\/var\/www\/php-fcgi-scripts\/web2\";s:6:\"TMPDIR\";s:33:\"\/var\/www\/clients\/client1\/web2\/tmp\";s:4:\"TEMP\";s:33:\"\/var\/www\/clients\/client1\/web2\/tmp\";s:5:\"SHLVL\";s:1:\"0\";s:3:\"TMP\";s:33:\"\/var\/www\/clients\/client1\/web2\/tmp\";s:4:\"PATH\";s:60:\"\/usr\/local\/sbin:\/usr\/local\/bin:\/usr\/sbin:\/usr\/bin:\/sbin:\/bin\";s:17:\"PHP_DOCUMENT_ROOT\";s:29:\"\/var\/www\/clients\/client1\/web2\";s:14:\"CONTENT_LENGTH\";s:1:\"0\";s:11:\"SCRIPT_NAME\";s:10:\"\/index.php\";s:11:\"REQUEST_URI\";s:62:\"\/immobilier-neuf\/villeurbanne-69100\/n-o-u-nouvel-opus-urbain-7\";s:12:\"QUERY_STRING\";s:0:\"\";s:14:\"REQUEST_METHOD\";s:3:\"GET\";s:15:\"SERVER_PROTOCOL\";s:8:\"HTTP\/1.1\";s:17:\"GATEWAY_INTERFACE\";s:7:\"CGI\/1.1\";s:12:\"REDIRECT_URL\";s:62:\"\/immobilier-neuf\/villeurbanne-69100\/n-o-u-nouvel-opus-urbain-7\";s:11:\"REMOTE_PORT\";s:5:\"10806\";s:15:\"SCRIPT_FILENAME\";s:62:\"\/var\/www\/site.appartement-construction.com\/web\/front\/index.php\";s:12:\"SERVER_ADMIN\";s:43:\"webmaster@site.appartement-construction.com\";s:21:\"CONTEXT_DOCUMENT_ROOT\";s:52:\"\/var\/www\/site.appartement-construction.com\/web\/front\";s:14:\"CONTEXT_PREFIX\";s:0:\"\";s:14:\"REQUEST_SCHEME\";s:5:\"https\";s:13:\"DOCUMENT_ROOT\";s:52:\"\/var\/www\/site.appartement-construction.com\/web\/front\";s:11:\"REMOTE_ADDR\";s:13:\"88.122.71.162\";s:11:\"SERVER_PORT\";s:3:\"443\";s:11:\"SERVER_ADDR\";s:14:\"51.178.239.163\";s:11:\"SERVER_NAME\";s:33:\"site.appartement-construction.com\";s:15:\"SERVER_SOFTWARE\";s:22:\"Apache\/2.4.38 (Debian)\";s:16:\"SERVER_SIGNATURE\";s:95:\"<address>Apache\/2.4.38 (Debian) Server at site.appartement-construction.com Port 443<\/address>\n\";s:30:\"HTTP_UPGRADE_INSECURE_REQUESTS\";s:1:\"1\";s:11:\"HTTP_COOKIE\";s:225:\"e307950b3801e514b33df7c44db64a49=93j1v4anouqekbuetp3nfv99c7; ec9dfa1590ea6ce792f6a5bf773be8c1=judqu33t6gq2sfkmnusgeqdjdn; _ga=GA1.2.296935586.1583311457; _gid=GA1.2.1863087917.1583311457; dhtmlgoodies_expandedNodes=%2C1358%2C\";s:12:\"HTTP_REFERER\";s:73:\"https:\/\/site.appartement-construction.com\/immobilier-neuf\/bretagne\/page\/2\";s:15:\"HTTP_CONNECTION\";s:5:\"close\";s:20:\"HTTP_ACCEPT_ENCODING\";s:17:\"gzip, deflate, br\";s:20:\"HTTP_ACCEPT_LANGUAGE\";s:35:\"fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\";s:11:\"HTTP_ACCEPT\";s:74:\"text\/html,application\/xhtml+xml,application\/xml;q=0.9,image\/webp,*\/*;q=0.8\";s:15:\"HTTP_USER_AGENT\";s:76:\"Mozilla\/5.0 (X11; Ubuntu; Linux x86_64; rv:73.0) Gecko\/20100101 Firefox\/73.0\";s:9:\"HTTP_HOST\";s:33:\"site.appartement-construction.com\";s:11:\"SSL_TLS_SNI\";s:33:\"site.appartement-construction.com\";s:5:\"HTTPS\";s:2:\"on\";s:18:\"HTTP_AUTHORIZATION\";s:0:\"\";s:10:\"SCRIPT_URI\";s:103:\"https:\/\/site.appartement-construction.com\/immobilier-neuf\/villeurbanne-69100\/n-o-u-nouvel-opus-urbain-7\";s:10:\"SCRIPT_URL\";s:62:\"\/immobilier-neuf\/villeurbanne-69100\/n-o-u-nouvel-opus-urbain-7\";s:15:\"REDIRECT_STATUS\";s:3:\"200\";s:20:\"REDIRECT_SSL_TLS_SNI\";s:33:\"site.appartement-construction.com\";s:14:\"REDIRECT_HTTPS\";s:2:\"on\";s:27:\"REDIRECT_HTTP_AUTHORIZATION\";s:0:\"\";s:19:\"REDIRECT_SCRIPT_URI\";s:103:\"https:\/\/site.appartement-construction.com\/immobilier-neuf\/villeurbanne-69100\/n-o-u-nouvel-opus-urbain-7\";s:19:\"REDIRECT_SCRIPT_URL\";s:62:\"\/immobilier-neuf\/villeurbanne-69100\/n-o-u-nouvel-opus-urbain-7\";s:9:\"FCGI_ROLE\";s:9:\"RESPONDER\";s:8:\"PHP_SELF\";s:10:\"\/index.php\";s:18:\"REQUEST_TIME_FLOAT\";d:1583403119.065245;s:12:\"REQUEST_TIME\";i:1583403119;}",
            "created_at": "2020-03-05T09:11:59.000000Z",
            "updated_at": "2020-03-05T09:11:59.000000Z",
            "deleted_at": null,
            "programme_count": 1,
            "programme": {
                "id": 7,
                "commune_id": 28709,
                "client_id": 1,
                "external_reference": "0051__06659",
                "slugged_external_reference": "0051-06659",
                "email_contact_additionnel": null,
                "adresse": "RUE LIBERTE",
                "proximite": "",
                "libelle": "N.O.U : NOUVEL OPUS URBAIN",
                "description": "Profitez d'offres exceptionnelles jusqu'au 20 décembre 2020 !<BR><BR>Venez découvrir, au pied du métro, à Villeurbanne,  votre nouvelle résidence au coeur d'un parc arboré. Au pied du métro et à proximité directe des commerces, ce nouvel ensemble offre des logements du 2 au 5 pièces prolongés par des terrasses ou loggias. Les plus chanceux pourront profiter de duplex en étage élevé. <BR><BR>Avec des immeubles de belles hauteurs, vous aurez une vue dégagée sur la métropole de Lyon et la chaine des alpes. <BR><BR>Réel jardin dans la ville, la résidence met à l'honneur la nature avec près de 50 variétés d'arbres, d'arbustes et de plantes différentes. Une promenade piétonne sera construite pour offrir aux residents convivialité et sérénité.<BR><BR>Tous les appartements possèdent un stationnement en sous-sol. <BR>et de l'offre de domotique Eugénie<BR>Venez profiter de la TVA réduite du T3 au T5 !<BR><BR>Rencontrons-nous à notre boutique connectée sur Lyon 06 pour découvrir nos offres. <BR>",
                "avant_premiere": 0,
                "exclusivite": null,
                "priorite_visibilite": 0,
                "appartement": 1,
                "maison": 0,
                "terrain": 0,
                "piscine": 0,
                "climatisation": 1,
                "pinel": 1,
                "anru": null,
                "lmnp": null,
                "tva5": null,
                "localisation_mer": null,
                "localisation_montagne": null,
                "localisation_etranger": null,
                "type_senior": null,
                "type_etudiant": null,
                "type_tourisme": null,
                "date_dispo": "2022-06-29T22:00:00.000000Z",
                "identifiant_quartier": "",
                "transport_ligne": "",
                "transport_station": "",
                "etat": "",
                "conso_energie": "",
                "bilan_conso_energie": "",
                "emission_ges": "",
                "bilan_emission_ges": "",
                "identifiant_technique": null,
                "create_batch_id": 2,
                "update_batch_id": 2476,
                "remove_batch_id": null,
                "lastseen_batch_id": 2674,
                "source": null,
                "from_website": null,
                "published": 1,
                "moderated": 0,
                "published_at": "2020-12-28T11:06:00.000000Z",
                "created_at": "2020-02-20T13:01:28.000000Z",
                "updated_at": "2020-12-28T11:06:00.000000Z",
                "deleted_at": null,
                "firstdocument": "https:\/\/files-preprod.appartement-construction.com\/images\/nexity_2_0\/0051-06659\/3_0051_06659_PRG_PHO3_06659.jpg",
                "commune": {
                    "id": 28709,
                    "departement_id": 71,
                    "nom": "VILLEURBANNE",
                    "insee": "69266",
                    "nom_special": "Villeurbanne",
                    "nom_recherche": "VILLEURBANNE",
                    "prefixe_nom_special": "",
                    "population": 116872,
                    "actif": 1,
                    "zone_id": null,
                    "longitude": 4.880382,
                    "latitude": 45.764717,
                    "centre": {
                        "type": "Point",
                        "coordinates": [
                            4.880382,
                            45.764717
                        ]
                    },
                    "created_at": null,
                    "updated_at": "2021-02-08T16:50:22.000000Z",
                    "deleted_at": null,
                    "departement": {
                        "id": 71,
                        "region_id": 3,
                        "nom": "RHONE",
                        "code": "69",
                        "created_at": "2017-08-31T08:35:15.000000Z",
                        "updated_at": "2017-08-31T08:35:15.000000Z",
                        "deleted_at": null,
                        "region": {
                            "id": 3,
                            "pays_id": 1,
                            "nom": "Rhône-Alpes",
                            "created_at": "2017-08-31T08:35:14.000000Z",
                            "updated_at": "2017-08-31T08:35:14.000000Z",
                            "deleted_at": null
                        }
                    },
                    "firstdistribution": {
                        "id": 28831,
                        "commune_id": 28709,
                        "code_postal": "69100",
                        "acheminement": "VILLEURBANNE",
                        "actif": 1,
                        "created_at": null,
                        "updated_at": null,
                        "deleted_at": null
                    }
                }
            }
        },
        {
            "id": 669,
            "annonce_id": null,
            "programme_id": 11,
            "website_id": 3,
            "ip": "66.249.79.227",
            "client_vars": "a:52:{s:21:\"PHP_FCGI_MAX_REQUESTS\";s:4:\"5000\";s:5:\"PHPRC\";s:18:\"\/var\/www\/conf\/web3\";s:3:\"PWD\";s:30:\"\/var\/www\/php-fcgi-scripts\/web3\";s:6:\"TMPDIR\";s:33:\"\/var\/www\/clients\/client1\/web3\/tmp\";s:4:\"TEMP\";s:33:\"\/var\/www\/clients\/client1\/web3\/tmp\";s:5:\"SHLVL\";s:1:\"0\";s:3:\"TMP\";s:33:\"\/var\/www\/clients\/client1\/web3\/tmp\";s:4:\"PATH\";s:60:\"\/usr\/local\/sbin:\/usr\/local\/bin:\/usr\/sbin:\/usr\/bin:\/sbin:\/bin\";s:17:\"PHP_DOCUMENT_ROOT\";s:29:\"\/var\/www\/clients\/client1\/web3\";s:14:\"CONTENT_LENGTH\";s:1:\"0\";s:11:\"SCRIPT_NAME\";s:10:\"\/index.php\";s:11:\"REQUEST_URI\";s:47:\"\/immobilier-neuf\/toulouse-31000\/villa-serena-11\";s:12:\"QUERY_STRING\";s:0:\"\";s:14:\"REQUEST_METHOD\";s:3:\"GET\";s:15:\"SERVER_PROTOCOL\";s:8:\"HTTP\/1.1\";s:17:\"GATEWAY_INTERFACE\";s:7:\"CGI\/1.1\";s:12:\"REDIRECT_URL\";s:47:\"\/immobilier-neuf\/toulouse-31000\/villa-serena-11\";s:11:\"REMOTE_PORT\";s:5:\"61490\";s:15:\"SCRIPT_FILENAME\";s:57:\"\/var\/www\/appartement-construction.com\/web\/front\/index.php\";s:12:\"SERVER_ADMIN\";s:38:\"webmaster@appartement-construction.com\";s:21:\"CONTEXT_DOCUMENT_ROOT\";s:47:\"\/var\/www\/appartement-construction.com\/web\/front\";s:14:\"CONTEXT_PREFIX\";s:0:\"\";s:14:\"REQUEST_SCHEME\";s:5:\"https\";s:13:\"DOCUMENT_ROOT\";s:47:\"\/var\/www\/appartement-construction.com\/web\/front\";s:11:\"REMOTE_ADDR\";s:13:\"66.249.79.227\";s:11:\"SERVER_PORT\";s:3:\"443\";s:11:\"SERVER_ADDR\";s:14:\"51.178.239.163\";s:11:\"SERVER_NAME\";s:32:\"www.appartement-construction.com\";s:15:\"SERVER_SOFTWARE\";s:22:\"Apache\/2.4.38 (Debian)\";s:16:\"SERVER_SIGNATURE\";s:94:\"<address>Apache\/2.4.38 (Debian) Server at www.appartement-construction.com Port 443<\/address>\n\";s:20:\"HTTP_ACCEPT_ENCODING\";s:15:\"gzip,deflate,br\";s:15:\"HTTP_USER_AGENT\";s:198:\"Mozilla\/5.0 (Linux; Android 6.0.1; Nexus 5X Build\/MMB29P) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/80.0.3987.92 Mobile Safari\/537.36 (compatible; Googlebot\/2.1; +http:\/\/www.google.com\/bot.html)\";s:9:\"HTTP_FROM\";s:26:\"googlebot(at)googlebot.com\";s:11:\"HTTP_ACCEPT\";s:96:\"text\/html,application\/xhtml+xml,application\/signed-exchange;v=b3,application\/xml;q=0.9,*\/*;q=0.8\";s:15:\"HTTP_CONNECTION\";s:5:\"close\";s:24:\"HTTP_AMP_CACHE_TRANSFORM\";s:15:\"google;v=\"1..3\"\";s:9:\"HTTP_HOST\";s:32:\"www.appartement-construction.com\";s:11:\"SSL_TLS_SNI\";s:32:\"www.appartement-construction.com\";s:5:\"HTTPS\";s:2:\"on\";s:18:\"HTTP_AUTHORIZATION\";s:0:\"\";s:10:\"SCRIPT_URI\";s:87:\"https:\/\/www.appartement-construction.com\/immobilier-neuf\/toulouse-31000\/villa-serena-11\";s:10:\"SCRIPT_URL\";s:47:\"\/immobilier-neuf\/toulouse-31000\/villa-serena-11\";s:15:\"REDIRECT_STATUS\";s:3:\"200\";s:20:\"REDIRECT_SSL_TLS_SNI\";s:32:\"www.appartement-construction.com\";s:14:\"REDIRECT_HTTPS\";s:2:\"on\";s:27:\"REDIRECT_HTTP_AUTHORIZATION\";s:0:\"\";s:19:\"REDIRECT_SCRIPT_URI\";s:87:\"https:\/\/www.appartement-construction.com\/immobilier-neuf\/toulouse-31000\/villa-serena-11\";s:19:\"REDIRECT_SCRIPT_URL\";s:47:\"\/immobilier-neuf\/toulouse-31000\/villa-serena-11\";s:9:\"FCGI_ROLE\";s:9:\"RESPONDER\";s:8:\"PHP_SELF\";s:10:\"\/index.php\";s:18:\"REQUEST_TIME_FLOAT\";d:1588314270.701411;s:12:\"REQUEST_TIME\";i:1588314270;}",
            "created_at": "2020-05-01T04:24:30.000000Z",
            "updated_at": "2020-05-01T04:24:30.000000Z",
            "deleted_at": null,
            "programme_count": 1,
            "programme": {
                "id": 11,
                "commune_id": 12462,
                "client_id": 1,
                "external_reference": "0049__49029",
                "slugged_external_reference": "0049-49029",
                "email_contact_additionnel": null,
                "adresse": "148 RUE EDMOND ROSTAND",
                "proximite": "",
                "libelle": "VILLA SERENA",
                "description": "Devenez propriétaire à Toulouse dans une résidence située dans le quartier Borderouge à 2 pas du métro et des bus ! Située proche de la place de la Maourine, les appartements sont connectés avec la domotique .<BR>Villa Serena est éligible au dispositif Pinel et à la TVA réduite !<BR>",
                "avant_premiere": 0,
                "exclusivite": null,
                "priorite_visibilite": 0,
                "appartement": 1,
                "maison": 0,
                "terrain": 0,
                "piscine": 0,
                "climatisation": 1,
                "pinel": 1,
                "anru": null,
                "lmnp": null,
                "tva5": null,
                "localisation_mer": null,
                "localisation_montagne": null,
                "localisation_etranger": null,
                "type_senior": null,
                "type_etudiant": null,
                "type_tourisme": null,
                "date_dispo": "2022-09-29T22:00:00.000000Z",
                "identifiant_quartier": "",
                "transport_ligne": "",
                "transport_station": "",
                "etat": "",
                "conso_energie": "",
                "bilan_conso_energie": "",
                "emission_ges": "",
                "bilan_emission_ges": "",
                "identifiant_technique": null,
                "create_batch_id": 2,
                "update_batch_id": 2476,
                "remove_batch_id": null,
                "lastseen_batch_id": 2674,
                "source": null,
                "from_website": null,
                "published": 1,
                "moderated": 0,
                "published_at": "2020-12-28T11:06:50.000000Z",
                "created_at": "2020-02-20T13:02:01.000000Z",
                "updated_at": "2020-12-28T11:06:50.000000Z",
                "deleted_at": null,
                "firstdocument": "https:\/\/files-preprod.appartement-construction.com\/images\/nexity_2_0\/0049-49029\/3_0049_49029_PRG_PHOT_49029.jpg",
                "commune": {
                    "id": 12462,
                    "departement_id": 33,
                    "nom": "TOULOUSE",
                    "insee": "31555",
                    "nom_special": "Toulouse",
                    "nom_recherche": "TOULOUSE",
                    "prefixe_nom_special": "",
                    "population": 358688,
                    "actif": 1,
                    "zone_id": null,
                    "longitude": 1.442949,
                    "latitude": 43.604378,
                    "centre": {
                        "type": "Point",
                        "coordinates": [
                            1.442949,
                            43.604378
                        ]
                    },
                    "created_at": null,
                    "updated_at": "2021-02-08T16:49:52.000000Z",
                    "deleted_at": null,
                    "departement": {
                        "id": 33,
                        "region_id": 19,
                        "nom": "HAUTE-GARONNE",
                        "code": "31",
                        "created_at": "2017-08-31T08:35:14.000000Z",
                        "updated_at": "2017-08-31T08:35:14.000000Z",
                        "deleted_at": null,
                        "region": {
                            "id": 19,
                            "pays_id": 1,
                            "nom": "Midi-Pyrénées",
                            "created_at": "2017-08-31T08:35:14.000000Z",
                            "updated_at": "2017-08-31T08:35:14.000000Z",
                            "deleted_at": null
                        }
                    },
                    "firstdistribution": {
                        "id": 70348,
                        "commune_id": 12462,
                        "code_postal": "31503",
                        "acheminement": "TOULOUSE CEDEX 9",
                        "actif": 0,
                        "created_at": null,
                        "updated_at": null,
                        "deleted_at": null
                    }
                }
            }
        }
    ]
}

Example response (400):

{
    "code": 400,
    "status": "error",
    "message": {
        "paginate": [
            "La valeur de paginate ne peut être supérieure à 100."
        ],
        "offset": [
            "Le champ offset doit être un entier."
        ]
    }
}

Request   

GET api/v2/consultation/programme/mostviewed

Query Parameters

paginate  integer optional  
Result per page (Default:15) (Maximum:100)

offset  string optional  
Offset of first result (Default:0)

Most viewed annonces

Example request:

curl -X GET \
    -G "https://dashboard-preprod.appartement-construction.com/api/v2/consultation/annonce/mostviewed?paginate=15&offset=30&annonce_type=TERRAIN" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json"
const url = new URL(
    "https://dashboard-preprod.appartement-construction.com/api/v2/consultation/annonce/mostviewed"
);

let params = {
    "paginate": "15",
    "offset": "30",
    "annonce_type": "TERRAIN",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://dashboard-preprod.appartement-construction.com/api/v2/consultation/annonce/mostviewed',
    [
        'headers' => [
            'Accept' => 'application/json',
        ],
        'query' => [
            'paginate'=> '15',
            'offset'=> '30',
            'annonce_type'=> 'TERRAIN',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dashboard-preprod.appartement-construction.com/api/v2/consultation/annonce/mostviewed'
params = {
  'paginate': '15',
  'offset': '30',
  'annonce_type': 'TERRAIN',
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()

Example response (200):

{
    "code": 200,
    "status": "ok",
    "data": [
        {
            "id": 132608,
            "annonce_id": 485,
            "programme_id": null,
            "website_id": 3,
            "ip": "159.69.187.42",
            "client_vars": "a:49:{s:21:\"PHP_FCGI_MAX_REQUESTS\";s:4:\"5000\";s:5:\"PHPRC\";s:18:\"\/var\/www\/conf\/web3\";s:3:\"PWD\";s:30:\"\/var\/www\/php-fcgi-scripts\/web3\";s:6:\"TMPDIR\";s:33:\"\/var\/www\/clients\/client1\/web3\/tmp\";s:4:\"TEMP\";s:33:\"\/var\/www\/clients\/client1\/web3\/tmp\";s:5:\"SHLVL\";s:1:\"0\";s:3:\"TMP\";s:33:\"\/var\/www\/clients\/client1\/web3\/tmp\";s:4:\"PATH\";s:60:\"\/usr\/local\/sbin:\/usr\/local\/bin:\/usr\/sbin:\/usr\/bin:\/sbin:\/bin\";s:17:\"PHP_DOCUMENT_ROOT\";s:29:\"\/var\/www\/clients\/client1\/web3\";s:14:\"CONTENT_LENGTH\";s:1:\"0\";s:11:\"SCRIPT_NAME\";s:10:\"\/index.php\";s:11:\"REQUEST_URI\";s:41:\"\/immobilier-neuf\/linselles-59126\/n-a-\/485\";s:12:\"QUERY_STRING\";s:0:\"\";s:14:\"REQUEST_METHOD\";s:3:\"GET\";s:15:\"SERVER_PROTOCOL\";s:8:\"HTTP\/1.1\";s:17:\"GATEWAY_INTERFACE\";s:7:\"CGI\/1.1\";s:12:\"REDIRECT_URL\";s:41:\"\/immobilier-neuf\/linselles-59126\/n-a-\/485\";s:11:\"REMOTE_PORT\";s:5:\"62718\";s:15:\"SCRIPT_FILENAME\";s:57:\"\/var\/www\/appartement-construction.com\/web\/front\/index.php\";s:12:\"SERVER_ADMIN\";s:38:\"webmaster@appartement-construction.com\";s:21:\"CONTEXT_DOCUMENT_ROOT\";s:47:\"\/var\/www\/appartement-construction.com\/web\/front\";s:14:\"CONTEXT_PREFIX\";s:0:\"\";s:14:\"REQUEST_SCHEME\";s:5:\"https\";s:13:\"DOCUMENT_ROOT\";s:47:\"\/var\/www\/appartement-construction.com\/web\/front\";s:11:\"REMOTE_ADDR\";s:13:\"159.69.187.42\";s:11:\"SERVER_PORT\";s:3:\"443\";s:11:\"SERVER_ADDR\";s:14:\"51.178.239.163\";s:11:\"SERVER_NAME\";s:32:\"www.appartement-construction.com\";s:15:\"SERVER_SOFTWARE\";s:22:\"Apache\/2.4.38 (Debian)\";s:16:\"SERVER_SIGNATURE\";s:94:\"<address>Apache\/2.4.38 (Debian) Server at www.appartement-construction.com Port 443<\/address>\n\";s:20:\"HTTP_ACCEPT_ENCODING\";s:12:\"gzip,deflate\";s:15:\"HTTP_USER_AGENT\";s:64:\"Mozilla\/5.0 (compatible; Seekport Crawler; http:\/\/seekport.com\/)\";s:15:\"HTTP_CONNECTION\";s:5:\"close\";s:9:\"HTTP_HOST\";s:32:\"www.appartement-construction.com\";s:11:\"SSL_TLS_SNI\";s:32:\"www.appartement-construction.com\";s:5:\"HTTPS\";s:2:\"on\";s:18:\"HTTP_AUTHORIZATION\";s:0:\"\";s:10:\"SCRIPT_URI\";s:81:\"https:\/\/www.appartement-construction.com\/immobilier-neuf\/linselles-59126\/n-a-\/485\";s:10:\"SCRIPT_URL\";s:41:\"\/immobilier-neuf\/linselles-59126\/n-a-\/485\";s:15:\"REDIRECT_STATUS\";s:3:\"200\";s:20:\"REDIRECT_SSL_TLS_SNI\";s:32:\"www.appartement-construction.com\";s:14:\"REDIRECT_HTTPS\";s:2:\"on\";s:27:\"REDIRECT_HTTP_AUTHORIZATION\";s:0:\"\";s:19:\"REDIRECT_SCRIPT_URI\";s:81:\"https:\/\/www.appartement-construction.com\/immobilier-neuf\/linselles-59126\/n-a-\/485\";s:19:\"REDIRECT_SCRIPT_URL\";s:41:\"\/immobilier-neuf\/linselles-59126\/n-a-\/485\";s:9:\"FCGI_ROLE\";s:9:\"RESPONDER\";s:8:\"PHP_SELF\";s:10:\"\/index.php\";s:18:\"REQUEST_TIME_FLOAT\";d:1594983139.94656;s:12:\"REQUEST_TIME\";i:1594983139;}",
            "created_at": "2020-07-17T08:52:20.000000Z",
            "updated_at": "2020-07-17T08:52:20.000000Z",
            "deleted_at": null,
            "annonce_count": 1,
            "annonce": {
                "id": 485,
                "programme_id": 150,
                "commune_id": 23430,
                "client_id": 1,
                "type": "APPARTEMENT",
                "external_reference": "2303",
                "slugged_external_reference": "2303",
                "email_contact_additionnel": null,
                "external_code_postal": "59126",
                "adresse": "RUE DU GENERAL DE GAULLE RUE DU GENERAL LECLERC",
                "proximite": "",
                "libelle": "RÉSIDENCE LA BELLE EPOQUE",
                "description": "DEVENEZ PROPRIETAIRE EN CENTRE-VILLE de Linselles ! Linselles est une parenthèse rurale et verte au coeur de la métropole lilloise. Ses nombreux espaces verts et la campagne environnante en font une commune prisée, à l'instar de ses voisines Bondues et Mouvaux.<BR><BR>Implantée en plein centre-ville de Linselles, à deux pas de la Mairie et de la place du marché, la résidence La Belle Epoque vous offre un cadre de vie calme et authentique.<BR><BR>Les + :<BR>- Logements aux surfaces généreuses<BR>- Appartements du 2 au 4 pièces tout confort et aux prestations soignées<BR>- Résidence arborée et sécurisée<BR>- Balcon, terrasse ou jardin privatif<BR>- Stationnement sous-sol et extérieur<BR><BR>Renseignez-vous vite !",
                "avant_premiere": 0,
                "exclusivite": null,
                "priorite_visibilite": 0,
                "surface": 41,
                "surface_maison": null,
                "surface_terrain": null,
                "surface_habitable": null,
                "surface_sejour": null,
                "prix": 188000,
                "prix_maison": null,
                "prix_terrain": null,
                "nbr_piece": 2,
                "etage": 3,
                "terrasse": null,
                "nbr_balcon": null,
                "surface_balcon": null,
                "nbr_etage": null,
                "ascenseur": 1,
                "cave": 0,
                "nbr_parking": 1,
                "nbr_boxe": null,
                "nbr_chambre": null,
                "nbr_chambre_rdc": null,
                "nbr_sdb": null,
                "type_cuisine": null,
                "type_chauffage": 0,
                "type_eau_chaude": null,
                "alarme": null,
                "piscine": null,
                "interphone": 1,
                "etat_interieur": null,
                "date_dispo": "2022-09-29T22:00:00.000000Z",
                "conso_energie": "",
                "bilan_conso_energie": "",
                "emission_ges": "",
                "bilan_emission_ges": "",
                "annee_construction": null,
                "loyer_mois": null,
                "loyer_mois_charges_comprises": null,
                "charges_mois": null,
                "droit_au_bail": null,
                "taxe_fonciere": null,
                "sous_type_bien": 1,
                "create_batch_id": 13,
                "update_batch_id": 2674,
                "remove_batch_id": null,
                "lastseen_batch_id": 2674,
                "source": null,
                "from_website": null,
                "published": 1,
                "moderated": 0,
                "published_at": "2020-02-20T14:03:01.000000Z",
                "created_at": "2020-02-20T14:03:01.000000Z",
                "updated_at": "2020-12-28T11:06:04.000000Z",
                "deleted_at": null,
                "commune": {
                    "id": 23430,
                    "departement_id": 61,
                    "nom": "LINSELLES",
                    "insee": "59352",
                    "nom_special": "Linselles",
                    "nom_recherche": "LINSELLES",
                    "prefixe_nom_special": "",
                    "population": 7674,
                    "actif": 1,
                    "zone_id": null,
                    "longitude": 3.078282,
                    "latitude": 50.738523,
                    "centre": {
                        "type": "Point",
                        "coordinates": [
                            3.078282,
                            50.738523
                        ]
                    },
                    "created_at": null,
                    "updated_at": "2021-02-08T16:50:13.000000Z",
                    "deleted_at": null,
                    "departement": {
                        "id": 61,
                        "region_id": 2,
                        "nom": "NORD",
                        "code": "59",
                        "created_at": "2017-08-31T08:35:15.000000Z",
                        "updated_at": "2017-08-31T08:35:15.000000Z",
                        "deleted_at": null,
                        "region": {
                            "id": 2,
                            "pays_id": 1,
                            "nom": "Nord-Pas-de-Calais",
                            "created_at": "2017-08-31T08:35:14.000000Z",
                            "updated_at": "2017-08-31T08:35:14.000000Z",
                            "deleted_at": null
                        }
                    },
                    "distributions": [
                        {
                            "id": 23538,
                            "commune_id": 23430,
                            "code_postal": "59126",
                            "acheminement": "LINSELLES",
                            "actif": 1,
                            "created_at": null,
                            "updated_at": null,
                            "deleted_at": null
                        }
                    ]
                },
                "programme": {
                    "id": 150,
                    "commune_id": 23430,
                    "client_id": 1,
                    "external_reference": "0010__10086",
                    "slugged_external_reference": "0010-10086",
                    "email_contact_additionnel": null,
                    "adresse": "RUE DU GENERAL DE GAULLE RUE DU GENERAL LECLERC",
                    "proximite": "",
                    "libelle": "RÉSIDENCE LA BELLE EPOQUE",
                    "description": "DEVENEZ PROPRIETAIRE EN CENTRE-VILLE de Linselles ! Linselles est une parenthèse rurale et verte au coeur de la métropole lilloise. Ses nombreux espaces verts et la campagne environnante en font une commune prisée, à l'instar de ses voisines Bondues et Mouvaux.<BR><BR>Implantée en plein centre-ville de Linselles, à deux pas de la Mairie et de la place du marché, la résidence La Belle Epoque vous offre un cadre de vie calme et authentique.<BR><BR>Les + :<BR>- Logements aux surfaces généreuses<BR>- Appartements du 2 au 4 pièces tout confort et aux prestations soignées<BR>- Résidence arborée et sécurisée<BR>- Balcon, terrasse ou jardin privatif<BR>- Stationnement sous-sol et extérieur<BR><BR>Renseignez-vous vite !",
                    "avant_premiere": 0,
                    "exclusivite": null,
                    "priorite_visibilite": 0,
                    "appartement": 1,
                    "maison": 0,
                    "terrain": 0,
                    "piscine": 0,
                    "climatisation": 1,
                    "pinel": 1,
                    "anru": null,
                    "lmnp": null,
                    "tva5": null,
                    "localisation_mer": null,
                    "localisation_montagne": null,
                    "localisation_etranger": null,
                    "type_senior": null,
                    "type_etudiant": null,
                    "type_tourisme": null,
                    "date_dispo": "2022-09-29T22:00:00.000000Z",
                    "identifiant_quartier": "",
                    "transport_ligne": "",
                    "transport_station": "",
                    "etat": "",
                    "conso_energie": "",
                    "bilan_conso_energie": "",
                    "emission_ges": "",
                    "bilan_emission_ges": "",
                    "identifiant_technique": null,
                    "create_batch_id": 2,
                    "update_batch_id": 2476,
                    "remove_batch_id": null,
                    "lastseen_batch_id": 2674,
                    "source": null,
                    "from_website": null,
                    "published": 1,
                    "moderated": 0,
                    "published_at": "2020-12-28T11:07:43.000000Z",
                    "created_at": "2020-02-20T13:17:43.000000Z",
                    "updated_at": "2020-12-28T11:07:43.000000Z",
                    "deleted_at": null
                },
                "documents": []
            },
            "programme": null
        },
        {
            "id": 1792,
            "annonce_id": 173,
            "programme_id": null,
            "website_id": 3,
            "ip": "148.251.9.145",
            "client_vars": "a:51:{s:21:\"PHP_FCGI_MAX_REQUESTS\";s:4:\"5000\";s:5:\"PHPRC\";s:18:\"\/var\/www\/conf\/web3\";s:3:\"PWD\";s:30:\"\/var\/www\/php-fcgi-scripts\/web3\";s:6:\"TMPDIR\";s:33:\"\/var\/www\/clients\/client1\/web3\/tmp\";s:4:\"TEMP\";s:33:\"\/var\/www\/clients\/client1\/web3\/tmp\";s:5:\"SHLVL\";s:1:\"0\";s:3:\"TMP\";s:33:\"\/var\/www\/clients\/client1\/web3\/tmp\";s:4:\"PATH\";s:60:\"\/usr\/local\/sbin:\/usr\/local\/bin:\/usr\/sbin:\/usr\/bin:\/sbin:\/bin\";s:17:\"PHP_DOCUMENT_ROOT\";s:29:\"\/var\/www\/clients\/client1\/web3\";s:14:\"CONTENT_LENGTH\";s:1:\"0\";s:15:\"HTTP_CONNECTION\";s:5:\"close\";s:11:\"SCRIPT_NAME\";s:10:\"\/index.php\";s:11:\"REQUEST_URI\";s:44:\"\/immobilier-neuf\/villeurbanne-69100\/n-a-\/173\";s:12:\"QUERY_STRING\";s:0:\"\";s:14:\"REQUEST_METHOD\";s:3:\"GET\";s:15:\"SERVER_PROTOCOL\";s:8:\"HTTP\/1.1\";s:17:\"GATEWAY_INTERFACE\";s:7:\"CGI\/1.1\";s:12:\"REDIRECT_URL\";s:44:\"\/immobilier-neuf\/villeurbanne-69100\/n-a-\/173\";s:11:\"REMOTE_PORT\";s:5:\"43356\";s:15:\"SCRIPT_FILENAME\";s:57:\"\/var\/www\/appartement-construction.com\/web\/front\/index.php\";s:12:\"SERVER_ADMIN\";s:38:\"webmaster@appartement-construction.com\";s:21:\"CONTEXT_DOCUMENT_ROOT\";s:47:\"\/var\/www\/appartement-construction.com\/web\/front\";s:14:\"CONTEXT_PREFIX\";s:0:\"\";s:14:\"REQUEST_SCHEME\";s:5:\"https\";s:13:\"DOCUMENT_ROOT\";s:47:\"\/var\/www\/appartement-construction.com\/web\/front\";s:11:\"REMOTE_ADDR\";s:13:\"148.251.9.145\";s:11:\"SERVER_PORT\";s:3:\"443\";s:11:\"SERVER_ADDR\";s:14:\"51.178.239.163\";s:11:\"SERVER_NAME\";s:32:\"www.appartement-construction.com\";s:15:\"SERVER_SOFTWARE\";s:22:\"Apache\/2.4.38 (Debian)\";s:16:\"SERVER_SIGNATURE\";s:94:\"<address>Apache\/2.4.38 (Debian) Server at www.appartement-construction.com Port 443<\/address>\n\";s:9:\"HTTP_HOST\";s:32:\"www.appartement-construction.com\";s:20:\"HTTP_ACCEPT_LANGUAGE\";s:2:\"en\";s:20:\"HTTP_ACCEPT_ENCODING\";s:7:\"br,gzip\";s:15:\"HTTP_USER_AGENT\";s:61:\"Mozilla\/5.0 (compatible; MJ12bot\/v1.4.8; http:\/\/mj12bot.com\/)\";s:11:\"HTTP_ACCEPT\";s:193:\"text\/html,text\/plain,text\/xml,text\/*,application\/xml,application\/xhtml+xml,application\/rss+xml,application\/atom+xml,application\/rdf+xml,application\/php,application\/x-php,application\/x-httpd-php\";s:11:\"SSL_TLS_SNI\";s:32:\"www.appartement-construction.com\";s:5:\"HTTPS\";s:2:\"on\";s:18:\"HTTP_AUTHORIZATION\";s:0:\"\";s:10:\"SCRIPT_URI\";s:84:\"https:\/\/www.appartement-construction.com\/immobilier-neuf\/villeurbanne-69100\/n-a-\/173\";s:10:\"SCRIPT_URL\";s:44:\"\/immobilier-neuf\/villeurbanne-69100\/n-a-\/173\";s:15:\"REDIRECT_STATUS\";s:3:\"200\";s:20:\"REDIRECT_SSL_TLS_SNI\";s:32:\"www.appartement-construction.com\";s:14:\"REDIRECT_HTTPS\";s:2:\"on\";s:27:\"REDIRECT_HTTP_AUTHORIZATION\";s:0:\"\";s:19:\"REDIRECT_SCRIPT_URI\";s:84:\"https:\/\/www.appartement-construction.com\/immobilier-neuf\/villeurbanne-69100\/n-a-\/173\";s:19:\"REDIRECT_SCRIPT_URL\";s:44:\"\/immobilier-neuf\/villeurbanne-69100\/n-a-\/173\";s:9:\"FCGI_ROLE\";s:9:\"RESPONDER\";s:8:\"PHP_SELF\";s:10:\"\/index.php\";s:18:\"REQUEST_TIME_FLOAT\";d:1588383896.902227;s:12:\"REQUEST_TIME\";i:1588383896;}",
            "created_at": "2020-05-01T23:44:56.000000Z",
            "updated_at": "2020-05-01T23:44:56.000000Z",
            "deleted_at": null,
            "annonce_count": 1,
            "annonce": {
                "id": 173,
                "programme_id": 7,
                "commune_id": 28709,
                "client_id": 1,
                "type": "APPARTEMENT",
                "external_reference": "4191",
                "slugged_external_reference": "4191",
                "email_contact_additionnel": null,
                "external_code_postal": "69100",
                "adresse": "RUE LIBERTE",
                "proximite": "",
                "libelle": "N.O.U : NOUVEL OPUS URBAIN",
                "description": "Profitez d'offres exceptionnelles jusqu'au 20 décembre 2020 !<BR><BR>Venez découvrir, au pied du métro, à Villeurbanne,  votre nouvelle résidence au coeur d'un parc arboré. Au pied du métro et à proximité directe des commerces, ce nouvel ensemble offre des logements du 2 au 5 pièces prolongés par des terrasses ou loggias. Les plus chanceux pourront profiter de duplex en étage élevé. <BR><BR>Avec des immeubles de belles hauteurs, vous aurez une vue dégagée sur la métropole de Lyon et la chaine des alpes. <BR><BR>Réel jardin dans la ville, la résidence met à l'honneur la nature avec près de 50 variétés d'arbres, d'arbustes et de plantes différentes. Une promenade piétonne sera construite pour offrir aux residents convivialité et sérénité.<BR><BR>Tous les appartements possèdent un stationnement en sous-sol. <BR>et de l'offre de domotique Eugénie<BR>Venez profiter de la TVA réduite du T3 au T5 !<BR><BR>Rencontrons-nous à notre boutique connectée sur Lyon 06 pour découvrir nos offres. <BR>",
                "avant_premiere": 0,
                "exclusivite": null,
                "priorite_visibilite": 0,
                "surface": 107,
                "surface_maison": null,
                "surface_terrain": null,
                "surface_habitable": null,
                "surface_sejour": null,
                "prix": 492000,
                "prix_maison": null,
                "prix_terrain": null,
                "nbr_piece": 5,
                "etage": 9,
                "terrasse": null,
                "nbr_balcon": null,
                "surface_balcon": 0,
                "nbr_etage": null,
                "ascenseur": 1,
                "cave": 0,
                "nbr_parking": 1,
                "nbr_boxe": null,
                "nbr_chambre": null,
                "nbr_chambre_rdc": null,
                "nbr_sdb": null,
                "type_cuisine": null,
                "type_chauffage": 0,
                "type_eau_chaude": null,
                "alarme": null,
                "piscine": null,
                "interphone": 1,
                "etat_interieur": null,
                "date_dispo": "2022-12-30T23:00:00.000000Z",
                "conso_energie": "",
                "bilan_conso_energie": "",
                "emission_ges": "",
                "bilan_emission_ges": "",
                "annee_construction": null,
                "loyer_mois": null,
                "loyer_mois_charges_comprises": null,
                "charges_mois": null,
                "droit_au_bail": null,
                "taxe_fonciere": null,
                "sous_type_bien": 1,
                "create_batch_id": 13,
                "update_batch_id": 2674,
                "remove_batch_id": null,
                "lastseen_batch_id": 2674,
                "source": null,
                "from_website": null,
                "published": 1,
                "moderated": 0,
                "published_at": "2020-02-20T14:02:56.000000Z",
                "created_at": "2020-02-20T14:02:56.000000Z",
                "updated_at": "2020-12-28T11:05:12.000000Z",
                "deleted_at": null,
                "commune": {
                    "id": 28709,
                    "departement_id": 71,
                    "nom": "VILLEURBANNE",
                    "insee": "69266",
                    "nom_special": "Villeurbanne",
                    "nom_recherche": "VILLEURBANNE",
                    "prefixe_nom_special": "",
                    "population": 116872,
                    "actif": 1,
                    "zone_id": null,
                    "longitude": 4.880382,
                    "latitude": 45.764717,
                    "centre": {
                        "type": "Point",
                        "coordinates": [
                            4.880382,
                            45.764717
                        ]
                    },
                    "created_at": null,
                    "updated_at": "2021-02-08T16:50:22.000000Z",
                    "deleted_at": null,
                    "departement": {
                        "id": 71,
                        "region_id": 3,
                        "nom": "RHONE",
                        "code": "69",
                        "created_at": "2017-08-31T08:35:15.000000Z",
                        "updated_at": "2017-08-31T08:35:15.000000Z",
                        "deleted_at": null,
                        "region": {
                            "id": 3,
                            "pays_id": 1,
                            "nom": "Rhône-Alpes",
                            "created_at": "2017-08-31T08:35:14.000000Z",
                            "updated_at": "2017-08-31T08:35:14.000000Z",
                            "deleted_at": null
                        }
                    },
                    "distributions": [
                        {
                            "id": 28831,
                            "commune_id": 28709,
                            "code_postal": "69100",
                            "acheminement": "VILLEURBANNE",
                            "actif": 1,
                            "created_at": null,
                            "updated_at": null,
                            "deleted_at": null
                        },
                        {
                            "id": 68295,
                            "commune_id": 28709,
                            "code_postal": "69351",
                            "acheminement": "LYON CEDEX 08",
                            "actif": 1,
                            "created_at": null,
                            "updated_at": null,
                            "deleted_at": null
                        },
                        {
                            "id": 80664,
                            "commune_id": 28709,
                            "code_postal": "69907",
                            "acheminement": "LYON CEDEX 20",
                            "actif": 1,
                            "created_at": null,
                            "updated_at": null,
                            "deleted_at": null
                        }
                    ]
                },
                "programme": {
                    "id": 7,
                    "commune_id": 28709,
                    "client_id": 1,
                    "external_reference": "0051__06659",
                    "slugged_external_reference": "0051-06659",
                    "email_contact_additionnel": null,
                    "adresse": "RUE LIBERTE",
                    "proximite": "",
                    "libelle": "N.O.U : NOUVEL OPUS URBAIN",
                    "description": "Profitez d'offres exceptionnelles jusqu'au 20 décembre 2020 !<BR><BR>Venez découvrir, au pied du métro, à Villeurbanne,  votre nouvelle résidence au coeur d'un parc arboré. Au pied du métro et à proximité directe des commerces, ce nouvel ensemble offre des logements du 2 au 5 pièces prolongés par des terrasses ou loggias. Les plus chanceux pourront profiter de duplex en étage élevé. <BR><BR>Avec des immeubles de belles hauteurs, vous aurez une vue dégagée sur la métropole de Lyon et la chaine des alpes. <BR><BR>Réel jardin dans la ville, la résidence met à l'honneur la nature avec près de 50 variétés d'arbres, d'arbustes et de plantes différentes. Une promenade piétonne sera construite pour offrir aux residents convivialité et sérénité.<BR><BR>Tous les appartements possèdent un stationnement en sous-sol. <BR>et de l'offre de domotique Eugénie<BR>Venez profiter de la TVA réduite du T3 au T5 !<BR><BR>Rencontrons-nous à notre boutique connectée sur Lyon 06 pour découvrir nos offres. <BR>",
                    "avant_premiere": 0,
                    "exclusivite": null,
                    "priorite_visibilite": 0,
                    "appartement": 1,
                    "maison": 0,
                    "terrain": 0,
                    "piscine": 0,
                    "climatisation": 1,
                    "pinel": 1,
                    "anru": null,
                    "lmnp": null,
                    "tva5": null,
                    "localisation_mer": null,
                    "localisation_montagne": null,
                    "localisation_etranger": null,
                    "type_senior": null,
                    "type_etudiant": null,
                    "type_tourisme": null,
                    "date_dispo": "2022-06-29T22:00:00.000000Z",
                    "identifiant_quartier": "",
                    "transport_ligne": "",
                    "transport_station": "",
                    "etat": "",
                    "conso_energie": "",
                    "bilan_conso_energie": "",
                    "emission_ges": "",
                    "bilan_emission_ges": "",
                    "identifiant_technique": null,
                    "create_batch_id": 2,
                    "update_batch_id": 2476,
                    "remove_batch_id": null,
                    "lastseen_batch_id": 2674,
                    "source": null,
                    "from_website": null,
                    "published": 1,
                    "moderated": 0,
                    "published_at": "2020-12-28T11:06:00.000000Z",
                    "created_at": "2020-02-20T13:01:28.000000Z",
                    "updated_at": "2020-12-28T11:06:00.000000Z",
                    "deleted_at": null
                },
                "documents": []
            },
            "programme": null
        }
    ]
}

Example response (400):

{
    "code": 400,
    "status": "error",
    "message": {
        "paginate": [
            "La valeur de paginate ne peut être supérieure à 100."
        ],
        "offset": [
            "Le champ offset doit être un entier."
        ]
    }
}

Request   

GET api/v2/consultation/annonce/mostviewed

Query Parameters

paginate  integer optional  
Result per page (Default:15) (Maximum:100)

offset  string optional  
Offset of first result (Default:0)

annonce_type  string optional  
Type separated by comma (Default:APPARTEMENT)

programme_id  string optional  
Programme ID

Contacts

APIs for managing contacts

Get all contacts from specific client

Example request:

curl -X GET \
    -G "https://dashboard-preprod.appartement-construction.com/api/v2/contact/search/client/15?website=TC" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json"
const url = new URL(
    "https://dashboard-preprod.appartement-construction.com/api/v2/contact/search/client/15"
);

let params = {
    "website": "TC",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://dashboard-preprod.appartement-construction.com/api/v2/contact/search/client/15',
    [
        'headers' => [
            'Accept' => 'application/json',
        ],
        'query' => [
            'website'=> 'TC',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dashboard-preprod.appartement-construction.com/api/v2/contact/search/client/15'
params = {
  'website': 'TC',
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()

Example response (400):

{
    "code": 400,
    "status": "error",
    "message": {
        "website": [
            "Le champ website sélectionné est invalide."
        ],
        "client_id": [
            "Le champ client id sélectionné est invalide."
        ]
    }
}

Example response (200):

{
    "code": 200,
    "status": "ok",
    "data": [
        {
            "id": 214,
            "website_id": 4,
            "annonce_id": 27154,
            "programme_id": null,
            "client_id": 92,
            "inscription": null,
            "civilite": null,
            "nom": "Doe",
            "prenom": "John",
            "code_postal": null,
            "ville": null,
            "email": "john.doe@example.com",
            "phone": null,
            "code_postal_recherche": null,
            "ville_recherche": null,
            "type_commercialisation": null,
            "optin_annonceur": null,
            "optin_partenaire": null,
            "optin_website": null,
            "message": null,
            "from": null,
            "type_id": 2,
            "instapage_id": null,
            "departement_recherche_id": null,
            "type_maison": null,
            "budget_max_hors_terrain": null,
            "utm_source": null,
            "utm_medium": null,
            "utm_campaign": null,
            "utm_term": null,
            "utm_content": null,
            "front_user_id": null,
            "created_at": "2021-02-22T14:54:25.000000Z",
            "updated_at": "2021-02-22T14:54:25.000000Z",
            "exports_count": 0
        },
        {
            "id": 215,
            "website_id": 4,
            "annonce_id": 27154,
            "programme_id": null,
            "client_id": 92,
            "inscription": null,
            "civilite": null,
            "nom": "Doe",
            "prenom": "John",
            "code_postal": null,
            "ville": null,
            "email": "john.doe@example.com",
            "phone": null,
            "code_postal_recherche": null,
            "ville_recherche": null,
            "type_commercialisation": null,
            "optin_annonceur": null,
            "optin_partenaire": null,
            "optin_website": null,
            "message": null,
            "from": null,
            "type_id": 2,
            "instapage_id": null,
            "departement_recherche_id": null,
            "type_maison": null,
            "budget_max_hors_terrain": null,
            "utm_source": null,
            "utm_medium": null,
            "utm_campaign": null,
            "utm_term": null,
            "utm_content": null,
            "front_user_id": null,
            "created_at": "2021-02-22T15:09:51.000000Z",
            "updated_at": "2021-02-22T15:09:51.000000Z",
            "exports_count": 0
        }
    ]
}

Request   

GET api/v2/contact/search/client/{client_id}

URL Parameters

client_id  string  
Client Id

Query Parameters

website  string  
Website Code(ACdev, TC, etc...)

Create Contact

Example request:

curl -X POST \
    "https://dashboard-preprod.appartement-construction.com/api/v2/contact/create" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"website":"TC","annonce_id":125,"programme_id":125,"civilite":"M","prenom":"John","nom":"Doe","email":"john.doe@example.com","code_postal_recherche":"75000","ville_recherche":"Paris","type_commercialisation":"vente","optin_annonceur":false,"optin_partenaire":false,"optin_website":false,"message":"this is an example message","utm_source":"est","utm_medium":"id","utm_campaign":"autem","utm_term":"minus","utm_content":"necessitatibus"}'
const url = new URL(
    "https://dashboard-preprod.appartement-construction.com/api/v2/contact/create"
);

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

let body = {
    "website": "TC",
    "annonce_id": 125,
    "programme_id": 125,
    "civilite": "M",
    "prenom": "John",
    "nom": "Doe",
    "email": "john.doe@example.com",
    "code_postal_recherche": "75000",
    "ville_recherche": "Paris",
    "type_commercialisation": "vente",
    "optin_annonceur": false,
    "optin_partenaire": false,
    "optin_website": false,
    "message": "this is an example message",
    "utm_source": "est",
    "utm_medium": "id",
    "utm_campaign": "autem",
    "utm_term": "minus",
    "utm_content": "necessitatibus"
}

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

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://dashboard-preprod.appartement-construction.com/api/v2/contact/create',
    [
        'headers' => [
            'Accept' => 'application/json',
        ],
        'json' => [
            'website' => 'TC',
            'annonce_id' => 125,
            'programme_id' => 125,
            'civilite' => 'M',
            'prenom' => 'John',
            'nom' => 'Doe',
            'email' => 'john.doe@example.com',
            'code_postal_recherche' => '75000',
            'ville_recherche' => 'Paris',
            'type_commercialisation' => 'vente',
            'optin_annonceur' => false,
            'optin_partenaire' => false,
            'optin_website' => false,
            'message' => 'this is an example message',
            'utm_source' => 'est',
            'utm_medium' => 'id',
            'utm_campaign' => 'autem',
            'utm_term' => 'minus',
            'utm_content' => 'necessitatibus',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dashboard-preprod.appartement-construction.com/api/v2/contact/create'
payload = {
    "website": "TC",
    "annonce_id": 125,
    "programme_id": 125,
    "civilite": "M",
    "prenom": "John",
    "nom": "Doe",
    "email": "john.doe@example.com",
    "code_postal_recherche": "75000",
    "ville_recherche": "Paris",
    "type_commercialisation": "vente",
    "optin_annonceur": false,
    "optin_partenaire": false,
    "optin_website": false,
    "message": "this is an example message",
    "utm_source": "est",
    "utm_medium": "id",
    "utm_campaign": "autem",
    "utm_term": "minus",
    "utm_content": "necessitatibus"
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (400):

{
    "code": 400,
    "status": "error",
    "message": {
        "website": [
            "Le champ website sélectionné est invalide."
        ],
        "client_id": [
            "Le champ client id sélectionné est invalide."
        ]
    }
}

Example response (200):

{
    "code": 200,
    "status": "ok",
    "message": "contact created"
}

Request   

POST api/v2/contact/create

Body Parameters

website  string  
Website Code(ACdev, TC, etc...)

annonce_id  integer optional  
Id of the annonce to make contact on

programme_id  integer optional  
Id of the programme to make contact on

civilite  string optional  
[M - MME - MLLE]

prenom  string optional  
Firstname

nom  string optional  
Lastname

email  string optional  
Email

code_postal_recherche  string optional  
Searched zip code

ville_recherche  string optional  
Searched City

type_commercialisation  string optional  
[acheter - investir - louer - louer_etudiant - vente - gerer_bien]

optin_annonceur  boolean optional  

optin_partenaire  boolean optional  

optin_website  boolean optional  

message  string optional  
Message

utm_source  string optional  

utm_medium  string optional  

utm_campaign  string optional  

utm_term  string optional  

utm_content  string optional  

Distribution

APIs for managing distributions

List all distributions

Example request:

curl -X GET \
    -G "https://dashboard-preprod.appartement-construction.com/api/v2/distribution/all?website=TC" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json"
const url = new URL(
    "https://dashboard-preprod.appartement-construction.com/api/v2/distribution/all"
);

let params = {
    "website": "TC",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://dashboard-preprod.appartement-construction.com/api/v2/distribution/all',
    [
        'headers' => [
            'Accept' => 'application/json',
        ],
        'query' => [
            'website'=> 'TC',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dashboard-preprod.appartement-construction.com/api/v2/distribution/all'
params = {
  'website': 'TC',
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()

Example response (400):

{
    "code": 400,
    "status": "error",
    "message": {
        "website": [
            "Le champ website est obligatoire."
        ]
    }
}

Example response (200):

{
    "code": 200,
    "status": "ok",
    "data": [
        {
            "id": 1,
            "commune_id": 2,
            "code_postal": "75001",
            "acheminement": "PARIS",
            "actif": 1
        },
        {
            "id": 2,
            "commune_id": 3,
            "code_postal": "75002",
            "acheminement": "PARIS",
            "actif": 1
        },
        {
            "id": 3,
            "commune_id": 4,
            "code_postal": "75003",
            "acheminement": "PARIS",
            "actif": 1
        }
    ]
}

Request   

GET api/v2/distribution/all

Query Parameters

website  string  
Website Code(ACdev, TC, etc...)

Search distribution

Example request:

curl -X POST \
    "https://dashboard-preprod.appartement-construction.com/api/v2/distribution/search" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"website":"TC","format":"KILLI","type":"code_postal","query":"75001"}'
const url = new URL(
    "https://dashboard-preprod.appartement-construction.com/api/v2/distribution/search"
);

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

let body = {
    "website": "TC",
    "format": "KILLI",
    "type": "code_postal",
    "query": "75001"
}

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

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://dashboard-preprod.appartement-construction.com/api/v2/distribution/search',
    [
        'headers' => [
            'Accept' => 'application/json',
        ],
        'json' => [
            'website' => 'TC',
            'format' => 'KILLI',
            'type' => 'code_postal',
            'query' => '75001',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dashboard-preprod.appartement-construction.com/api/v2/distribution/search'
payload = {
    "website": "TC",
    "format": "KILLI",
    "type": "code_postal",
    "query": "75001"
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (400):

{
    "code": 400,
    "status": "error",
    "message": {
        "website": [
            "Le champ website est obligatoire."
        ],
        "type": [
            "Le champ type est obligatoire."
        ],
        "query": [
            "Le champ query est obligatoire."
        ]
    }
}

Example response (404):

{
    "code": 404,
    "status": "error",
    "data": []
}

Example response (200):

{
    "code": 200,
    "status": "ok",
    "data": [
        {
            "distrib_id": 1,
            "commune_id": 2,
            "code_postal": "75001",
            "commune_nom": "PARIS"
        },
        {
            "distrib_id": 2,
            "commune_id": 3,
            "code_postal": "75002",
            "commune_nom": "PARIS"
        },
        {
            "distrib_id": 3,
            "commune_id": 4,
            "code_postal": "75003",
            "commune_nom": "PARIS"
        },
        {
            "distrib_id": 4,
            "commune_id": 5,
            "code_postal": "75004",
            "commune_nom": "PARIS"
        },
        {
            "distrib_id": 5,
            "commune_id": 6,
            "code_postal": "75005",
            "commune_nom": "PARIS"
        }
    ]
}

Example response (200):

{
    "code": 200,
    "status": "ok",
    "data": [
        {
            "distrib_id": {
                "value": 1,
                "editable": 1,
                "reference": "75001"
            },
            "commune_id": {
                "value": 2,
                "editable": 1,
                "reference": "75001"
            },
            "code_postal": {
                "value": "75001",
                "editable": 1
            },
            "commune_nom": {
                "value": "PARIS",
                "editable": 1,
                "reference": null
            }
        },
        {
            "distrib_id": {
                "value": 2,
                "editable": 1,
                "reference": "75002"
            },
            "commune_id": {
                "value": 3,
                "editable": 1,
                "reference": "75002"
            },
            "code_postal": {
                "value": "75002",
                "editable": 1
            },
            "commune_nom": {
                "value": "PARIS",
                "editable": 1,
                "reference": null
            }
        }
    ]
}

Front (Deprecated)

APIs for custom frontend routes

Count and group by zip (Deprecated) (Cached for 15min)

Example request:

curl -X POST \
    "https://dashboard-preprod.appartement-construction.com/api/v2/custom-front/annonce/count-group-zip" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"website":"TC","cpextended":"13080 AIX EN PROVENCE,91100 VILLABE","type":"APPARTEMENT,TERRAIN","range":10}'
const url = new URL(
    "https://dashboard-preprod.appartement-construction.com/api/v2/custom-front/annonce/count-group-zip"
);

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

let body = {
    "website": "TC",
    "cpextended": "13080 AIX EN PROVENCE,91100 VILLABE",
    "type": "APPARTEMENT,TERRAIN",
    "range": 10
}

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

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://dashboard-preprod.appartement-construction.com/api/v2/custom-front/annonce/count-group-zip',
    [
        'headers' => [
            'Accept' => 'application/json',
        ],
        'json' => [
            'website' => 'TC',
            'cpextended' => '13080 AIX EN PROVENCE,91100 VILLABE',
            'type' => 'APPARTEMENT,TERRAIN',
            'range' => 10.0,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dashboard-preprod.appartement-construction.com/api/v2/custom-front/annonce/count-group-zip'
payload = {
    "website": "TC",
    "cpextended": "13080 AIX EN PROVENCE,91100 VILLABE",
    "type": "APPARTEMENT,TERRAIN",
    "range": 10
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (400):

{
    "code": 400,
    "status": "error",
    "message": {
        "type": [
            "Le champ type est invalide."
        ]
    }
}

Example response (200):

{
    "code": 200,
    "status": "ok",
    "data": {
        "13080 AIX EN PROVENCE": 54,
        "91100 VILLABE": 42
    }
}

Request   

POST api/v2/custom-front/annonce/count-group-zip

Body Parameters

website  string  
Website Code(ACdev, TC, etc...)

cpextended  string  
Extended cp (zip code + acheminement) separated by comma

type  string optional  
Annonce Types separated by comma

range  number optional  
Range around each city (in km) Default:1

Count and group by region (Deprecated) (Cached for 15min)

Example request:

curl -X POST \
    "https://dashboard-preprod.appartement-construction.com/api/v2/custom-front/annonce/count-group-region" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"website":"TC","region":"01,04,07","type":"APPARTEMENT,TERRAIN"}'
const url = new URL(
    "https://dashboard-preprod.appartement-construction.com/api/v2/custom-front/annonce/count-group-region"
);

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

let body = {
    "website": "TC",
    "region": "01,04,07",
    "type": "APPARTEMENT,TERRAIN"
}

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

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://dashboard-preprod.appartement-construction.com/api/v2/custom-front/annonce/count-group-region',
    [
        'headers' => [
            'Accept' => 'application/json',
        ],
        'json' => [
            'website' => 'TC',
            'region' => '01,04,07',
            'type' => 'APPARTEMENT,TERRAIN',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dashboard-preprod.appartement-construction.com/api/v2/custom-front/annonce/count-group-region'
payload = {
    "website": "TC",
    "region": "01,04,07",
    "type": "APPARTEMENT,TERRAIN"
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (400):

{
    "code": 400,
    "status": "error",
    "message": {
        "region.22": [
            "Le champ region.22 sélectionné est invalide."
        ]
    }
}

Example response (200):

{
    "code": 200,
    "status": "ok",
    "data": {
        "1 Alsace": 36,
        "2 Nord-Pas-de-Calais": 228,
        "3 Rhône-Alpes": 424,
        "4 Franche-Comté": 1,
        "5 Lorraine": 18,
        "6 Champagne-Ardenne": 38,
        "7 Picardie": 13,
        "8 Haute-Normandie": 225,
        "9 Basse-Normandie": 8,
        "10 Bretagne": 63,
        "11 Auvergne": 60,
        "12 Pays de la Loire": 19,
        "13 Île-de-France": 1455,
        "14 Centre": 235,
        "15 Bourgogne": 81,
        "16 Poitou-Charentes": 14,
        "18 Aquitaine": 180,
        "19 Midi-Pyrénées": 57,
        "20 Languedoc-Roussillon": 175,
        "21 Provence-Alpes-Côte d'Azur": 1150
    }
}

Request   

POST api/v2/custom-front/annonce/count-group-region

Body Parameters

website  string  
Website Code(ACdev, TC, etc...)

region  string  
Region IDS separated by comma

type  string optional  
Annonce Types separated by comma

Programme

APIs for managing programmes

Display the specified programme.

Example request:

curl -X GET \
    -G "https://dashboard-preprod.appartement-construction.com/api/v2/programme/123?website=TC&client_vars=a%3A50%3A%7Bs%3A21%3A%22PHP_FCGI_MAX_REQUESTS%22%3Bs%3A4%3A%225000%22%3Bs%3A5%3A%22PHPRC%22%3Bs%3A18%3A%22%2Fvar%2Fwww%2Fconf%2Fweb3%22%3Bs%3A3%3A%22PWD%22%3Bs%3A30%3A%22%2Fvar%2Fwww%2Fphp-fcgi-scripts%2Fweb3%22...&ip=88.12.14.134" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json"
const url = new URL(
    "https://dashboard-preprod.appartement-construction.com/api/v2/programme/123"
);

let params = {
    "website": "TC",
    "client_vars": "a:50:{s:21:"PHP_FCGI_MAX_REQUESTS";s:4:"5000";s:5:"PHPRC";s:18:"/var/www/conf/web3";s:3:"PWD";s:30:"/var/www/php-fcgi-scripts/web3"...",
    "ip": "88.12.14.134",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://dashboard-preprod.appartement-construction.com/api/v2/programme/123',
    [
        'headers' => [
            'Accept' => 'application/json',
        ],
        'query' => [
            'website'=> 'TC',
            'client_vars'=> 'a:50:{s:21:"PHP_FCGI_MAX_REQUESTS";s:4:"5000";s:5:"PHPRC";s:18:"/var/www/conf/web3";s:3:"PWD";s:30:"/var/www/php-fcgi-scripts/web3"...',
            'ip'=> '88.12.14.134',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dashboard-preprod.appartement-construction.com/api/v2/programme/123'
params = {
  'website': 'TC',
  'client_vars': 'a:50:{s:21:"PHP_FCGI_MAX_REQUESTS";s:4:"5000";s:5:"PHPRC";s:18:"/var/www/conf/web3";s:3:"PWD";s:30:"/var/www/php-fcgi-scripts/web3"...',
  'ip': '88.12.14.134',
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()

Example response (200):

{
    "code": 200,
    "status": "ok",
    "data": {
        "id": 15,
        "commune_id": 36507,
        "client_id": 1,
        "external_reference": "0038__35000",
        "slugged_external_reference": "0038-35000",
        "email_contact_additionnel": null,
        "adresse": "8 RUE EMMANUEL RAIN",
        "proximite": "",
        "libelle": "URBAN VILLAGE",
        "description": "Lancement de 15 Logements -  à deux pas du centre-ville  de Gonesse ! Nexity érige rue Emmanuel Rain une nouvelle résidence avec une architecture traditionnelle et élégante.<BR><BR>Une situation idéale à seulement 300m* du coeur de ville et 1km du nouveau parc de la commune 'Le poumon vert'. <BR><BR>Crèches, collèges, et Lycée ainsi que de nombreux commerces et services sont à proximité immédiate du projet.<BR>A 200m se trouve l'arrêt de bus de la ligne n°23 qui permet de rejoindre la Gare du RER B de Villiers-le-Bel-Gonesse-Arnouville.  <BR>Il y en a pour tous les goûts ! : Appartements lumineux, déclinés du 2 pièces au  5 pièces, avec loggias, terrasses et jardins privatifs mais aussi de jolies maisons exposées Sud, de 3 ou 4 chambres avec jardins privatifs et garages.   <BR><BR>Une résidence IDEALE pour HABITER OU INVESTIR ! DES PRIX ATTRACTIFS !<BR>PROFITEZ également du DISPOSITIF PINEL pour votre investissement !<BR><BR>Pour toutes informations complémentaires, CONTACTEZ-NOUS DES MAINTENANT ! Pour toutes informations complémentaires, prenez contact avec nous !",
        "avant_premiere": 0,
        "exclusivite": null,
        "priorite_visibilite": 0,
        "appartement": 1,
        "maison": 1,
        "terrain": 0,
        "piscine": 0,
        "climatisation": 0,
        "pinel": 1,
        "anru": null,
        "lmnp": null,
        "tva5": null,
        "localisation_mer": null,
        "localisation_montagne": null,
        "localisation_etranger": null,
        "type_senior": null,
        "type_etudiant": null,
        "type_tourisme": null,
        "date_dispo": "2022-06-29T22:00:00.000000Z",
        "identifiant_quartier": "",
        "transport_ligne": "",
        "transport_station": "",
        "etat": "avant-première",
        "conso_energie": "",
        "bilan_conso_energie": "",
        "emission_ges": "",
        "bilan_emission_ges": "",
        "identifiant_technique": null,
        "create_batch_id": 2,
        "update_batch_id": 2476,
        "remove_batch_id": null,
        "lastseen_batch_id": 2674,
        "source": null,
        "from_website": null,
        "published": 1,
        "moderated": 0,
        "published_at": "2020-12-28T11:07:13.000000Z",
        "created_at": "2020-02-20T13:02:47.000000Z",
        "updated_at": "2020-12-28T11:07:13.000000Z",
        "deleted_at": null
    }
}

Example response (400):

{
    "code": 400,
    "status": "error",
    "message": {
        "ip": [
            "Le champ ip est obligatoire quand la valeur de consultation est true."
        ],
        "client_vars": [
            "Le champ client vars est obligatoire quand la valeur de consultation est true."
        ]
    }
}

Request   

GET api/v2/programme/{programme}

URL Parameters

programme  string  
Annonce ID

Query Parameters

website  string  
Website Code(ACdev, TC, etc...)

client_vars  string optional  
Serialization of $_SERVER.

ip  string optional  
re-searcher ip.

Store a newly created programme.

Example request:

curl -X POST \
    "https://dashboard-preprod.appartement-construction.com/api/v2/programme" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"website":"TC","client_id":456,"commune_id":456,"ext_ref":"2924-Ab-c","type":"rerum","price":100000,"programme_id":12,"surface":104.9,"published":1,"adresse":"10 street of change","alarme":1,"annee_construction":"2012","ascenseur":0,"associated_websites_codes":"{\"0\":\"MB\",\"1\",\"AC\"}","avant_premiere":1,"bilan_conso_energie":"B","bilan_emission_ges":"A","cave":1,"charges_mois":55.12,"conso_energie":"1520","date_dispo":"15\/01\/2023","description":"My long description","droit_au_bail":0,"email_contact_additionnel":"me@example.com","emission_ges":"1520","etage":2,"etat_interieur":"Etat neuf","exclusivite":0,"external_code_postal":"25300","interphone":0,"libelle":"Appartement neuf sous les combles 75m\u0153","loyer_mois_charges_comprises":760.25,"loyer_mois":705.13,"moderated":0,"nbr_balcon":1,"nbr_boxe":0,"nbr_chambre_rdc":1,"nbr_etage":2,"nbr_parking":1,"nbr_piece":4,"nbr_sdb":4,"piscine":0,"priorite_visibilite":2,"prix_maison":120000,"prix_terrain":8000,"prix":200000,"proximite":"Arret de bus ligne 10","sous_type_bien":250,"surface_balcon":14,"surface_habitable":100,"surface_maison":152.15,"surface_sejour":40.51,"surface_terrain":800,"taxe_fonciere":1000.9,"terrasse":0,"type_chauffage":4608,"type_cuisine":6,"type_eau_chaude":70}'
const url = new URL(
    "https://dashboard-preprod.appartement-construction.com/api/v2/programme"
);

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

let body = {
    "website": "TC",
    "client_id": 456,
    "commune_id": 456,
    "ext_ref": "2924-Ab-c",
    "type": "rerum",
    "price": 100000,
    "programme_id": 12,
    "surface": 104.9,
    "published": 1,
    "adresse": "10 street of change",
    "alarme": 1,
    "annee_construction": "2012",
    "ascenseur": 0,
    "associated_websites_codes": "{\"0\":\"MB\",\"1\",\"AC\"}",
    "avant_premiere": 1,
    "bilan_conso_energie": "B",
    "bilan_emission_ges": "A",
    "cave": 1,
    "charges_mois": 55.12,
    "conso_energie": "1520",
    "date_dispo": "15\/01\/2023",
    "description": "My long description",
    "droit_au_bail": 0,
    "email_contact_additionnel": "me@example.com",
    "emission_ges": "1520",
    "etage": 2,
    "etat_interieur": "Etat neuf",
    "exclusivite": 0,
    "external_code_postal": "25300",
    "interphone": 0,
    "libelle": "Appartement neuf sous les combles 75m\u0153",
    "loyer_mois_charges_comprises": 760.25,
    "loyer_mois": 705.13,
    "moderated": 0,
    "nbr_balcon": 1,
    "nbr_boxe": 0,
    "nbr_chambre_rdc": 1,
    "nbr_etage": 2,
    "nbr_parking": 1,
    "nbr_piece": 4,
    "nbr_sdb": 4,
    "piscine": 0,
    "priorite_visibilite": 2,
    "prix_maison": 120000,
    "prix_terrain": 8000,
    "prix": 200000,
    "proximite": "Arret de bus ligne 10",
    "sous_type_bien": 250,
    "surface_balcon": 14,
    "surface_habitable": 100,
    "surface_maison": 152.15,
    "surface_sejour": 40.51,
    "surface_terrain": 800,
    "taxe_fonciere": 1000.9,
    "terrasse": 0,
    "type_chauffage": 4608,
    "type_cuisine": 6,
    "type_eau_chaude": 70
}

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

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://dashboard-preprod.appartement-construction.com/api/v2/programme',
    [
        'headers' => [
            'Accept' => 'application/json',
        ],
        'json' => [
            'website' => 'TC',
            'client_id' => 456,
            'commune_id' => 456,
            'ext_ref' => '2924-Ab-c',
            'type' => 'rerum',
            'price' => 100000.0,
            'programme_id' => 12,
            'surface' => 104.9,
            'published' => 1,
            'adresse' => '10 street of change',
            'alarme' => 1,
            'annee_construction' => '2012',
            'ascenseur' => 0,
            'associated_websites_codes' => '{"0":"MB","1","AC"}',
            'avant_premiere' => 1,
            'bilan_conso_energie' => 'B',
            'bilan_emission_ges' => 'A',
            'cave' => 1,
            'charges_mois' => 55.12,
            'conso_energie' => '1520',
            'date_dispo' => '15/01/2023',
            'description' => 'My long description',
            'droit_au_bail' => 0.0,
            'email_contact_additionnel' => 'me@example.com',
            'emission_ges' => '1520',
            'etage' => 2,
            'etat_interieur' => 'Etat neuf',
            'exclusivite' => 0,
            'external_code_postal' => '25300',
            'interphone' => 0,
            'libelle' => 'Appartement neuf sous les combles 75mœ',
            'loyer_mois_charges_comprises' => 760.25,
            'loyer_mois' => 705.13,
            'moderated' => 0,
            'nbr_balcon' => 1,
            'nbr_boxe' => 0,
            'nbr_chambre_rdc' => 1,
            'nbr_etage' => 2,
            'nbr_parking' => 1,
            'nbr_piece' => 4,
            'nbr_sdb' => 4,
            'piscine' => 0,
            'priorite_visibilite' => 2,
            'prix_maison' => 120000.0,
            'prix_terrain' => 8000.0,
            'prix' => 200000.0,
            'proximite' => 'Arret de bus ligne 10',
            'sous_type_bien' => 250,
            'surface_balcon' => 14.0,
            'surface_habitable' => 100.0,
            'surface_maison' => 152.15,
            'surface_sejour' => 40.51,
            'surface_terrain' => 800.0,
            'taxe_fonciere' => 1000.9,
            'terrasse' => 0,
            'type_chauffage' => 4608,
            'type_cuisine' => 6,
            'type_eau_chaude' => 70,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dashboard-preprod.appartement-construction.com/api/v2/programme'
payload = {
    "website": "TC",
    "client_id": 456,
    "commune_id": 456,
    "ext_ref": "2924-Ab-c",
    "type": "rerum",
    "price": 100000,
    "programme_id": 12,
    "surface": 104.9,
    "published": 1,
    "adresse": "10 street of change",
    "alarme": 1,
    "annee_construction": "2012",
    "ascenseur": 0,
    "associated_websites_codes": "{\"0\":\"MB\",\"1\",\"AC\"}",
    "avant_premiere": 1,
    "bilan_conso_energie": "B",
    "bilan_emission_ges": "A",
    "cave": 1,
    "charges_mois": 55.12,
    "conso_energie": "1520",
    "date_dispo": "15\/01\/2023",
    "description": "My long description",
    "droit_au_bail": 0,
    "email_contact_additionnel": "me@example.com",
    "emission_ges": "1520",
    "etage": 2,
    "etat_interieur": "Etat neuf",
    "exclusivite": 0,
    "external_code_postal": "25300",
    "interphone": 0,
    "libelle": "Appartement neuf sous les combles 75m\u0153",
    "loyer_mois_charges_comprises": 760.25,
    "loyer_mois": 705.13,
    "moderated": 0,
    "nbr_balcon": 1,
    "nbr_boxe": 0,
    "nbr_chambre_rdc": 1,
    "nbr_etage": 2,
    "nbr_parking": 1,
    "nbr_piece": 4,
    "nbr_sdb": 4,
    "piscine": 0,
    "priorite_visibilite": 2,
    "prix_maison": 120000,
    "prix_terrain": 8000,
    "prix": 200000,
    "proximite": "Arret de bus ligne 10",
    "sous_type_bien": 250,
    "surface_balcon": 14,
    "surface_habitable": 100,
    "surface_maison": 152.15,
    "surface_sejour": 40.51,
    "surface_terrain": 800,
    "taxe_fonciere": 1000.9,
    "terrasse": 0,
    "type_chauffage": 4608,
    "type_cuisine": 6,
    "type_eau_chaude": 70
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (200):

{
    "code": 200,
    "status": "ok",
    "message": "programme created"
}

Example response (400):

{
    "code": 400,
    "status": "error",
    "message": {
        "client_id": [
            "Le champ client id sélectionné est invalide."
        ],
        "commune_id": [
            "Le champ commune id est obligatoire."
        ],
        "external_reference": [
            "Le champ external reference est obligatoire."
        ]
    }
}

Request   

POST api/v2/programme

Body Parameters

website  string  
Website Code(ACdev, TC, etc...)

client_id  integer  
Client id

commune_id  integer  
Commune id

ext_ref  string  
External Reference

type  string  
Annonce Type see [Additional Datas / Type values](#annonce-type-values) :

price  number  
Price

programme_id  integer optional  
recommended Programme Id

surface  number optional  
recommended Surface

published  integer optional  
(1 for yes/ 0 for no, default 0)

adresse  string optional  
max 128 Adresse

alarme  integer optional  
(1 for yes/ 0 for no)

annee_construction  string optional  
Year of construction

ascenseur  integer optional  
(1 for yes/ 0 for no)

associated_websites_codes  json optional  
Force list of website appartenance

avant_premiere  integer optional  
Avant Premiere (yes/no)

bilan_conso_energie  string optional  
see [Additional Datas / Bilan Conso & Emission](#annonce-bilan-conso-emission)

bilan_emission_ges  string optional  
see [Additional Datas / Bilan Conso & Emission](#annonce-bilan-conso-emission)

cave  integer optional  
(1 for yes/ 0 for no)

charges_mois  number optional  
Charge par Mois

conso_energie  string optional  
(kWhEP/m²/an)

date_dispo  string optional  
(JJ/MM/AAAA)

description  text optional  
Espace char is mandatory before " - Tags allowed are p, div, br, italic, bold, code, link, strike, underline, bullet_list, ordered_list, blockquote.

droit_au_bail  number optional  
Montant droit au bail.

email_contact_additionnel  string optional  
Additional contact Email

emission_ges  string optional  
(kg éq CO2/m²/an).

etage  integer optional  

etat_interieur  string optional  
max 128

exclusivite  integer optional  
(1 for yes/ 0 for no)

external_code_postal  string optional  
Zip Code

interphone  integer optional  
(1 for yes/ 0 for no)

libelle  string optional  
max 254

loyer_mois_charges_comprises  number optional  

loyer_mois  number optional  

moderated  integer optional  
(1 for yes/ 0 for no)

nbr_balcon  integer optional  

nbr_boxe  integer optional  

nbr_chambre_rdc  integer optional  

nbr_etage  integer optional  

nbr_parking  integer optional  

nbr_piece  integer optional  

nbr_sdb  integer optional  

piscine  integer optional  
(1 for yes/ 0 for no)

priorite_visibilite  integer optional  

prix_maison  number optional  

prix_terrain  number optional  

prix  number optional  

proximite  string optional  
max 128 Adresse

sous_type_bien  integer optional  
see [Additional Datas / Sous Type de Bien](#annonce-sous-type-de-bien)

surface_balcon  number optional  
recommended Surface

surface_habitable  number optional  
recommended Surface

surface_maison  number optional  
recommended Surface

surface_sejour  number optional  
recommended Surface

surface_terrain  number optional  
recommended Surface

taxe_fonciere  number optional  
recommended Surface

terrasse  integer optional  
(1 for yes/ 0 for no)

type_chauffage  integer optional  
see [Additional Datas / Type Chauffage](#annonce-type-chauffage)

type_cuisine  integer optional  
see [Additional Datas / Type Cuisine](#annonce-type-cuisine)

type_eau_chaude  integer optional  
see [Additional Datas / Type Eau Chaude](#annonce-type-eau-chaude)

Update the specified programme.

Example request:

curl -X POST \
    "https://dashboard-preprod.appartement-construction.com/api/v2/programme/{programme}" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"website":"TC","client_id":456,"commune_id":456,"ext_ref":"2924-Ab-c","type":"itaque","price":100000,"programme_id":12,"surface":104.9,"published":1,"adresse":"10 street of change","alarme":1,"annee_construction":"2012","ascenseur":0,"associated_websites_codes":"{\"0\":\"MB\",\"1\",\"AC\"}","avant_premiere":1,"bilan_conso_energie":"B","bilan_emission_ges":"A","cave":1,"charges_mois":55.12,"conso_energie":"1520","date_dispo":"15\/01\/2023","description":"My long description","droit_au_bail":0,"email_contact_additionnel":"me@example.com","emission_ges":"1520","etage":2,"etat_interieur":"Etat neuf","exclusivite":0,"external_code_postal":"25300","interphone":0,"libelle":"Appartement neuf sous les combles 75m\u0153","loyer_mois_charges_comprises":760.25,"loyer_mois":705.13,"moderated":0,"nbr_balcon":1,"nbr_boxe":0,"nbr_chambre_rdc":1,"nbr_etage":2,"nbr_parking":1,"nbr_piece":4,"nbr_sdb":4,"piscine":0,"priorite_visibilite":2,"prix_maison":120000,"prix_terrain":8000,"prix":200000,"proximite":"Arret de bus ligne 10","sous_type_bien":250,"surface_balcon":14,"surface_habitable":100,"surface_maison":152.15,"surface_sejour":40.51,"surface_terrain":800,"taxe_fonciere":1000.9,"terrasse":0,"type_chauffage":4608,"type_cuisine":6,"type_eau_chaude":70}'
const url = new URL(
    "https://dashboard-preprod.appartement-construction.com/api/v2/programme/{programme}"
);

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

let body = {
    "website": "TC",
    "client_id": 456,
    "commune_id": 456,
    "ext_ref": "2924-Ab-c",
    "type": "itaque",
    "price": 100000,
    "programme_id": 12,
    "surface": 104.9,
    "published": 1,
    "adresse": "10 street of change",
    "alarme": 1,
    "annee_construction": "2012",
    "ascenseur": 0,
    "associated_websites_codes": "{\"0\":\"MB\",\"1\",\"AC\"}",
    "avant_premiere": 1,
    "bilan_conso_energie": "B",
    "bilan_emission_ges": "A",
    "cave": 1,
    "charges_mois": 55.12,
    "conso_energie": "1520",
    "date_dispo": "15\/01\/2023",
    "description": "My long description",
    "droit_au_bail": 0,
    "email_contact_additionnel": "me@example.com",
    "emission_ges": "1520",
    "etage": 2,
    "etat_interieur": "Etat neuf",
    "exclusivite": 0,
    "external_code_postal": "25300",
    "interphone": 0,
    "libelle": "Appartement neuf sous les combles 75m\u0153",
    "loyer_mois_charges_comprises": 760.25,
    "loyer_mois": 705.13,
    "moderated": 0,
    "nbr_balcon": 1,
    "nbr_boxe": 0,
    "nbr_chambre_rdc": 1,
    "nbr_etage": 2,
    "nbr_parking": 1,
    "nbr_piece": 4,
    "nbr_sdb": 4,
    "piscine": 0,
    "priorite_visibilite": 2,
    "prix_maison": 120000,
    "prix_terrain": 8000,
    "prix": 200000,
    "proximite": "Arret de bus ligne 10",
    "sous_type_bien": 250,
    "surface_balcon": 14,
    "surface_habitable": 100,
    "surface_maison": 152.15,
    "surface_sejour": 40.51,
    "surface_terrain": 800,
    "taxe_fonciere": 1000.9,
    "terrasse": 0,
    "type_chauffage": 4608,
    "type_cuisine": 6,
    "type_eau_chaude": 70
}

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

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://dashboard-preprod.appartement-construction.com/api/v2/programme/{programme}',
    [
        'headers' => [
            'Accept' => 'application/json',
        ],
        'json' => [
            'website' => 'TC',
            'client_id' => 456,
            'commune_id' => 456,
            'ext_ref' => '2924-Ab-c',
            'type' => 'itaque',
            'price' => 100000.0,
            'programme_id' => 12,
            'surface' => 104.9,
            'published' => 1,
            'adresse' => '10 street of change',
            'alarme' => 1,
            'annee_construction' => '2012',
            'ascenseur' => 0,
            'associated_websites_codes' => '{"0":"MB","1","AC"}',
            'avant_premiere' => 1,
            'bilan_conso_energie' => 'B',
            'bilan_emission_ges' => 'A',
            'cave' => 1,
            'charges_mois' => 55.12,
            'conso_energie' => '1520',
            'date_dispo' => '15/01/2023',
            'description' => 'My long description',
            'droit_au_bail' => 0.0,
            'email_contact_additionnel' => 'me@example.com',
            'emission_ges' => '1520',
            'etage' => 2,
            'etat_interieur' => 'Etat neuf',
            'exclusivite' => 0,
            'external_code_postal' => '25300',
            'interphone' => 0,
            'libelle' => 'Appartement neuf sous les combles 75mœ',
            'loyer_mois_charges_comprises' => 760.25,
            'loyer_mois' => 705.13,
            'moderated' => 0,
            'nbr_balcon' => 1,
            'nbr_boxe' => 0,
            'nbr_chambre_rdc' => 1,
            'nbr_etage' => 2,
            'nbr_parking' => 1,
            'nbr_piece' => 4,
            'nbr_sdb' => 4,
            'piscine' => 0,
            'priorite_visibilite' => 2,
            'prix_maison' => 120000.0,
            'prix_terrain' => 8000.0,
            'prix' => 200000.0,
            'proximite' => 'Arret de bus ligne 10',
            'sous_type_bien' => 250,
            'surface_balcon' => 14.0,
            'surface_habitable' => 100.0,
            'surface_maison' => 152.15,
            'surface_sejour' => 40.51,
            'surface_terrain' => 800.0,
            'taxe_fonciere' => 1000.9,
            'terrasse' => 0,
            'type_chauffage' => 4608,
            'type_cuisine' => 6,
            'type_eau_chaude' => 70,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dashboard-preprod.appartement-construction.com/api/v2/programme/{programme}'
payload = {
    "website": "TC",
    "client_id": 456,
    "commune_id": 456,
    "ext_ref": "2924-Ab-c",
    "type": "itaque",
    "price": 100000,
    "programme_id": 12,
    "surface": 104.9,
    "published": 1,
    "adresse": "10 street of change",
    "alarme": 1,
    "annee_construction": "2012",
    "ascenseur": 0,
    "associated_websites_codes": "{\"0\":\"MB\",\"1\",\"AC\"}",
    "avant_premiere": 1,
    "bilan_conso_energie": "B",
    "bilan_emission_ges": "A",
    "cave": 1,
    "charges_mois": 55.12,
    "conso_energie": "1520",
    "date_dispo": "15\/01\/2023",
    "description": "My long description",
    "droit_au_bail": 0,
    "email_contact_additionnel": "me@example.com",
    "emission_ges": "1520",
    "etage": 2,
    "etat_interieur": "Etat neuf",
    "exclusivite": 0,
    "external_code_postal": "25300",
    "interphone": 0,
    "libelle": "Appartement neuf sous les combles 75m\u0153",
    "loyer_mois_charges_comprises": 760.25,
    "loyer_mois": 705.13,
    "moderated": 0,
    "nbr_balcon": 1,
    "nbr_boxe": 0,
    "nbr_chambre_rdc": 1,
    "nbr_etage": 2,
    "nbr_parking": 1,
    "nbr_piece": 4,
    "nbr_sdb": 4,
    "piscine": 0,
    "priorite_visibilite": 2,
    "prix_maison": 120000,
    "prix_terrain": 8000,
    "prix": 200000,
    "proximite": "Arret de bus ligne 10",
    "sous_type_bien": 250,
    "surface_balcon": 14,
    "surface_habitable": 100,
    "surface_maison": 152.15,
    "surface_sejour": 40.51,
    "surface_terrain": 800,
    "taxe_fonciere": 1000.9,
    "terrasse": 0,
    "type_chauffage": 4608,
    "type_cuisine": 6,
    "type_eau_chaude": 70
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (200):

{
    "code": 200,
    "status": "ok",
    "message": "programme updated"
}

Example response (400):

{
    "code": 400,
    "status": "error",
    "message": {
        "programme_id": [
            "Le champ programme id sélectionné est invalide."
        ]
    }
}

Request   

POST api/v2/programme/{programme}

Body Parameters

website  string optional  
nullable Website Code(ACdev, TC, etc...)

client_id  integer optional  
nullable Client id

commune_id  integer optional  
nullable Commune id

ext_ref  string optional  
nullable External Reference

type  string optional  
nullable Annonce Type see [Additional Datas / Type values](#annonce-type-values) :

price  number optional  
nullable Price

programme_id  integer optional  
recommended Programme Id

surface  number optional  
recommended Surface

published  integer optional  
(1 for yes/ 0 for no, default 0)

adresse  string optional  
max 128 Adresse

alarme  integer optional  
(1 for yes/ 0 for no)

annee_construction  string optional  
Year of construction

ascenseur  integer optional  
(1 for yes/ 0 for no)

associated_websites_codes  json optional  
Force list of website appartenance

avant_premiere  integer optional  
Avant Premiere (yes/no)

bilan_conso_energie  string optional  
see [Additional Datas / Bilan Conso & Emission](#annonce-bilan-conso-emission)

bilan_emission_ges  string optional  
see [Additional Datas / Bilan Conso & Emission](#annonce-bilan-conso-emission)

cave  integer optional  
(1 for yes/ 0 for no)

charges_mois  number optional  
Charge par Mois

conso_energie  string optional  
(kWhEP/m²/an)

date_dispo  string optional  
(JJ/MM/AAAA)

description  text optional  
Espace char is mandatory before " - Tags allowed are p, div, br, italic, bold, code, link, strike, underline, bullet_list, ordered_list, blockquote.

droit_au_bail  number optional  
Montant droit au bail.

email_contact_additionnel  string optional  
Additional contact Email

emission_ges  string optional  
(kg éq CO2/m²/an).

etage  integer optional  

etat_interieur  string optional  
max 128

exclusivite  integer optional  
(1 for yes/ 0 for no)

external_code_postal  string optional  
Zip Code

interphone  integer optional  
(1 for yes/ 0 for no)

libelle  string optional  
max 254

loyer_mois_charges_comprises  number optional  

loyer_mois  number optional  

moderated  integer optional  
(1 for yes/ 0 for no)

nbr_balcon  integer optional  

nbr_boxe  integer optional  

nbr_chambre_rdc  integer optional  

nbr_etage  integer optional  

nbr_parking  integer optional  

nbr_piece  integer optional  

nbr_sdb  integer optional  

piscine  integer optional  
(1 for yes/ 0 for no)

priorite_visibilite  integer optional  

prix_maison  number optional  

prix_terrain  number optional  

prix  number optional  

proximite  string optional  
max 128 Adresse

sous_type_bien  integer optional  
see [Additional Datas / Sous Type de Bien](#annonce-sous-type-de-bien)

surface_balcon  number optional  
recommended Surface

surface_habitable  number optional  
recommended Surface

surface_maison  number optional  
recommended Surface

surface_sejour  number optional  
recommended Surface

surface_terrain  number optional  
recommended Surface

taxe_fonciere  number optional  
recommended Surface

terrasse  integer optional  
(1 for yes/ 0 for no)

type_chauffage  integer optional  
see [Additional Datas / Type Chauffage](#annonce-type-chauffage)

type_cuisine  integer optional  
see [Additional Datas / Type Cuisine](#annonce-type-cuisine)

type_eau_chaude  integer optional  
see [Additional Datas / Type Eau Chaude](#annonce-type-eau-chaude)

Remove the specified programme.

Example request:

curl -X DELETE \
    "https://dashboard-preprod.appartement-construction.com/api/v2/programme/123" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"website":"TC"}'
const url = new URL(
    "https://dashboard-preprod.appartement-construction.com/api/v2/programme/123"
);

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

let body = {
    "website": "TC"
}

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

$client = new \GuzzleHttp\Client();
$response = $client->delete(
    'https://dashboard-preprod.appartement-construction.com/api/v2/programme/123',
    [
        'headers' => [
            'Accept' => 'application/json',
        ],
        'json' => [
            'website' => 'TC',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dashboard-preprod.appartement-construction.com/api/v2/programme/123'
payload = {
    "website": "TC"
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('DELETE', url, headers=headers, json=payload)
response.json()

Example response (200):

{
    "code": 200,
    "status": "ok",
    "message": "programme deleted"
}

Example response (400):

{
    "code": 400,
    "status": "error",
    "message": {
        "programme_id": [
            "Le champ programme id sélectionné est invalide."
        ]
    }
}

Request   

DELETE api/v2/programme/{programme}

URL Parameters

programme  string  
Programme id

Body Parameters

website  string  
Website Code(ACdev, TC, etc...)

Attach a document to the specified programme.

Example request:

curl -X POST \
    "https://dashboard-preprod.appartement-construction.com/api/v2/programme/123/attach/document" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"website":"TC","document_id":154}'
const url = new URL(
    "https://dashboard-preprod.appartement-construction.com/api/v2/programme/123/attach/document"
);

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

let body = {
    "website": "TC",
    "document_id": 154
}

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

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://dashboard-preprod.appartement-construction.com/api/v2/programme/123/attach/document',
    [
        'headers' => [
            'Accept' => 'application/json',
        ],
        'json' => [
            'website' => 'TC',
            'document_id' => 154,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dashboard-preprod.appartement-construction.com/api/v2/programme/123/attach/document'
payload = {
    "website": "TC",
    "document_id": 154
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (200):

{
    "code": 200,
    "status": "ok",
    "message": "document attached"
}

Example response (400):

{
    "code": 400,
    "status": "error",
    "message": {
        "document_id": [
            "Le champ document id est obligatoire."
        ]
    }
}

Request   

POST api/v2/programme/{programme}/attach/document

URL Parameters

programme  string  
Programme ID

Body Parameters

website  string  
Website Code(ACdev, TC, etc...)

document_id  integer  
Document ID

Detach a document to the specified programme.

Example request:

curl -X POST \
    "https://dashboard-preprod.appartement-construction.com/api/v2/programme/123/detach/document" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"website":"TC","document_id":154}'
const url = new URL(
    "https://dashboard-preprod.appartement-construction.com/api/v2/programme/123/detach/document"
);

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

let body = {
    "website": "TC",
    "document_id": 154
}

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

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://dashboard-preprod.appartement-construction.com/api/v2/programme/123/detach/document',
    [
        'headers' => [
            'Accept' => 'application/json',
        ],
        'json' => [
            'website' => 'TC',
            'document_id' => 154,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dashboard-preprod.appartement-construction.com/api/v2/programme/123/detach/document'
payload = {
    "website": "TC",
    "document_id": 154
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (200):

{
    "code": 200,
    "status": "ok",
    "message": "document detached"
}

Example response (400):

{
    "code": 400,
    "status": "error",
    "message": {
        "document_id": [
            "Le champ document id est obligatoire."
        ]
    }
}

Request   

POST api/v2/programme/{programme}/detach/document

URL Parameters

programme  string  
Programme ID

Body Parameters

website  string  
Website Code(ACdev, TC, etc...)

document_id  integer  
Document ID

Search by State

Example request:

curl -X POST \
    "https://dashboard-preprod.appartement-construction.com/api/v2/programme/search/state" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"website":"TC","range":10,"paginate":15,"order_on":"id","order_dir":"DESC","max_price":10000,"room":2,"type_annonce":"'APPARTEMENT NEUF, MAISON NEUF'","consultation":"1","ip":"88.12.14.134","client_id":1,"client_vars":"a:50:{s:21:\"PHP_FCGI_MAX_REQUESTS\";s:4:\"5000\";s:5:\"PHPRC\";s:18:\"\/var\/www\/conf\/web3\";s:3:\"PWD\";s:30:\"\/var\/www\/php-fcgi-scripts\/web3\"...","state":"01","country":"fr","limit":100}'
const url = new URL(
    "https://dashboard-preprod.appartement-construction.com/api/v2/programme/search/state"
);

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

let body = {
    "website": "TC",
    "range": 10,
    "paginate": 15,
    "order_on": "id",
    "order_dir": "DESC",
    "max_price": 10000,
    "room": 2,
    "type_annonce": "'APPARTEMENT NEUF, MAISON NEUF'",
    "consultation": "1",
    "ip": "88.12.14.134",
    "client_id": 1,
    "client_vars": "a:50:{s:21:\"PHP_FCGI_MAX_REQUESTS\";s:4:\"5000\";s:5:\"PHPRC\";s:18:\"\/var\/www\/conf\/web3\";s:3:\"PWD\";s:30:\"\/var\/www\/php-fcgi-scripts\/web3\"...",
    "state": "01",
    "country": "fr",
    "limit": 100
}

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

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://dashboard-preprod.appartement-construction.com/api/v2/programme/search/state',
    [
        'headers' => [
            'Accept' => 'application/json',
        ],
        'json' => [
            'website' => 'TC',
            'range' => 10,
            'paginate' => 15,
            'order_on' => 'id',
            'order_dir' => 'DESC',
            'max_price' => 10000,
            'room' => 2,
            'type_annonce' => '\'APPARTEMENT NEUF, MAISON NEUF\'',
            'consultation' => '1',
            'ip' => '88.12.14.134',
            'client_id' => 1,
            'client_vars' => 'a:50:{s:21:"PHP_FCGI_MAX_REQUESTS";s:4:"5000";s:5:"PHPRC";s:18:"/var/www/conf/web3";s:3:"PWD";s:30:"/var/www/php-fcgi-scripts/web3"...',
            'state' => '01',
            'country' => 'fr',
            'limit' => 100,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dashboard-preprod.appartement-construction.com/api/v2/programme/search/state'
payload = {
    "website": "TC",
    "range": 10,
    "paginate": 15,
    "order_on": "id",
    "order_dir": "DESC",
    "max_price": 10000,
    "room": 2,
    "type_annonce": "'APPARTEMENT NEUF, MAISON NEUF'",
    "consultation": "1",
    "ip": "88.12.14.134",
    "client_id": 1,
    "client_vars": "a:50:{s:21:\"PHP_FCGI_MAX_REQUESTS\";s:4:\"5000\";s:5:\"PHPRC\";s:18:\"\/var\/www\/conf\/web3\";s:3:\"PWD\";s:30:\"\/var\/www\/php-fcgi-scripts\/web3\"...",
    "state": "01",
    "country": "fr",
    "limit": 100
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (400):

{
    "code": 400,
    "status": "error",
    "message": {
        "type_annonce": [
            "Le champ type annonce est obligatoire."
        ]
    }
}

Example response (200):

{
    "code": 200,
    "status": "ok",
    "data": {
        "current_page": 2,
        "data": [
            {
                "id": 436126,
                "programme_id": null,
                "commune_id": 17425,
                "client_id": 2202,
                "type": "MAISON ANCIEN",
                "external_reference": "21210_30495",
                "slugged_external_reference": "21210-30495",
                "email_contact_additionnel": null,
                "external_code_postal": "45130",
                "adresse": null,
                "proximite": null,
                "libelle": "Maison",
                "description": "MEUNG-SUR-LOIRE, Maison sur sous sol, offrant pièce de vie avec cheminée à foyer ouvert, une cuisine indépendante, 3 chambres, laissant encore du potentiel à exploiter. Travaux de maçonnerie à prévoir. A 1,5 kilomètres de la gare et 2 kilomètres de l'autoroute...\nRéf 30495 Prix 164 3   7\nLCDI Réseau National Immobilier\nVous souhaitez être rappelé plus tard pour ce bien ?,\nEnvoyez : \"RAPPEL réf 3  70 40\nHonoraires à la charge de l'acquéreur",
                "avant_premiere": 0,
                "exclusivite": null,
                "priorite_visibilite": 0,
                "surface": 140,
                "surface_maison": null,
                "surface_terrain": 1500,
                "surface_habitable": 140,
                "surface_sejour": 40,
                "prix": 164300,
                "prix_maison": 164300,
                "prix_terrain": null,
                "nbr_piece": 4,
                "etage": null,
                "terrasse": null,
                "nbr_balcon": null,
                "surface_balcon": null,
                "nbr_etage": null,
                "ascenseur": null,
                "cave": null,
                "nbr_parking": null,
                "nbr_boxe": null,
                "nbr_chambre": 3,
                "nbr_chambre_rdc": null,
                "nbr_sdb": 1,
                "type_cuisine": 11,
                "type_chauffage": 8200,
                "type_eau_chaude": null,
                "alarme": null,
                "piscine": null,
                "interphone": null,
                "etat_interieur": null,
                "date_dispo": null,
                "conso_energie": null,
                "bilan_conso_energie": null,
                "emission_ges": null,
                "bilan_emission_ges": null,
                "annee_construction": null,
                "loyer_mois": null,
                "loyer_mois_charges_comprises": null,
                "charges_mois": null,
                "droit_au_bail": null,
                "taxe_fonciere": null,
                "sous_type_bien": 270,
                "create_batch_id": 3006,
                "update_batch_id": null,
                "remove_batch_id": null,
                "lastseen_batch_id": 3006,
                "source": null,
                "from_website": null,
                "published": 1,
                "moderated": 0,
                "published_at": "2021-02-01T09:31:06.000000Z",
                "created_at": "2021-02-01T09:31:03.000000Z",
                "updated_at": "2021-02-01T09:31:06.000000Z",
                "deleted_at": null,
                "commune": {
                    "id": 17425,
                    "departement_id": 47,
                    "nom": "MEUNG SUR LOIRE",
                    "insee": "45203",
                    "nom_special": "Meung-sur-Loire",
                    "nom_recherche": "MEUNGSURLOIRE",
                    "prefixe_nom_special": "",
                    "population": 5993,
                    "actif": 1,
                    "zone_id": null,
                    "longitude": 1.695017,
                    "latitude": 47.82795,
                    "centre": {
                        "type": "Point",
                        "coordinates": [
                            1.695017,
                            47.82795
                        ]
                    },
                    "created_at": null,
                    "updated_at": "2021-02-08T16:50:00.000000Z",
                    "deleted_at": null,
                    "departement": {
                        "id": 47,
                        "region_id": 14,
                        "nom": "LOIRET",
                        "code": "45",
                        "created_at": "2017-08-31T08:35:14.000000Z",
                        "updated_at": "2017-08-31T08:35:14.000000Z",
                        "deleted_at": null,
                        "region": {
                            "id": 14,
                            "pays_id": 1,
                            "nom": "Centre",
                            "created_at": "2017-08-31T08:35:14.000000Z",
                            "updated_at": "2017-08-31T08:35:14.000000Z",
                            "deleted_at": null
                        }
                    }
                },
                "programme": null
            },
            {
                "id": 436127,
                "programme_id": null,
                "commune_id": 11566,
                "client_id": 2202,
                "type": "MAISON ANCIEN",
                "external_reference": "22322_30477",
                "slugged_external_reference": "22322-30477",
                "email_contact_additionnel": null,
                "external_code_postal": "30100",
                "adresse": null,
                "proximite": null,
                "libelle": "Maison",
                "description": "ALES, A 10 minutes de tout commerces, maison de 151 m² avec terrain de 843 m² clôturé et arboré. Dans un quartier calme . Au rez de chaussée, une chambre avec salle d'eau attenante, un bureau, une salle de jeux, un double garage, une chaufferie et une cuisine d'été. A l'étage, un salon salle à manger avec cheminée ouverte, une cuisine  donnant sur une terrasse, trois chambres avec placards, une salle de bains, un toilette. Double vitrage. A voir...\nRéf 30477  Prix 284 0  25\nAgent Mandataire Indépendant\nRCS de Nîmes (30), n°832 122 824\nLCDI Réseau National Immobilier\nVous souhaitez être rappelé plus tard pour ce bien ?,\nEnvoyez : \"RAPPEL réf 3  59 25\nHonoraires à la charge du vendeur",
                "avant_premiere": 0,
                "exclusivite": null,
                "priorite_visibilite": 0,
                "surface": 151,
                "surface_maison": null,
                "surface_terrain": 843,
                "surface_habitable": 151,
                "surface_sejour": 37,
                "prix": 284000,
                "prix_maison": 284000,
                "prix_terrain": null,
                "nbr_piece": 5,
                "etage": null,
                "terrasse": null,
                "nbr_balcon": null,
                "surface_balcon": null,
                "nbr_etage": null,
                "ascenseur": null,
                "cave": null,
                "nbr_parking": null,
                "nbr_boxe": null,
                "nbr_chambre": 4,
                "nbr_chambre_rdc": 1,
                "nbr_sdb": 1,
                "type_cuisine": 11,
                "type_chauffage": 8704,
                "type_eau_chaude": null,
                "alarme": null,
                "piscine": null,
                "interphone": null,
                "etat_interieur": null,
                "date_dispo": null,
                "conso_energie": "139",
                "bilan_conso_energie": "C",
                "emission_ges": "32",
                "bilan_emission_ges": "D",
                "annee_construction": null,
                "loyer_mois": null,
                "loyer_mois_charges_comprises": null,
                "charges_mois": null,
                "droit_au_bail": null,
                "taxe_fonciere": null,
                "sous_type_bien": 270,
                "create_batch_id": 3006,
                "update_batch_id": null,
                "remove_batch_id": null,
                "lastseen_batch_id": 3006,
                "source": null,
                "from_website": null,
                "published": 1,
                "moderated": 0,
                "published_at": "2021-02-01T09:31:06.000000Z",
                "created_at": "2021-02-01T09:31:03.000000Z",
                "updated_at": "2021-02-01T09:31:06.000000Z",
                "deleted_at": null,
                "commune": {
                    "id": 11566,
                    "departement_id": 32,
                    "nom": "ALES",
                    "insee": "30007",
                    "nom_special": "Alès",
                    "nom_recherche": "ALES",
                    "prefixe_nom_special": "",
                    "population": 41037,
                    "actif": 1,
                    "zone_id": null,
                    "longitude": 4.079023,
                    "latitude": 44.127402,
                    "centre": {
                        "type": "Point",
                        "coordinates": [
                            4.079023,
                            44.127402
                        ]
                    },
                    "created_at": null,
                    "updated_at": "2021-02-08T16:49:50.000000Z",
                    "deleted_at": null,
                    "departement": {
                        "id": 32,
                        "region_id": 20,
                        "nom": "GARD",
                        "code": "30",
                        "created_at": "2017-08-31T08:35:14.000000Z",
                        "updated_at": "2017-08-31T08:35:14.000000Z",
                        "deleted_at": null,
                        "region": {
                            "id": 20,
                            "pays_id": 1,
                            "nom": "Languedoc-Roussillon",
                            "created_at": "2017-08-31T08:35:14.000000Z",
                            "updated_at": "2017-08-31T08:35:14.000000Z",
                            "deleted_at": null
                        }
                    }
                },
                "programme": null
            }
        ],
        "first_page_url": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annonce\/search\/client?page=1",
        "from": 3,
        "last_page": 16,
        "last_page_url": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annonce\/search\/client?page=16",
        "next_page_url": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annonce\/search\/client?page=3",
        "path": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annonce\/search\/client",
        "per_page": 2,
        "prev_page_url": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annonce\/search\/client?page=1",
        "to": 4,
        "total": 32
    }
}

Request   

POST api/v2/programme/search/state

Body Parameters

website  string  
Website Code(ACdev, TC, etc...)

range  integer optional  
default is 0

paginate  integer optional  
default is 10

order_on  string optional  
Order column, default is updated_at is 10

order_dir  string optional  
Order Direction, ASC or DESC

max_price  integer optional  

room  integer optional  

type_annonce  string  
Values who can be separated by commas See [Additional Datas / Type values](#annonce-type-values).

consultation  required optional  
integer 1=>true, 0=>false

ip  string optional  
re-searcher ip.

client_id  integer optional  
Filter by client ID

client_vars  text optional  
Serialization of $_SERVER.

state  string  
States ID

country  string optional  
default is "fr"

limit  integer optional  
Limit the number of programme

Search by Zip

Example request:

curl -X POST \
    "https://dashboard-preprod.appartement-construction.com/api/v2/programme/search/zip" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"website":"TC","range":10,"paginate":15,"order_on":"id","order_dir":"DESC","max_price":10000,"room":2,"type_annonce":"'APPARTEMENT NEUF, MAISON NEUF'","consultation":"1","ip":"88.12.14.134","client_id":1,"client_vars":"a:50:{s:21:\"PHP_FCGI_MAX_REQUESTS\";s:4:\"5000\";s:5:\"PHPRC\";s:18:\"\/var\/www\/conf\/web3\";s:3:\"PWD\";s:30:\"\/var\/www\/php-fcgi-scripts\/web3\"...","zip":"75000","country":"fr","limit":100}'
const url = new URL(
    "https://dashboard-preprod.appartement-construction.com/api/v2/programme/search/zip"
);

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

let body = {
    "website": "TC",
    "range": 10,
    "paginate": 15,
    "order_on": "id",
    "order_dir": "DESC",
    "max_price": 10000,
    "room": 2,
    "type_annonce": "'APPARTEMENT NEUF, MAISON NEUF'",
    "consultation": "1",
    "ip": "88.12.14.134",
    "client_id": 1,
    "client_vars": "a:50:{s:21:\"PHP_FCGI_MAX_REQUESTS\";s:4:\"5000\";s:5:\"PHPRC\";s:18:\"\/var\/www\/conf\/web3\";s:3:\"PWD\";s:30:\"\/var\/www\/php-fcgi-scripts\/web3\"...",
    "zip": "75000",
    "country": "fr",
    "limit": 100
}

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

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://dashboard-preprod.appartement-construction.com/api/v2/programme/search/zip',
    [
        'headers' => [
            'Accept' => 'application/json',
        ],
        'json' => [
            'website' => 'TC',
            'range' => 10,
            'paginate' => 15,
            'order_on' => 'id',
            'order_dir' => 'DESC',
            'max_price' => 10000,
            'room' => 2,
            'type_annonce' => '\'APPARTEMENT NEUF, MAISON NEUF\'',
            'consultation' => '1',
            'ip' => '88.12.14.134',
            'client_id' => 1,
            'client_vars' => 'a:50:{s:21:"PHP_FCGI_MAX_REQUESTS";s:4:"5000";s:5:"PHPRC";s:18:"/var/www/conf/web3";s:3:"PWD";s:30:"/var/www/php-fcgi-scripts/web3"...',
            'zip' => '75000',
            'country' => 'fr',
            'limit' => 100,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dashboard-preprod.appartement-construction.com/api/v2/programme/search/zip'
payload = {
    "website": "TC",
    "range": 10,
    "paginate": 15,
    "order_on": "id",
    "order_dir": "DESC",
    "max_price": 10000,
    "room": 2,
    "type_annonce": "'APPARTEMENT NEUF, MAISON NEUF'",
    "consultation": "1",
    "ip": "88.12.14.134",
    "client_id": 1,
    "client_vars": "a:50:{s:21:\"PHP_FCGI_MAX_REQUESTS\";s:4:\"5000\";s:5:\"PHPRC\";s:18:\"\/var\/www\/conf\/web3\";s:3:\"PWD\";s:30:\"\/var\/www\/php-fcgi-scripts\/web3\"...",
    "zip": "75000",
    "country": "fr",
    "limit": 100
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (400):

{
    "code": 400,
    "status": "error",
    "message": {
        "type_annonce": [
            "Le champ type annonce est obligatoire."
        ]
    }
}

Example response (200):

{
    "code": 200,
    "status": "ok",
    "data": {
        "current_page": 2,
        "data": [
            {
                "id": 436126,
                "programme_id": null,
                "commune_id": 17425,
                "client_id": 2202,
                "type": "MAISON ANCIEN",
                "external_reference": "21210_30495",
                "slugged_external_reference": "21210-30495",
                "email_contact_additionnel": null,
                "external_code_postal": "45130",
                "adresse": null,
                "proximite": null,
                "libelle": "Maison",
                "description": "MEUNG-SUR-LOIRE, Maison sur sous sol, offrant pièce de vie avec cheminée à foyer ouvert, une cuisine indépendante, 3 chambres, laissant encore du potentiel à exploiter. Travaux de maçonnerie à prévoir. A 1,5 kilomètres de la gare et 2 kilomètres de l'autoroute...\nRéf 30495 Prix 164 3   7\nLCDI Réseau National Immobilier\nVous souhaitez être rappelé plus tard pour ce bien ?,\nEnvoyez : \"RAPPEL réf 3  70 40\nHonoraires à la charge de l'acquéreur",
                "avant_premiere": 0,
                "exclusivite": null,
                "priorite_visibilite": 0,
                "surface": 140,
                "surface_maison": null,
                "surface_terrain": 1500,
                "surface_habitable": 140,
                "surface_sejour": 40,
                "prix": 164300,
                "prix_maison": 164300,
                "prix_terrain": null,
                "nbr_piece": 4,
                "etage": null,
                "terrasse": null,
                "nbr_balcon": null,
                "surface_balcon": null,
                "nbr_etage": null,
                "ascenseur": null,
                "cave": null,
                "nbr_parking": null,
                "nbr_boxe": null,
                "nbr_chambre": 3,
                "nbr_chambre_rdc": null,
                "nbr_sdb": 1,
                "type_cuisine": 11,
                "type_chauffage": 8200,
                "type_eau_chaude": null,
                "alarme": null,
                "piscine": null,
                "interphone": null,
                "etat_interieur": null,
                "date_dispo": null,
                "conso_energie": null,
                "bilan_conso_energie": null,
                "emission_ges": null,
                "bilan_emission_ges": null,
                "annee_construction": null,
                "loyer_mois": null,
                "loyer_mois_charges_comprises": null,
                "charges_mois": null,
                "droit_au_bail": null,
                "taxe_fonciere": null,
                "sous_type_bien": 270,
                "create_batch_id": 3006,
                "update_batch_id": null,
                "remove_batch_id": null,
                "lastseen_batch_id": 3006,
                "source": null,
                "from_website": null,
                "published": 1,
                "moderated": 0,
                "published_at": "2021-02-01T09:31:06.000000Z",
                "created_at": "2021-02-01T09:31:03.000000Z",
                "updated_at": "2021-02-01T09:31:06.000000Z",
                "deleted_at": null,
                "commune": {
                    "id": 17425,
                    "departement_id": 47,
                    "nom": "MEUNG SUR LOIRE",
                    "insee": "45203",
                    "nom_special": "Meung-sur-Loire",
                    "nom_recherche": "MEUNGSURLOIRE",
                    "prefixe_nom_special": "",
                    "population": 5993,
                    "actif": 1,
                    "zone_id": null,
                    "longitude": 1.695017,
                    "latitude": 47.82795,
                    "centre": {
                        "type": "Point",
                        "coordinates": [
                            1.695017,
                            47.82795
                        ]
                    },
                    "created_at": null,
                    "updated_at": "2021-02-08T16:50:00.000000Z",
                    "deleted_at": null,
                    "departement": {
                        "id": 47,
                        "region_id": 14,
                        "nom": "LOIRET",
                        "code": "45",
                        "created_at": "2017-08-31T08:35:14.000000Z",
                        "updated_at": "2017-08-31T08:35:14.000000Z",
                        "deleted_at": null,
                        "region": {
                            "id": 14,
                            "pays_id": 1,
                            "nom": "Centre",
                            "created_at": "2017-08-31T08:35:14.000000Z",
                            "updated_at": "2017-08-31T08:35:14.000000Z",
                            "deleted_at": null
                        }
                    }
                },
                "programme": null
            },
            {
                "id": 436127,
                "programme_id": null,
                "commune_id": 11566,
                "client_id": 2202,
                "type": "MAISON ANCIEN",
                "external_reference": "22322_30477",
                "slugged_external_reference": "22322-30477",
                "email_contact_additionnel": null,
                "external_code_postal": "30100",
                "adresse": null,
                "proximite": null,
                "libelle": "Maison",
                "description": "ALES, A 10 minutes de tout commerces, maison de 151 m² avec terrain de 843 m² clôturé et arboré. Dans un quartier calme . Au rez de chaussée, une chambre avec salle d'eau attenante, un bureau, une salle de jeux, un double garage, une chaufferie et une cuisine d'été. A l'étage, un salon salle à manger avec cheminée ouverte, une cuisine  donnant sur une terrasse, trois chambres avec placards, une salle de bains, un toilette. Double vitrage. A voir...\nRéf 30477  Prix 284 0  25\nAgent Mandataire Indépendant\nRCS de Nîmes (30), n°832 122 824\nLCDI Réseau National Immobilier\nVous souhaitez être rappelé plus tard pour ce bien ?,\nEnvoyez : \"RAPPEL réf 3  59 25\nHonoraires à la charge du vendeur",
                "avant_premiere": 0,
                "exclusivite": null,
                "priorite_visibilite": 0,
                "surface": 151,
                "surface_maison": null,
                "surface_terrain": 843,
                "surface_habitable": 151,
                "surface_sejour": 37,
                "prix": 284000,
                "prix_maison": 284000,
                "prix_terrain": null,
                "nbr_piece": 5,
                "etage": null,
                "terrasse": null,
                "nbr_balcon": null,
                "surface_balcon": null,
                "nbr_etage": null,
                "ascenseur": null,
                "cave": null,
                "nbr_parking": null,
                "nbr_boxe": null,
                "nbr_chambre": 4,
                "nbr_chambre_rdc": 1,
                "nbr_sdb": 1,
                "type_cuisine": 11,
                "type_chauffage": 8704,
                "type_eau_chaude": null,
                "alarme": null,
                "piscine": null,
                "interphone": null,
                "etat_interieur": null,
                "date_dispo": null,
                "conso_energie": "139",
                "bilan_conso_energie": "C",
                "emission_ges": "32",
                "bilan_emission_ges": "D",
                "annee_construction": null,
                "loyer_mois": null,
                "loyer_mois_charges_comprises": null,
                "charges_mois": null,
                "droit_au_bail": null,
                "taxe_fonciere": null,
                "sous_type_bien": 270,
                "create_batch_id": 3006,
                "update_batch_id": null,
                "remove_batch_id": null,
                "lastseen_batch_id": 3006,
                "source": null,
                "from_website": null,
                "published": 1,
                "moderated": 0,
                "published_at": "2021-02-01T09:31:06.000000Z",
                "created_at": "2021-02-01T09:31:03.000000Z",
                "updated_at": "2021-02-01T09:31:06.000000Z",
                "deleted_at": null,
                "commune": {
                    "id": 11566,
                    "departement_id": 32,
                    "nom": "ALES",
                    "insee": "30007",
                    "nom_special": "Alès",
                    "nom_recherche": "ALES",
                    "prefixe_nom_special": "",
                    "population": 41037,
                    "actif": 1,
                    "zone_id": null,
                    "longitude": 4.079023,
                    "latitude": 44.127402,
                    "centre": {
                        "type": "Point",
                        "coordinates": [
                            4.079023,
                            44.127402
                        ]
                    },
                    "created_at": null,
                    "updated_at": "2021-02-08T16:49:50.000000Z",
                    "deleted_at": null,
                    "departement": {
                        "id": 32,
                        "region_id": 20,
                        "nom": "GARD",
                        "code": "30",
                        "created_at": "2017-08-31T08:35:14.000000Z",
                        "updated_at": "2017-08-31T08:35:14.000000Z",
                        "deleted_at": null,
                        "region": {
                            "id": 20,
                            "pays_id": 1,
                            "nom": "Languedoc-Roussillon",
                            "created_at": "2017-08-31T08:35:14.000000Z",
                            "updated_at": "2017-08-31T08:35:14.000000Z",
                            "deleted_at": null
                        }
                    }
                },
                "programme": null
            }
        ],
        "first_page_url": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annonce\/search\/client?page=1",
        "from": 3,
        "last_page": 16,
        "last_page_url": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annonce\/search\/client?page=16",
        "next_page_url": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annonce\/search\/client?page=3",
        "path": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annonce\/search\/client",
        "per_page": 2,
        "prev_page_url": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annonce\/search\/client?page=1",
        "to": 4,
        "total": 32
    }
}

Request   

POST api/v2/programme/search/zip

Body Parameters

website  string  
Website Code(ACdev, TC, etc...)

range  integer optional  
default is 0

paginate  integer optional  
default is 10

order_on  string optional  
Order column, default is updated_at is 10

order_dir  string optional  
Order Direction, ASC or DESC

max_price  integer optional  

room  integer optional  

type_annonce  string  
Values who can be separated by commas See [Additional Datas / Type values](#annonce-type-values).

consultation  required optional  
integer 1=>true, 0=>false

ip  string optional  
re-searcher ip.

client_id  integer optional  
Filter by client ID

client_vars  text optional  
Serialization of $_SERVER.

zip  string  
Zip code

country  string optional  
default is "fr"

limit  integer optional  
Limit the number of programme

Search by Region

Example request:

curl -X POST \
    "https://dashboard-preprod.appartement-construction.com/api/v2/programme/search/region" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"website":"TC","range":10,"paginate":15,"page":1,"order_on":"id","order_dir":"DESC","max_price":10000,"room":2,"client_id":1,"type_annonce":"'APPARTEMENT NEUF, MAISON NEUF'","consultation":"1","ip":"88.12.14.134","client_vars":"a:50:{s:21:\"PHP_FCGI_MAX_REQUESTS\";s:4:\"5000\";s:5:\"PHPRC\";s:18:\"\/var\/www\/conf\/web3\";s:3:\"PWD\";s:30:\"\/var\/www\/php-fcgi-scripts\/web3\"...","region":"01","country":"fr","limit":100}'
const url = new URL(
    "https://dashboard-preprod.appartement-construction.com/api/v2/programme/search/region"
);

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

let body = {
    "website": "TC",
    "range": 10,
    "paginate": 15,
    "page": 1,
    "order_on": "id",
    "order_dir": "DESC",
    "max_price": 10000,
    "room": 2,
    "client_id": 1,
    "type_annonce": "'APPARTEMENT NEUF, MAISON NEUF'",
    "consultation": "1",
    "ip": "88.12.14.134",
    "client_vars": "a:50:{s:21:\"PHP_FCGI_MAX_REQUESTS\";s:4:\"5000\";s:5:\"PHPRC\";s:18:\"\/var\/www\/conf\/web3\";s:3:\"PWD\";s:30:\"\/var\/www\/php-fcgi-scripts\/web3\"...",
    "region": "01",
    "country": "fr",
    "limit": 100
}

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

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://dashboard-preprod.appartement-construction.com/api/v2/programme/search/region',
    [
        'headers' => [
            'Accept' => 'application/json',
        ],
        'json' => [
            'website' => 'TC',
            'range' => 10,
            'paginate' => 15,
            'page' => 1,
            'order_on' => 'id',
            'order_dir' => 'DESC',
            'max_price' => 10000,
            'room' => 2,
            'client_id' => 1,
            'type_annonce' => '\'APPARTEMENT NEUF, MAISON NEUF\'',
            'consultation' => '1',
            'ip' => '88.12.14.134',
            'client_vars' => 'a:50:{s:21:"PHP_FCGI_MAX_REQUESTS";s:4:"5000";s:5:"PHPRC";s:18:"/var/www/conf/web3";s:3:"PWD";s:30:"/var/www/php-fcgi-scripts/web3"...',
            'region' => '01',
            'country' => 'fr',
            'limit' => 100,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dashboard-preprod.appartement-construction.com/api/v2/programme/search/region'
payload = {
    "website": "TC",
    "range": 10,
    "paginate": 15,
    "page": 1,
    "order_on": "id",
    "order_dir": "DESC",
    "max_price": 10000,
    "room": 2,
    "client_id": 1,
    "type_annonce": "'APPARTEMENT NEUF, MAISON NEUF'",
    "consultation": "1",
    "ip": "88.12.14.134",
    "client_vars": "a:50:{s:21:\"PHP_FCGI_MAX_REQUESTS\";s:4:\"5000\";s:5:\"PHPRC\";s:18:\"\/var\/www\/conf\/web3\";s:3:\"PWD\";s:30:\"\/var\/www\/php-fcgi-scripts\/web3\"...",
    "region": "01",
    "country": "fr",
    "limit": 100
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (400):

{
    "code": 400,
    "status": "error",
    "message": {
        "type_annonce": [
            "Le champ type annonce est obligatoire."
        ]
    }
}

Example response (200):

{
    "code": 200,
    "status": "ok",
    "data": {
        "current_page": 2,
        "data": [
            {
                "id": 436126,
                "programme_id": null,
                "commune_id": 17425,
                "client_id": 2202,
                "type": "MAISON ANCIEN",
                "external_reference": "21210_30495",
                "slugged_external_reference": "21210-30495",
                "email_contact_additionnel": null,
                "external_code_postal": "45130",
                "adresse": null,
                "proximite": null,
                "libelle": "Maison",
                "description": "MEUNG-SUR-LOIRE, Maison sur sous sol, offrant pièce de vie avec cheminée à foyer ouvert, une cuisine indépendante, 3 chambres, laissant encore du potentiel à exploiter. Travaux de maçonnerie à prévoir. A 1,5 kilomètres de la gare et 2 kilomètres de l'autoroute...\nRéf 30495 Prix 164 3   7\nLCDI Réseau National Immobilier\nVous souhaitez être rappelé plus tard pour ce bien ?,\nEnvoyez : \"RAPPEL réf 3  70 40\nHonoraires à la charge de l'acquéreur",
                "avant_premiere": 0,
                "exclusivite": null,
                "priorite_visibilite": 0,
                "surface": 140,
                "surface_maison": null,
                "surface_terrain": 1500,
                "surface_habitable": 140,
                "surface_sejour": 40,
                "prix": 164300,
                "prix_maison": 164300,
                "prix_terrain": null,
                "nbr_piece": 4,
                "etage": null,
                "terrasse": null,
                "nbr_balcon": null,
                "surface_balcon": null,
                "nbr_etage": null,
                "ascenseur": null,
                "cave": null,
                "nbr_parking": null,
                "nbr_boxe": null,
                "nbr_chambre": 3,
                "nbr_chambre_rdc": null,
                "nbr_sdb": 1,
                "type_cuisine": 11,
                "type_chauffage": 8200,
                "type_eau_chaude": null,
                "alarme": null,
                "piscine": null,
                "interphone": null,
                "etat_interieur": null,
                "date_dispo": null,
                "conso_energie": null,
                "bilan_conso_energie": null,
                "emission_ges": null,
                "bilan_emission_ges": null,
                "annee_construction": null,
                "loyer_mois": null,
                "loyer_mois_charges_comprises": null,
                "charges_mois": null,
                "droit_au_bail": null,
                "taxe_fonciere": null,
                "sous_type_bien": 270,
                "create_batch_id": 3006,
                "update_batch_id": null,
                "remove_batch_id": null,
                "lastseen_batch_id": 3006,
                "source": null,
                "from_website": null,
                "published": 1,
                "moderated": 0,
                "published_at": "2021-02-01T09:31:06.000000Z",
                "created_at": "2021-02-01T09:31:03.000000Z",
                "updated_at": "2021-02-01T09:31:06.000000Z",
                "deleted_at": null,
                "commune": {
                    "id": 17425,
                    "departement_id": 47,
                    "nom": "MEUNG SUR LOIRE",
                    "insee": "45203",
                    "nom_special": "Meung-sur-Loire",
                    "nom_recherche": "MEUNGSURLOIRE",
                    "prefixe_nom_special": "",
                    "population": 5993,
                    "actif": 1,
                    "zone_id": null,
                    "longitude": 1.695017,
                    "latitude": 47.82795,
                    "centre": {
                        "type": "Point",
                        "coordinates": [
                            1.695017,
                            47.82795
                        ]
                    },
                    "created_at": null,
                    "updated_at": "2021-02-08T16:50:00.000000Z",
                    "deleted_at": null,
                    "departement": {
                        "id": 47,
                        "region_id": 14,
                        "nom": "LOIRET",
                        "code": "45",
                        "created_at": "2017-08-31T08:35:14.000000Z",
                        "updated_at": "2017-08-31T08:35:14.000000Z",
                        "deleted_at": null,
                        "region": {
                            "id": 14,
                            "pays_id": 1,
                            "nom": "Centre",
                            "created_at": "2017-08-31T08:35:14.000000Z",
                            "updated_at": "2017-08-31T08:35:14.000000Z",
                            "deleted_at": null
                        }
                    }
                },
                "programme": null
            },
            {
                "id": 436127,
                "programme_id": null,
                "commune_id": 11566,
                "client_id": 2202,
                "type": "MAISON ANCIEN",
                "external_reference": "22322_30477",
                "slugged_external_reference": "22322-30477",
                "email_contact_additionnel": null,
                "external_code_postal": "30100",
                "adresse": null,
                "proximite": null,
                "libelle": "Maison",
                "description": "ALES, A 10 minutes de tout commerces, maison de 151 m² avec terrain de 843 m² clôturé et arboré. Dans un quartier calme . Au rez de chaussée, une chambre avec salle d'eau attenante, un bureau, une salle de jeux, un double garage, une chaufferie et une cuisine d'été. A l'étage, un salon salle à manger avec cheminée ouverte, une cuisine  donnant sur une terrasse, trois chambres avec placards, une salle de bains, un toilette. Double vitrage. A voir...\nRéf 30477  Prix 284 0  25\nAgent Mandataire Indépendant\nRCS de Nîmes (30), n°832 122 824\nLCDI Réseau National Immobilier\nVous souhaitez être rappelé plus tard pour ce bien ?,\nEnvoyez : \"RAPPEL réf 3  59 25\nHonoraires à la charge du vendeur",
                "avant_premiere": 0,
                "exclusivite": null,
                "priorite_visibilite": 0,
                "surface": 151,
                "surface_maison": null,
                "surface_terrain": 843,
                "surface_habitable": 151,
                "surface_sejour": 37,
                "prix": 284000,
                "prix_maison": 284000,
                "prix_terrain": null,
                "nbr_piece": 5,
                "etage": null,
                "terrasse": null,
                "nbr_balcon": null,
                "surface_balcon": null,
                "nbr_etage": null,
                "ascenseur": null,
                "cave": null,
                "nbr_parking": null,
                "nbr_boxe": null,
                "nbr_chambre": 4,
                "nbr_chambre_rdc": 1,
                "nbr_sdb": 1,
                "type_cuisine": 11,
                "type_chauffage": 8704,
                "type_eau_chaude": null,
                "alarme": null,
                "piscine": null,
                "interphone": null,
                "etat_interieur": null,
                "date_dispo": null,
                "conso_energie": "139",
                "bilan_conso_energie": "C",
                "emission_ges": "32",
                "bilan_emission_ges": "D",
                "annee_construction": null,
                "loyer_mois": null,
                "loyer_mois_charges_comprises": null,
                "charges_mois": null,
                "droit_au_bail": null,
                "taxe_fonciere": null,
                "sous_type_bien": 270,
                "create_batch_id": 3006,
                "update_batch_id": null,
                "remove_batch_id": null,
                "lastseen_batch_id": 3006,
                "source": null,
                "from_website": null,
                "published": 1,
                "moderated": 0,
                "published_at": "2021-02-01T09:31:06.000000Z",
                "created_at": "2021-02-01T09:31:03.000000Z",
                "updated_at": "2021-02-01T09:31:06.000000Z",
                "deleted_at": null,
                "commune": {
                    "id": 11566,
                    "departement_id": 32,
                    "nom": "ALES",
                    "insee": "30007",
                    "nom_special": "Alès",
                    "nom_recherche": "ALES",
                    "prefixe_nom_special": "",
                    "population": 41037,
                    "actif": 1,
                    "zone_id": null,
                    "longitude": 4.079023,
                    "latitude": 44.127402,
                    "centre": {
                        "type": "Point",
                        "coordinates": [
                            4.079023,
                            44.127402
                        ]
                    },
                    "created_at": null,
                    "updated_at": "2021-02-08T16:49:50.000000Z",
                    "deleted_at": null,
                    "departement": {
                        "id": 32,
                        "region_id": 20,
                        "nom": "GARD",
                        "code": "30",
                        "created_at": "2017-08-31T08:35:14.000000Z",
                        "updated_at": "2017-08-31T08:35:14.000000Z",
                        "deleted_at": null,
                        "region": {
                            "id": 20,
                            "pays_id": 1,
                            "nom": "Languedoc-Roussillon",
                            "created_at": "2017-08-31T08:35:14.000000Z",
                            "updated_at": "2017-08-31T08:35:14.000000Z",
                            "deleted_at": null
                        }
                    }
                },
                "programme": null
            }
        ],
        "first_page_url": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annonce\/search\/client?page=1",
        "from": 3,
        "last_page": 16,
        "last_page_url": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annonce\/search\/client?page=16",
        "next_page_url": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annonce\/search\/client?page=3",
        "path": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annonce\/search\/client",
        "per_page": 2,
        "prev_page_url": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annonce\/search\/client?page=1",
        "to": 4,
        "total": 32
    }
}

Request   

POST api/v2/programme/search/region

Body Parameters

website  string  
Website Code(ACdev, TC, etc...)

range  integer optional  
default is 0

paginate  integer optional  
default is 10

page  integer optional  
Page index

order_on  string optional  
Order column, default is updated_at is 10

order_dir  string optional  
Order Direction, ASC or DESC

max_price  integer optional  

room  integer optional  

client_id  integer optional  
Filter by client ID

type_annonce  string  
Values who can be separated by commas See [Additional Datas / Type values](#annonce-type-values).

consultation  required optional  
integer 1=>true, 0=>false

ip  string optional  
re-searcher ip.

client_vars  text optional  
Serialization of $_SERVER.

region  string  
Region IDS

country  string optional  
default is "fr"

limit  integer optional  
Limit the number of programme

Search All

Example request:

curl -X POST \
    "https://dashboard-preprod.appartement-construction.com/api/v2/programme/search/all" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"website":"TC","type_annonce":"'APPARTEMENT NEUF, MAISON NEUF'","only_with_annonce":false,"range":10,"paginate":15,"page":1,"order_on":"id","order_dir":"DESC","max_price":10000,"room":2,"consultation":"1","ip":"88.12.14.134","client_id":1,"client_vars":"a:50:{s:21:\"PHP_FCGI_MAX_REQUESTS\";s:4:\"5000\";s:5:\"PHPRC\";s:18:\"\/var\/www\/conf\/web3\";s:3:\"PWD\";s:30:\"\/var\/www\/php-fcgi-scripts\/web3\"...","country":"fr","limit":100}'
const url = new URL(
    "https://dashboard-preprod.appartement-construction.com/api/v2/programme/search/all"
);

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

let body = {
    "website": "TC",
    "type_annonce": "'APPARTEMENT NEUF, MAISON NEUF'",
    "only_with_annonce": false,
    "range": 10,
    "paginate": 15,
    "page": 1,
    "order_on": "id",
    "order_dir": "DESC",
    "max_price": 10000,
    "room": 2,
    "consultation": "1",
    "ip": "88.12.14.134",
    "client_id": 1,
    "client_vars": "a:50:{s:21:\"PHP_FCGI_MAX_REQUESTS\";s:4:\"5000\";s:5:\"PHPRC\";s:18:\"\/var\/www\/conf\/web3\";s:3:\"PWD\";s:30:\"\/var\/www\/php-fcgi-scripts\/web3\"...",
    "country": "fr",
    "limit": 100
}

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

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://dashboard-preprod.appartement-construction.com/api/v2/programme/search/all',
    [
        'headers' => [
            'Accept' => 'application/json',
        ],
        'json' => [
            'website' => 'TC',
            'type_annonce' => '\'APPARTEMENT NEUF, MAISON NEUF\'',
            'only_with_annonce' => false,
            'range' => 10,
            'paginate' => 15,
            'page' => 1,
            'order_on' => 'id',
            'order_dir' => 'DESC',
            'max_price' => 10000,
            'room' => 2,
            'consultation' => '1',
            'ip' => '88.12.14.134',
            'client_id' => 1,
            'client_vars' => 'a:50:{s:21:"PHP_FCGI_MAX_REQUESTS";s:4:"5000";s:5:"PHPRC";s:18:"/var/www/conf/web3";s:3:"PWD";s:30:"/var/www/php-fcgi-scripts/web3"...',
            'country' => 'fr',
            'limit' => 100,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dashboard-preprod.appartement-construction.com/api/v2/programme/search/all'
payload = {
    "website": "TC",
    "type_annonce": "'APPARTEMENT NEUF, MAISON NEUF'",
    "only_with_annonce": false,
    "range": 10,
    "paginate": 15,
    "page": 1,
    "order_on": "id",
    "order_dir": "DESC",
    "max_price": 10000,
    "room": 2,
    "consultation": "1",
    "ip": "88.12.14.134",
    "client_id": 1,
    "client_vars": "a:50:{s:21:\"PHP_FCGI_MAX_REQUESTS\";s:4:\"5000\";s:5:\"PHPRC\";s:18:\"\/var\/www\/conf\/web3\";s:3:\"PWD\";s:30:\"\/var\/www\/php-fcgi-scripts\/web3\"...",
    "country": "fr",
    "limit": 100
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (400):

{
    "code": 400,
    "status": "error",
    "message": {
        "type_annonce": [
            "Le champ type annonce est obligatoire."
        ]
    }
}

Example response (200):

{
    "code": 200,
    "status": "ok",
    "data": {
        "current_page": 2,
        "data": [
            {
                "id": 436126,
                "programme_id": null,
                "commune_id": 17425,
                "client_id": 2202,
                "type": "MAISON ANCIEN",
                "external_reference": "21210_30495",
                "slugged_external_reference": "21210-30495",
                "email_contact_additionnel": null,
                "external_code_postal": "45130",
                "adresse": null,
                "proximite": null,
                "libelle": "Maison",
                "description": "MEUNG-SUR-LOIRE, Maison sur sous sol, offrant pièce de vie avec cheminée à foyer ouvert, une cuisine indépendante, 3 chambres, laissant encore du potentiel à exploiter. Travaux de maçonnerie à prévoir. A 1,5 kilomètres de la gare et 2 kilomètres de l'autoroute...\nRéf 30495 Prix 164 3   7\nLCDI Réseau National Immobilier\nVous souhaitez être rappelé plus tard pour ce bien ?,\nEnvoyez : \"RAPPEL réf 3  70 40\nHonoraires à la charge de l'acquéreur",
                "avant_premiere": 0,
                "exclusivite": null,
                "priorite_visibilite": 0,
                "surface": 140,
                "surface_maison": null,
                "surface_terrain": 1500,
                "surface_habitable": 140,
                "surface_sejour": 40,
                "prix": 164300,
                "prix_maison": 164300,
                "prix_terrain": null,
                "nbr_piece": 4,
                "etage": null,
                "terrasse": null,
                "nbr_balcon": null,
                "surface_balcon": null,
                "nbr_etage": null,
                "ascenseur": null,
                "cave": null,
                "nbr_parking": null,
                "nbr_boxe": null,
                "nbr_chambre": 3,
                "nbr_chambre_rdc": null,
                "nbr_sdb": 1,
                "type_cuisine": 11,
                "type_chauffage": 8200,
                "type_eau_chaude": null,
                "alarme": null,
                "piscine": null,
                "interphone": null,
                "etat_interieur": null,
                "date_dispo": null,
                "conso_energie": null,
                "bilan_conso_energie": null,
                "emission_ges": null,
                "bilan_emission_ges": null,
                "annee_construction": null,
                "loyer_mois": null,
                "loyer_mois_charges_comprises": null,
                "charges_mois": null,
                "droit_au_bail": null,
                "taxe_fonciere": null,
                "sous_type_bien": 270,
                "create_batch_id": 3006,
                "update_batch_id": null,
                "remove_batch_id": null,
                "lastseen_batch_id": 3006,
                "source": null,
                "from_website": null,
                "published": 1,
                "moderated": 0,
                "published_at": "2021-02-01T09:31:06.000000Z",
                "created_at": "2021-02-01T09:31:03.000000Z",
                "updated_at": "2021-02-01T09:31:06.000000Z",
                "deleted_at": null,
                "commune": {
                    "id": 17425,
                    "departement_id": 47,
                    "nom": "MEUNG SUR LOIRE",
                    "insee": "45203",
                    "nom_special": "Meung-sur-Loire",
                    "nom_recherche": "MEUNGSURLOIRE",
                    "prefixe_nom_special": "",
                    "population": 5993,
                    "actif": 1,
                    "zone_id": null,
                    "longitude": 1.695017,
                    "latitude": 47.82795,
                    "centre": {
                        "type": "Point",
                        "coordinates": [
                            1.695017,
                            47.82795
                        ]
                    },
                    "created_at": null,
                    "updated_at": "2021-02-08T16:50:00.000000Z",
                    "deleted_at": null,
                    "departement": {
                        "id": 47,
                        "region_id": 14,
                        "nom": "LOIRET",
                        "code": "45",
                        "created_at": "2017-08-31T08:35:14.000000Z",
                        "updated_at": "2017-08-31T08:35:14.000000Z",
                        "deleted_at": null,
                        "region": {
                            "id": 14,
                            "pays_id": 1,
                            "nom": "Centre",
                            "created_at": "2017-08-31T08:35:14.000000Z",
                            "updated_at": "2017-08-31T08:35:14.000000Z",
                            "deleted_at": null
                        }
                    }
                },
                "programme": null
            },
            {
                "id": 436127,
                "programme_id": null,
                "commune_id": 11566,
                "client_id": 2202,
                "type": "MAISON ANCIEN",
                "external_reference": "22322_30477",
                "slugged_external_reference": "22322-30477",
                "email_contact_additionnel": null,
                "external_code_postal": "30100",
                "adresse": null,
                "proximite": null,
                "libelle": "Maison",
                "description": "ALES, A 10 minutes de tout commerces, maison de 151 m² avec terrain de 843 m² clôturé et arboré. Dans un quartier calme . Au rez de chaussée, une chambre avec salle d'eau attenante, un bureau, une salle de jeux, un double garage, une chaufferie et une cuisine d'été. A l'étage, un salon salle à manger avec cheminée ouverte, une cuisine  donnant sur une terrasse, trois chambres avec placards, une salle de bains, un toilette. Double vitrage. A voir...\nRéf 30477  Prix 284 0  25\nAgent Mandataire Indépendant\nRCS de Nîmes (30), n°832 122 824\nLCDI Réseau National Immobilier\nVous souhaitez être rappelé plus tard pour ce bien ?,\nEnvoyez : \"RAPPEL réf 3  59 25\nHonoraires à la charge du vendeur",
                "avant_premiere": 0,
                "exclusivite": null,
                "priorite_visibilite": 0,
                "surface": 151,
                "surface_maison": null,
                "surface_terrain": 843,
                "surface_habitable": 151,
                "surface_sejour": 37,
                "prix": 284000,
                "prix_maison": 284000,
                "prix_terrain": null,
                "nbr_piece": 5,
                "etage": null,
                "terrasse": null,
                "nbr_balcon": null,
                "surface_balcon": null,
                "nbr_etage": null,
                "ascenseur": null,
                "cave": null,
                "nbr_parking": null,
                "nbr_boxe": null,
                "nbr_chambre": 4,
                "nbr_chambre_rdc": 1,
                "nbr_sdb": 1,
                "type_cuisine": 11,
                "type_chauffage": 8704,
                "type_eau_chaude": null,
                "alarme": null,
                "piscine": null,
                "interphone": null,
                "etat_interieur": null,
                "date_dispo": null,
                "conso_energie": "139",
                "bilan_conso_energie": "C",
                "emission_ges": "32",
                "bilan_emission_ges": "D",
                "annee_construction": null,
                "loyer_mois": null,
                "loyer_mois_charges_comprises": null,
                "charges_mois": null,
                "droit_au_bail": null,
                "taxe_fonciere": null,
                "sous_type_bien": 270,
                "create_batch_id": 3006,
                "update_batch_id": null,
                "remove_batch_id": null,
                "lastseen_batch_id": 3006,
                "source": null,
                "from_website": null,
                "published": 1,
                "moderated": 0,
                "published_at": "2021-02-01T09:31:06.000000Z",
                "created_at": "2021-02-01T09:31:03.000000Z",
                "updated_at": "2021-02-01T09:31:06.000000Z",
                "deleted_at": null,
                "commune": {
                    "id": 11566,
                    "departement_id": 32,
                    "nom": "ALES",
                    "insee": "30007",
                    "nom_special": "Alès",
                    "nom_recherche": "ALES",
                    "prefixe_nom_special": "",
                    "population": 41037,
                    "actif": 1,
                    "zone_id": null,
                    "longitude": 4.079023,
                    "latitude": 44.127402,
                    "centre": {
                        "type": "Point",
                        "coordinates": [
                            4.079023,
                            44.127402
                        ]
                    },
                    "created_at": null,
                    "updated_at": "2021-02-08T16:49:50.000000Z",
                    "deleted_at": null,
                    "departement": {
                        "id": 32,
                        "region_id": 20,
                        "nom": "GARD",
                        "code": "30",
                        "created_at": "2017-08-31T08:35:14.000000Z",
                        "updated_at": "2017-08-31T08:35:14.000000Z",
                        "deleted_at": null,
                        "region": {
                            "id": 20,
                            "pays_id": 1,
                            "nom": "Languedoc-Roussillon",
                            "created_at": "2017-08-31T08:35:14.000000Z",
                            "updated_at": "2017-08-31T08:35:14.000000Z",
                            "deleted_at": null
                        }
                    }
                },
                "programme": null
            }
        ],
        "first_page_url": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annonce\/search\/client?page=1",
        "from": 3,
        "last_page": 16,
        "last_page_url": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annonce\/search\/client?page=16",
        "next_page_url": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annonce\/search\/client?page=3",
        "path": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annonce\/search\/client",
        "per_page": 2,
        "prev_page_url": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/annonce\/search\/client?page=1",
        "to": 4,
        "total": 32
    }
}

Request   

POST api/v2/programme/search/all

Body Parameters

website  string  
Website Code(ACdev, TC, etc...)

type_annonce  string optional  
Values who can be separated by commas See [Additional Datas / Type values](#annonce-type-values).

only_with_annonce  boolean optional  
Only programmes that have annonces

range  integer optional  
default is 0

paginate  integer optional  
default is 10

page  integer optional  
Page index

order_on  string optional  
Order column, default is updated_at is 10

order_dir  string optional  
Order Direction, ASC or DESC

max_price  integer optional  

room  integer optional  

consultation  required optional  
integer 1=>true, 0=>false

ip  string optional  
re-searcher ip.

client_id  integer optional  
Filter by client ID

client_vars  text optional  
Serialization of $_SERVER.

country  string optional  
default is "fr"

limit  integer optional  
Limit the number of programme

Global count

Example request:

curl -X GET \
    -G "https://dashboard-preprod.appartement-construction.com/api/v2/programme/count/all?website=TC&type_annonce=%22APPARTEMENT+NEUF%2C+MAISON+NEUF%22" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json"
const url = new URL(
    "https://dashboard-preprod.appartement-construction.com/api/v2/programme/count/all"
);

let params = {
    "website": "TC",
    "type_annonce": ""APPARTEMENT NEUF, MAISON NEUF"",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://dashboard-preprod.appartement-construction.com/api/v2/programme/count/all',
    [
        'headers' => [
            'Accept' => 'application/json',
        ],
        'query' => [
            'website'=> 'TC',
            'type_annonce'=> '"APPARTEMENT NEUF, MAISON NEUF"',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dashboard-preprod.appartement-construction.com/api/v2/programme/count/all'
params = {
  'website': 'TC',
  'type_annonce': '"APPARTEMENT NEUF, MAISON NEUF"',
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()

Example response (400):

{
    "code": 400,
    "status": "error",
    "message": {
        "type_annonce": [
            "Le champ type annonce est obligatoire."
        ]
    }
}

Example response (200):

{
    "code": 200,
    "status": "ok",
    "data": 32
}

Request   

GET api/v2/programme/count/all

Query Parameters

website  string  
Website Code(ACdev, TC, etc...)

type_annonce  string optional  
Values who can be separated by commas See [Additional Datas / Type values](#annonce-type-values).

Get sitemap necessary informations

Example request:

curl -X GET \
    -G "https://dashboard-preprod.appartement-construction.com/api/v2/programme/utils/sitemap?website=TC&type_annonce=%27APPARTEMENT+NEUF%2C+MAISON+NEUF%27" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json"
const url = new URL(
    "https://dashboard-preprod.appartement-construction.com/api/v2/programme/utils/sitemap"
);

let params = {
    "website": "TC",
    "type_annonce": "'APPARTEMENT NEUF, MAISON NEUF'",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://dashboard-preprod.appartement-construction.com/api/v2/programme/utils/sitemap',
    [
        'headers' => [
            'Accept' => 'application/json',
        ],
        'query' => [
            'website'=> 'TC',
            'type_annonce'=> ''APPARTEMENT NEUF, MAISON NEUF'',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dashboard-preprod.appartement-construction.com/api/v2/programme/utils/sitemap'
params = {
  'website': 'TC',
  'type_annonce': ''APPARTEMENT NEUF, MAISON NEUF'',
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()

Example response (200):

{
    "code": 200,
    "status": "ok",
    "data": {
        "current_page": 1,
        "data": [
            {
                "id": 638,
                "commune_id": 36419,
                "client_id": 722,
                "external_reference": "94SUCLEC",
                "slugged_external_reference": "94suclec",
                "email_contact_additionnel": "ogic@immolink.fr",
                "adresse": "89-89 BIS, RUE DE GAL LECLERC",
                "libelle": "LE GRAND VAL",
                "description": "L’ensemble immobilier se compose de 6 bâtiments\n Bâtiments à 4 étages seulement et aux toitures végétalisées\nDu studio au 4 pièces\nLes logements bénéficient d’espaces extérieurs, balcon, terrasse ou jardin\nDes espaces de rencontre sont présents tout le long de la venelle piétonne, ainsi qu’un local partagé en cœur d’îlot, permettant ainsi les échanges et le bien-être de vivre ensemble\nSucy-en-Brie est à 17 kilomètres du centre de Paris et accessible via de grands axes routiers (A4 et la Francilienne). Il est également possible de rejoindre la capitale par le RER A grâce à la station Sucy-Bonneuil située à 6 minutes en bus de la résidence. Par ailleurs, le bus 393 vous permet d’accéder aux correspondances de la ligne 8 du métro, le RER C et le RER D.",
                "appartement": 1,
                "date_dispo": "2023-08-31T22:00:00.000000Z",
                "etat": "Nouvelle réalisation",
                "create_batch_id": 2405,
                "lastseen_batch_id": 2631,
                "published": 1,
                "published_at": "2020-12-15T06:00:26.000000Z",
                "created_at": "2020-11-24T17:08:12.000000Z",
                "updated_at": "2020-12-15T06:00:26.000000Z",
                "prix_max": 393000,
                "prix_min": 165000,
                "annonces_count": 22,
                "consultations_count": 13,
                "documents_count": 10,
                "commune": {
                    "id": 36419,
                    "departement_id": 95,
                    "nom": "SUCY EN BRIE",
                    "insee": "94071",
                    "nom_special": "Sucy-en-Brie",
                    "nom_recherche": "SUCYENBRIE",
                    "population": 25839,
                    "actif": 1,
                    "longitude": 2.522617,
                    "latitude": 48.770901,
                    "centre": {
                        "type": "Point",
                        "coordinates": [
                            2.522617,
                            48.770901
                        ]
                    },
                    "updated_at": "2021-02-08T16:50:35.000000Z",
                    "departement": {
                        "id": 95,
                        "region_id": 13,
                        "nom": "VAL-DE-MARNE",
                        "code": "94",
                        "created_at": "2017-08-31T08:35:15.000000Z",
                        "updated_at": "2017-08-31T08:35:15.000000Z",
                        "region": {
                            "id": 13,
                            "pays_id": 1,
                            "nom": "Île-de-France",
                            "created_at": "2017-08-31T08:35:14.000000Z",
                            "updated_at": "2017-08-31T08:35:14.000000Z"
                        }
                    },
                    "firstdistribution": {
                        "id": 36570,
                        "commune_id": 36419,
                        "code_postal": "94370",
                        "acheminement": "SUCY EN BRIE",
                        "actif": 1
                    }
                },
                "documents": [
                    "https:\/\/files.appartement-construction.com\/images\/ogic\/94SUCLEC-1.jpg",
                    "https:\/\/files.appartement-construction.com\/images\/ogic\/94SUCLEC-2.jpg",
                    "https:\/\/files.appartement-construction.com\/images\/ogic\/94SUCLEC-3.jpg",
                    "https:\/\/files.appartement-construction.com\/images\/ogic\/94SUCLEC-4.jpg",
                    "https:\/\/files.appartement-construction.com\/images\/ogic\/94SUCLEC-5.jpg",
                    "https:\/\/files-preprod.appartement-construction.com\/images\/ogic_2_0\/94suclec\/5_ogic-sucy-en-brie-appartement-neuf-interieur-salon-balcon.jpg",
                    "https:\/\/files-preprod.appartement-construction.com\/images\/ogic_2_0\/94suclec\/5_ogic-sucy-en-brie-appartement-neuf-jardin.jpg",
                    "https:\/\/files-preprod.appartement-construction.com\/images\/ogic_2_0\/94suclec\/5_ogic-sucy-en-brie-appartement-neuf-terrasse.jpg",
                    "https:\/\/files-preprod.appartement-construction.com\/images\/ogic_2_0\/94suclec\/5_ogic-sucy-en-brie-avant-premiere-appartement-neuf.jpg",
                    "https:\/\/files-preprod.appartement-construction.com\/images\/ogic_2_0\/94suclec\/5_ogic-sucy-en-brie-residence-neuve.jpg"
                ]
            },
            {
                "id": 413,
                "commune_id": 36389,
                "client_id": 1,
                "external_reference": "0038__38106",
                "slugged_external_reference": "0038-38106",
                "adresse": "11 RUE DE LONRAY",
                "libelle": "GREEN PARK",
                "description": "SUCCES COMMERCIAL <BR>NOUVEAUX APPARTEMENTS A VENDRE, RENSEIGNEZ-VOUS DES MAINTENANT!<BR> <BR>Au coeur d'un quartier résidentiel, découvrez votre nouvelle résidence située rue de Lonray. <BR> Green Park se situe à proximité des commerces et de nombreux établissements scolaires de la maternelle au lycée. A quelques pas, le parc du Tremblay qui s'étend sur 75 hectares, vous permettra de vous détendre et de profiter des activités sportives en famille.<BR>Les bus 106\/108 et 110 situés à 400m* vous permettront de rejoindre le centre de Paris en 30 min* par les gares RER A ' Joinville-le-Pont ' ou par le RER E ' Les Boullereaux-Champigny '. Vous profiterez également d'un accès rapide aux autoroutes A4 et A86. <BR>Dans un environnement verdoyant, cette réalisation à l'architecture contemporaine accueille de NOUVEAUX APPARTEMENTS du studio au 5 pièces s'ouvrant pour la plupart sur des loggias, balcons, terrasses ou jardins privatifs.<BR><BR>Une adresse idéale pour HABITER OU INVESTIR.<BR><BR><BR>*Données à titre indicatif - Source Mappy<BR> Pour toutes informations complémentaires, prenez contact avec nous !",
                "appartement": 1,
                "climatisation": 1,
                "pinel": 1,
                "date_dispo": "2023-03-30T22:00:00.000000Z",
                "create_batch_id": 1157,
                "update_batch_id": 2476,
                "lastseen_batch_id": 2674,
                "published": 1,
                "published_at": "2020-12-28T11:07:37.000000Z",
                "created_at": "2020-04-09T02:00:54.000000Z",
                "updated_at": "2020-12-28T11:07:37.000000Z",
                "prix_max": 518000,
                "prix_min": 195000,
                "annonces_count": 27,
                "consultations_count": 27,
                "documents_count": 5,
                "commune": {
                    "id": 36389,
                    "departement_id": 95,
                    "nom": "CHAMPIGNY SUR MARNE",
                    "insee": "94017",
                    "nom_special": "Champigny-sur-Marne",
                    "nom_recherche": "CHAMPIGNYSURMARNE",
                    "population": 79486,
                    "actif": 1,
                    "longitude": 2.497028,
                    "latitude": 48.817257,
                    "centre": {
                        "type": "Point",
                        "coordinates": [
                            2.497028,
                            48.817257
                        ]
                    },
                    "updated_at": "2021-02-08T16:50:35.000000Z",
                    "departement": {
                        "id": 95,
                        "region_id": 13,
                        "nom": "VAL-DE-MARNE",
                        "code": "94",
                        "created_at": "2017-08-31T08:35:15.000000Z",
                        "updated_at": "2017-08-31T08:35:15.000000Z",
                        "region": {
                            "id": 13,
                            "pays_id": 1,
                            "nom": "Île-de-France",
                            "created_at": "2017-08-31T08:35:14.000000Z",
                            "updated_at": "2017-08-31T08:35:14.000000Z"
                        }
                    },
                    "firstdistribution": {
                        "id": 36539,
                        "commune_id": 36389,
                        "code_postal": "94500",
                        "acheminement": "CHAMPIGNY SUR MARNE",
                        "actif": 1
                    }
                },
                "documents": [
                    "https:\/\/files.appartement-construction.com\/images\/nexity\/0038__38106-1.jpg",
                    "https:\/\/files-preprod.appartement-construction.com\/images\/nexity_2_0\/0038-38106\/3_0038_38106_PRG_PHOT_38106.jpg",
                    "https:\/\/files-preprod.appartement-construction.com\/images\/nexity_2_0\/0038-38106\/3_0038_38106_PRG_PHO2_38106.jpg",
                    "https:\/\/files-preprod.appartement-construction.com\/images\/nexity_2_0\/0038-38106\/3_0038_38106_PRG_PHO3_38106.jpg",
                    "https:\/\/files-preprod.appartement-construction.com\/images\/nexity_2_0\/0038-38106\/3_0038_38106_PRG_PHO4_38106.jpg"
                ]
            }
        ],
        "first_page_url": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/programme\/search\/state?page=1",
        "from": 1,
        "last_page": 4,
        "last_page_url": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/programme\/search\/state?page=4",
        "next_page_url": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/programme\/search\/state?page=2",
        "path": "https:\/\/dashboard-preprod.appartement-construction.com\/api\/v2\/programme\/search\/state",
        "per_page": 2,
        "to": 2,
        "total": 7
    }
}

Example response (400):

{
    "code": 400,
    "status": "error",
    "message": {
        "website": [
            "Le champ website est obligatoire."
        ]
    }
}

Request   

GET api/v2/programme/utils/sitemap

Query Parameters

website  string  
Website Code(ACdev, TC, etc...)

type_annonce  string optional  
Values who can be separated by commas See [Additional Datas / Type values](#annonce-type-values).

User

APIs for managing users

Display the specified user.

Example request:

curl -X GET \
    -G "https://dashboard-preprod.appartement-construction.com/api/v2/user/123" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"website":"TC"}'
const url = new URL(
    "https://dashboard-preprod.appartement-construction.com/api/v2/user/123"
);

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

let body = {
    "website": "TC"
}

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

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://dashboard-preprod.appartement-construction.com/api/v2/user/123',
    [
        'headers' => [
            'Accept' => 'application/json',
        ],
        'json' => [
            'website' => 'TC',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dashboard-preprod.appartement-construction.com/api/v2/user/123'
payload = {
    "website": "TC"
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers, json=payload)
response.json()

Example response (200):

{
    "code": 200,
    "status": "ok",
    "data": {
        "id": 1,
        "name": "john",
        "email": "john.doe@example.com",
        "email_verified_at": null,
        "created_at": "2019-08-21T06:42:32.000000Z",
        "updated_at": "2019-08-21T06:42:32.000000Z",
        "deleted_at": null,
        "clients": []
    }
}

Example response (400):

{
    "code": 400,
    "status": "error",
    "message": {
        "user_id": [
            "Le champ user id sélectionné est invalide."
        ]
    }
}

Request   

GET api/v2/user/{user}

URL Parameters

user  string  
User id

Body Parameters

website  string  
Website Code(ACdev, TC, etc...)

Get an user to the specified email.

Example request:

curl -X GET \
    -G "https://dashboard-preprod.appartement-construction.com/api/v2/user/search/email?website=TC&email=john.doe%40example.com" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json"
const url = new URL(
    "https://dashboard-preprod.appartement-construction.com/api/v2/user/search/email"
);

let params = {
    "website": "TC",
    "email": "john.doe@example.com",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://dashboard-preprod.appartement-construction.com/api/v2/user/search/email',
    [
        'headers' => [
            'Accept' => 'application/json',
        ],
        'query' => [
            'website'=> 'TC',
            'email'=> 'john.doe@example.com',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dashboard-preprod.appartement-construction.com/api/v2/user/search/email'
params = {
  'website': 'TC',
  'email': 'john.doe@example.com',
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()

Example response (200):

{
    "code": 200,
    "status": "ok",
    "data": {
        "id": 99999,
        "name": "John Doe",
        "email": "john.doe@example.com",
        "email_verified_at": null,
        "created_at": "2021-03-08T10:32:34.000000Z",
        "updated_at": "2021-03-08T10:32:34.000000Z",
        "deleted_at": null
    }
}

Example response (400):

{
    "code": 400,
    "status": "error",
    "message": {
        "website": [
            "Le champ website est obligatoire."
        ],
        "email": [
            "Le champ email est obligatoire."
        ]
    }
}

Request   

GET api/v2/user/search/email

Query Parameters

website  string  
Website Code(ACdev, TC, etc...)

email  string  
Email

Attach a client to the specified user.

Example request:

curl -X POST \
    "https://dashboard-preprod.appartement-construction.com/api/v2/user/123/attach/client" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"website":"TC","client_id":456}'
const url = new URL(
    "https://dashboard-preprod.appartement-construction.com/api/v2/user/123/attach/client"
);

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

let body = {
    "website": "TC",
    "client_id": 456
}

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

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://dashboard-preprod.appartement-construction.com/api/v2/user/123/attach/client',
    [
        'headers' => [
            'Accept' => 'application/json',
        ],
        'json' => [
            'website' => 'TC',
            'client_id' => 456,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dashboard-preprod.appartement-construction.com/api/v2/user/123/attach/client'
payload = {
    "website": "TC",
    "client_id": 456
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (200):

{
    "code": 200,
    "status": "ok",
    "message": "client attached"
}

Example response (400):

{
    "code": 400,
    "status": "error",
    "message": {
        "user_id": [
            "Le champ user id sélectionné est invalide."
        ]
    }
}

Request   

POST api/v2/user/{user}/attach/client

URL Parameters

user  string  
User id

Body Parameters

website  string  
Website Code(ACdev, TC, etc...)

client_id  integer  
Client id

Detach a client to the specified user.

Example request:

curl -X POST \
    "https://dashboard-preprod.appartement-construction.com/api/v2/user/123/detach/client" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"website":"TC","client_id":456}'
const url = new URL(
    "https://dashboard-preprod.appartement-construction.com/api/v2/user/123/detach/client"
);

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

let body = {
    "website": "TC",
    "client_id": 456
}

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

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://dashboard-preprod.appartement-construction.com/api/v2/user/123/detach/client',
    [
        'headers' => [
            'Accept' => 'application/json',
        ],
        'json' => [
            'website' => 'TC',
            'client_id' => 456,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dashboard-preprod.appartement-construction.com/api/v2/user/123/detach/client'
payload = {
    "website": "TC",
    "client_id": 456
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (200):

{
    "code": 200,
    "status": "ok",
    "message": "client detached"
}

Example response (400):

{
    "code": 400,
    "status": "error",
    "message": {
        "user_id": [
            "Le champ user id sélectionné est invalide."
        ]
    }
}

Request   

POST api/v2/user/{user}/detach/client

URL Parameters

user  string  
User id

Body Parameters

website  string  
Website Code(ACdev, TC, etc...)

client_id  integer  
Client id

Create a new user.

Example request:

curl -X POST \
    "https://dashboard-preprod.appartement-construction.com/api/v2/user" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"website":"TC","name":"John","email":"john.doe@example.com","password":"H_jS!12a"}'
const url = new URL(
    "https://dashboard-preprod.appartement-construction.com/api/v2/user"
);

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

let body = {
    "website": "TC",
    "name": "John",
    "email": "john.doe@example.com",
    "password": "H_jS!12a"
}

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

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://dashboard-preprod.appartement-construction.com/api/v2/user',
    [
        'headers' => [
            'Accept' => 'application/json',
        ],
        'json' => [
            'website' => 'TC',
            'name' => 'John',
            'email' => 'john.doe@example.com',
            'password' => 'H_jS!12a',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dashboard-preprod.appartement-construction.com/api/v2/user'
payload = {
    "website": "TC",
    "name": "John",
    "email": "john.doe@example.com",
    "password": "H_jS!12a"
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (200):

{
    "code": 200,
    "status": "ok",
    "message": "user created"
}

Example response (400):

{
    "code": 400,
    "status": "error",
    "message": {
        "email": [
            "Le champ email est obligatoire."
        ],
        "password": [
            "Le champ password est obligatoire."
        ]
    }
}

Request   

POST api/v2/user

Body Parameters

website  string  
Website Code(ACdev, TC, etc...)

name  string optional  
User name

email  string optional  
Email

password  string optional  
Password

Update the specified user.

Example request:

curl -X POST \
    "https://dashboard-preprod.appartement-construction.com/api/v2/user/123" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"website":"TC","name":"John","email":"john.doe@example.com","password":"H_jS!12a"}'
const url = new URL(
    "https://dashboard-preprod.appartement-construction.com/api/v2/user/123"
);

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

let body = {
    "website": "TC",
    "name": "John",
    "email": "john.doe@example.com",
    "password": "H_jS!12a"
}

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

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://dashboard-preprod.appartement-construction.com/api/v2/user/123',
    [
        'headers' => [
            'Accept' => 'application/json',
        ],
        'json' => [
            'website' => 'TC',
            'name' => 'John',
            'email' => 'john.doe@example.com',
            'password' => 'H_jS!12a',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dashboard-preprod.appartement-construction.com/api/v2/user/123'
payload = {
    "website": "TC",
    "name": "John",
    "email": "john.doe@example.com",
    "password": "H_jS!12a"
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (200):

{
    "code": 200,
    "status": "ok",
    "message": "user updated"
}

Example response (400):

{
    "code": 400,
    "status": "error",
    "message": {
        "user_id": [
            "Le champ user id sélectionné est invalide."
        ]
    }
}

Request   

POST api/v2/user/{user}

URL Parameters

user  integer optional  
User id

Body Parameters

website  string  
Website Code(ACdev, TC, etc...)

name  string optional  
User name

email  string optional  
Email

password  string optional  
Password

Remove the specified user.

Example request:

curl -X DELETE \
    "https://dashboard-preprod.appartement-construction.com/api/v2/user/123" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"website":"TC"}'
const url = new URL(
    "https://dashboard-preprod.appartement-construction.com/api/v2/user/123"
);

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

let body = {
    "website": "TC"
}

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

$client = new \GuzzleHttp\Client();
$response = $client->delete(
    'https://dashboard-preprod.appartement-construction.com/api/v2/user/123',
    [
        'headers' => [
            'Accept' => 'application/json',
        ],
        'json' => [
            'website' => 'TC',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dashboard-preprod.appartement-construction.com/api/v2/user/123'
payload = {
    "website": "TC"
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('DELETE', url, headers=headers, json=payload)
response.json()

Example response (200):

{
    "code": 200,
    "status": "ok",
    "message": "user deleted"
}

Example response (400):

{
    "code": 400,
    "status": "error",
    "message": {
        "user_id": [
            "Le champ user id sélectionné est invalide."
        ]
    }
}

Request   

DELETE api/v2/user/{user}

URL Parameters

user  string  
User id

Body Parameters

website  string  
Website Code(ACdev, TC, etc...)

Additional Datas

Annonce / Type values

Use one of these string to specify Annonce Type in Annonce

Annonce / Bilan Conso & Emission

Use one of these chars to define bilan_* value in Annonce

Annonce / Sous Type de Bien

Use one of these key (int) to specify Annonce Sous Type in Annonce

Annonce / Type Chauffage

Use one of these key (int) to specify Type Chauffage in Annonce

Annonce / Type Cuisine

Use one of these key (int) to specify Type Cuisine in Annonce

Annonce / Type Eau chande

Use one of these key (int) to specify Type Cuisine in Annonce

Annonce / State values

Use one of these key (int) to specify State in Annonce