Documentation API

Dernière mise à jour : 19/10/2020

Introduction

L'API de Monitorize vous permet d'accéder aux données collectées par Monitorize (pull) mais aussi d'envoyer des données vers votre compte Monitorize (push). Elle est construite autour de l'architecture REST, renvoie ses résultats au format JSON et utilise les codes de statut de réponse HTTP.

Contacter le support

Authentification

Chaque compte Monitorize se voit attribuer une clé API unique permettant d'authentifier ses requêtes à l'API Monitorize.

Pour chaque requête passée à l'API Monitorize, spécifiez votre clé API dans l'entête "Apitoken" de la requête. Si l'authentification échoue, un code de statut de réponse HTTP 401 sera retourné :

HTTP/1.0 401 Erreur d'authentification

Liste des produits importés/matchés

Lister les produits importés

Endpoint

GET api/product/list/

Retourne une liste des produits importés dans Monitorize, avec leur nom, identifiant Monitorize et votre référence interne.

Format de la réponse
Variable Type Description
nom string Nom du produit importé
id string Identifiant Monitorize du produit importé
ref string Votre référence interne
Exemple de code avec PHP (cURL)

<?php
    $curl = curl_init();
    curl_setopt_array($curl, array(
        CURLOPT_URL => "https://www.monitorize.fr/api/product/list/",
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_ENCODING => "",
        CURLOPT_MAXREDIRS => 10,
        CURLOPT_TIMEOUT => 0,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
        CURLOPT_CUSTOMREQUEST => "POST",
        CURLOPT_HTTPHEADER => array(
        "Apitoken: VOTRE_CLE_API_UNIQUE"
        ),
    ));
    $response = curl_exec($curl);
    curl_close($curl);
    echo $response;
                                        
Exemple de réponse

[
    {
        "nom": "Produit 1",
        "id": "1",
        "ref": "Votre_Reference_Interne_1"
    },
    {
        "nom": "Produit 2",
        "id": "2",
        "ref": "Votre_Reference_Interne_2"
    }
]
                                                

Lister les produits importés et toutes leurs offres

Endpoint

GET api/product/list/allOffers

Retourne la liste des produits importés dans Monitorize et les offres (nom, prix, promo, prix barré, stock, url) de chaque site proposant ce produit, si le produit importé a été matché.

Format de la réponse
Variable Type Description
nom string Nom du produit importé
id string Identifiant Monitorize du produit importé
ref string Votre référence interne
offers array Détail des offres sur chaque site
offers[i].site string Nom du site
offers[i].nom string Nom du produit sur ce site
offers[i].url string URL de la fiche produit sur ce site
offers[i].prix float Prix de vente du produit sur ce site
offers[i].stock integer Etat du stock de ce produit sur ce site (1 = en stock, 2 = stock inconnu, 3 = rupture de stock)
offers[i].stockLabel string Libellé du stock de ce produit sur ce site
offers[i].promo string Libellé de la promotion de ce produit sur ce site (retourne null si pas de promotion appliquée)
offers[i].prixBarre float Prix barré appliqué à ce produit sur ce site (retourne 0 si pas de prix barré appliqué)
Exemple de code avec PHP (cURL)

    <?php
        $curl = curl_init();
        curl_setopt_array($curl, array(
            CURLOPT_URL => "https://www.monitorize.fr/api/product/list/allOffers",
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_ENCODING => "",
            CURLOPT_MAXREDIRS => 10,
            CURLOPT_TIMEOUT => 0,
            CURLOPT_FOLLOWLOCATION => true,
            CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
            CURLOPT_CUSTOMREQUEST => "POST",
            CURLOPT_HTTPHEADER => array(
            "Apitoken: VOTRE_CLE_API_UNIQUE"
            ),
        ));
        $response = curl_exec($curl);
        curl_close($curl);
        echo $response;
                                            
Exemple de réponse

[
{
    "nom": "Votre Produit 1",
    "id": "1",
    "ref": "Votre_reference_interne1",
    "offers": [
        {
            "site": "site1.com",
            "nom": "Produit XXXX",
            "url": "https://www.site1.com/produit-xxxx",
            "prix": 150,
            "stock": 1,
            "stockLabel": "En stock",
            "promo": null,
            "prixBarre": 0
        }
    ]
},
{
    "nom": "Produit 2",
    "id": "2",
    "ref": "Votre_reference_interne2",
    "offers": [
        {
            "site": "site1.com",
            "nom": "Produit YYYY",
            "url": "https://www.site1.com/produit-yyyy",
            "prix": 200,
            "stock": 1,
            "stockLabel": "En stock",
            "promo": null,
            "prixBarre": 0
        },
        {
            "site": "site2.com",
            "nom": "Produit YYYY",
            "url": "https://www.site2.com/produit-yyyy",
            "prix": 219,
            "stock": 1,
            "stockLabel": "En stock",
            "promo": "Promotion",
            "prixBarre": 239.99
        },
        {
            "site": "site3.com",
            "nom": "Produit YYYY",
            "url": "https://www.site3.com/produit-yyyy",
            "prix": 79.99,
            "stock": 1,
            "stockLabel": "En stock",
            "promo": null,
            "prixBarre": 0
        }
    ]
}
]
                                                    

Lister les produits importés et l'offre la plus basse

Endpoint

GET api/product/list/lowestOffers

Retourne la liste des produits importés dans Monitorize et l'offre (nom, prix, promo, prix barré, stock, url) du site proposant ce produit au prix le plus bas. Les offres en rupture de stock ne sont pas retournées.

Format de la réponse
Variable Type Description
nom string Nom du produit importé
id string Identifiant Monitorize du produit importé
ref string Votre référence interne
offers array Détail des offres sur chaque site
offers[i].site string Nom du site
offers[i].nom string Nom du produit sur ce site
offers[i].url string URL de la fiche produit sur ce site
offers[i].prix float Prix de vente du produit sur ce site
offers[i].stock integer Etat du stock de ce produit sur ce site (1 = en stock, 2 = stock inconnu, 3 = rupture de stock)
offers[i].stockLabel string Libellé du stock de ce produit sur ce site
offers[i].promo string Libellé de la promotion de ce produit sur ce site (retourne null si pas de promotion appliquée)
offers[i].prixBarre float Prix barré appliqué à ce produit sur ce site (retourne 0 si pas de prix barré appliqué)
Exemple de code avec PHP (cURL)

    <?php
        $curl = curl_init();
        curl_setopt_array($curl, array(
            CURLOPT_URL => "https://www.monitorize.fr/api/product/list/lowestOffers",
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_ENCODING => "",
            CURLOPT_MAXREDIRS => 10,
            CURLOPT_TIMEOUT => 0,
            CURLOPT_FOLLOWLOCATION => true,
            CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
            CURLOPT_CUSTOMREQUEST => "POST",
            CURLOPT_HTTPHEADER => array(
            "Apitoken: VOTRE_CLE_API_UNIQUE"
            ),
        ));
        $response = curl_exec($curl);
        curl_close($curl);
        echo $response;
                                            
Exemple de réponse

[
{
    "nom": "Votre Produit 1",
    "id": "1",
    "ref": "Votre_reference_interne1",
    "offers": [
        {
            "site": "site1.com",
            "nom": "Produit XXXX",
            "url": "https://www.site1.com/produit-xxxx",
            "prix": 179,
            "stock": 2,
            "stockLabel": "Inconnu",
            "promo": null,
            "prixBarre": 0
        }
    ]
},
{
    "nom": "Produit 2",
    "id": "2",
    "ref": "Votre_reference_interne2",
    "offers": [
        {
            "site": "site1.com",
            "nom": "Produit YYYY",
            "url": "https://www.site1.com/produit-yyyy",
            "prix": 199,
            "stock": 1,
            "stockLabel": "En stock",
            "promo": null,
            "prixBarre": 0
        },
        {
            "site": "site2.com",
            "nom": "Produit YYYY",
            "url": "https://www.site2.com/produit-yyyy",
            "prix": 199,
            "stock": 1,
            "stockLabel": "En stock",
            "promo": "Promotion",
            "prixBarre": 219.99
        }
    ]
}
]
                                                    

Historique des offres

Avertissement

Le format de réponse des endpoints /history/ et /history-ref/ vont bientôt être mis à jour pour adopter les mêmes noms de variables les endpoints /list/

Historique selon id Monitorize

Endpoint

GET api/product/history/ID_MONITORIZE_DU_PRODUIT

Retourne l'historique des offres (nom, prix, promo, prix barré, stock, url) de chaque site monitoré proposant ce produit selon son identifiant Monitorize, s'il a été matché.

L'historique s'étend du jour présent au premier jour où le produit a été aperçu sur un site concurrent

Format de la réponse
Variable Type Description
idTab string Identifiant du site
nom string Nom du produit sur ce site
url string URl de la fiche produit sur ce site
data[i].date string Selon position dans data, date d'aujourd'hui, date de première apparition ou date du mouvement - au format YYYY-MM-DD
data[i].prix float Prix de vente du produit sur ce site
data[i].stockT integer Etat du stock de ce produit sur ce site (1 = en stock, 2 = stock inconnu, 3 = rupture de stock)
data[i].stock string Libellé du stock de ce produit sur ce site
data[i].promotion string Libellé de la promotion de ce produit sur ce site (retourne null si pas de promotion appliquée)
data[i].prixBarre float Prix barré appliqué à ce produit sur ce site (retourne null si pas de prix barré appliqué)
Exemple de code avec PHP (cURL)

    <?php
        $curl = curl_init();
        curl_setopt_array($curl, array(
            CURLOPT_URL => "https://www.monitorize.fr/api/product/history/ID_MONITORIZE_DU_PRODUIT",
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_ENCODING => "",
            CURLOPT_MAXREDIRS => 10,
            CURLOPT_TIMEOUT => 0,
            CURLOPT_FOLLOWLOCATION => true,
            CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
            CURLOPT_CUSTOMREQUEST => "POST",
            CURLOPT_HTTPHEADER => array(
            "Apitoken: VOTRE_CLE_API_UNIQUE"
            ),
        ));
        $response = curl_exec($curl);
        curl_close($curl);
        echo $response;
                                            
Exemple de réponse

{
    "site1.com": {
        "idTab": "site1",
        "nom": "Produit 1",
        "url": "https://www.site1.com/produit1",
        "data": [
            {
                "date": "2019-03-29",
                "prix": "63.69",
                "stock": "Disponible en ligne",
                "stockT": "1",
                "promotion": null,
                "prixBarre": null
            },
            {
                "date": "2020-02-20",
                "prix": "63.69",
                "stock": "Disponible en ligne",
                "stockT": "1",
                "promotion": null,
                "prixBarre": null
            }
        ]
    },
    "site2.com": {
        "idTab": "site2",
        "nom": "Produit 1",
        "url": "https://www.site2.com/produit1",
        "data": [
            {
                "date": "2019-03-25",
                "prix": "59.95",
                "stock": "En stock",
                "stockT": "1",
                "promotion": "Promo !",
                "prixBarre": "64.50"
            },
            {
                "date": "2020-02-20",
                "prix": "59.95",
                "stock": "En stock",
                "stockT": "1",
                "promotion": "Promo !",
                "prixBarre": "64.50"
            }
        ]
    },
    "site3.com": {
        "idTab": "site3",
        "nom": "Produit 1",
        "url": "https://www.site3.com/produit1",
        "data": [
            {
                "date": "2019-03-12",
                "prix": "58",
                "stock": "Inconnu",
                "stockT": "2",
                "promotion": null,
                "prixBarre": null
            },
            {
                "date": "2019-05-27",
                "prix": "61",
                "stock": "Inconnu",
                "stockT": "2",
                "promotion": null,
                "prixBarre": null
            },
            {
                "date": "2019-06-04",
                "prix": "58",
                "stock": "Inconnu",
                "stockT": "2",
                "promotion": null,
                "prixBarre": null
            },
            {
                "date": "2019-07-13",
                "prix": "59",
                "stock": "Inconnu",
                "stockT": "2",
                "promotion": null,
                "prixBarre": null
            },
            {
                "date": "2020-02-20",
                "prix": "59",
                "stock": "Inconnu",
                "stockT": "2",
                "promotion": null,
                "prixBarre": null
            }
        ]
    }
]
                                                    

Historique selon votre référence interne

Endpoint

GET api/product/history-ref/ID_MONITORIZE_DU_PRODUIT

Retourne l'historique des offres (nom, prix, promo, prix barré, stock, url) de chaque site monitoré proposant ce produit selon votre référence interne, s'il a été matché.

L'historique s'étend du jour présent au premier jour où le produit a été aperçu sur un site concurrent

Format de la réponse
Variable Type Description
idTab string Identifiant du site
nom string Nom du produit sur ce site
url string URl de la fiche produit sur ce site
data[i].date string Selon position dans data, date d'aujourd'hui, date de première apparition ou date du mouvement - au format YYYY-MM-DD
data[i].prix float Prix de vente du produit sur ce site
data[i].stockT integer Etat du stock de ce produit sur ce site (1 = en stock, 2 = stock inconnu, 3 = rupture de stock)
data[i].stock string Libellé du stock de ce produit sur ce site
data[i].promotion string Libellé de la promotion de ce produit sur ce site (retourne null si pas de promotion appliquée)
data[i].prixBarre float Prix barré appliqué à ce produit sur ce site (retourne null si pas de prix barré appliqué)
Exemple de code avec PHP (cURL)

        <?php
            $curl = curl_init();
            curl_setopt_array($curl, array(
                CURLOPT_URL => "https://www.monitorize.fr/api/product/history-ref/ID_MONITORIZE_DU_PRODUIT",
                CURLOPT_RETURNTRANSFER => true,
                CURLOPT_ENCODING => "",
                CURLOPT_MAXREDIRS => 10,
                CURLOPT_TIMEOUT => 0,
                CURLOPT_FOLLOWLOCATION => true,
                CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
                CURLOPT_CUSTOMREQUEST => "POST",
                CURLOPT_HTTPHEADER => array(
                "Apitoken: VOTRE_CLE_API_UNIQUE"
                ),
            ));
            $response = curl_exec($curl);
            curl_close($curl);
            echo $response;
                                                
Exemple de réponse

    {
        "site1.com": {
            "idTab": "site1",
            "nom": "Produit 1",
            "url": "https://www.site1.com/produit1",
            "data": [
                {
                    "date": "2019-03-29",
                    "prix": "63.69",
                    "stock": "Disponible en ligne",
                    "stockT": "1",
                    "promotion": null,
                    "prixBarre": null
                },
                {
                    "date": "2020-02-20",
                    "prix": "63.69",
                    "stock": "Disponible en ligne",
                    "stockT": "1",
                    "promotion": null,
                    "prixBarre": null
                }
            ]
        },
        "site2.com": {
            "idTab": "site2",
            "nom": "Produit 1",
            "url": "https://www.site2.com/produit1",
            "data": [
                {
                    "date": "2019-03-25",
                    "prix": "59.95",
                    "stock": "En stock",
                    "stockT": "1",
                    "promotion": "Promo !",
                    "prixBarre": "64.50"
                },
                {
                    "date": "2020-02-20",
                    "prix": "59.95",
                    "stock": "En stock",
                    "stockT": "1",
                    "promotion": "Promo !",
                    "prixBarre": "64.50"
                }
            ]
        },
        "site3.com": {
            "idTab": "site3",
            "nom": "Produit 1",
            "url": "https://www.site3.com/produit1",
            "data": [
                {
                    "date": "2019-03-12",
                    "prix": "58",
                    "stock": "Inconnu",
                    "stockT": "2",
                    "promotion": null,
                    "prixBarre": null
                },
                {
                    "date": "2019-05-27",
                    "prix": "61",
                    "stock": "Inconnu",
                    "stockT": "2",
                    "promotion": null,
                    "prixBarre": null
                },
                {
                    "date": "2019-06-04",
                    "prix": "58",
                    "stock": "Inconnu",
                    "stockT": "2",
                    "promotion": null,
                    "prixBarre": null
                },
                {
                    "date": "2019-07-13",
                    "prix": "59",
                    "stock": "Inconnu",
                    "stockT": "2",
                    "promotion": null,
                    "prixBarre": null
                },
                {
                    "date": "2020-02-20",
                    "prix": "59",
                    "stock": "Inconnu",
                    "stockT": "2",
                    "promotion": null,
                    "prixBarre": null
                }
            ]
        }
    ]
                                                        

Créer un produit matché

Endpoint

POST api/product/add/

Créer un produit à matcher, en renseignant dans le corps de la requête les valeurs name (nom du produit - obligatoire) et ref (votre référence interne - facultatif)

L'historique s'étend du jour présent au premier jour où le produit a été aperçu sur un site concurrent

Format de la réponse
Variable Type Description
id int Identifiant Monitorize du produit créé
Exemple de code avec PHP (cURL)

<?php
$curl = curl_init();
curl_setopt_array($curl, array(
    CURLOPT_URL => "https://www.monitorize.fr/api/product/add",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "POST",
    CURLOPT_POSTFIELDS => array('name' => 'NOM_DE_VOTRE_PRODUIT','ref' => 'VOTRE_REFERENCE_INTERNE'),
    CURLOPT_HTTPHEADER => array(
        "Apitoken: VOTRE_CLE_API_UNIQUE",
        "Content-Type: application/x-www-form-urlencoded"
    ),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
                                            
Exemple de réponse

1209{
"id": 1221
}
                                                    

Alertes

Endpoint

GET api/alerts

Retourne l'ensemble des alertes générées sur votre compte Monitorie

Format de la réponse
Variable Type Description
site string Site ayant déclenché l'alerte
nom string Nom du produit matché
url string URl de la fiche produit sur ce site
date string Date du déclenchement de l'alerte - au format YYYY-MM-DD
prix_1 string Prix de vente du produit sur ce site, avant déclenchement de l'alerte
prix_2 string Prix de vente du produit sur ce site, après déclenchement de l'alerte
stockt_1 integer Etat du stock de ce produit sur ce site, avant déclenchement de l'alerte (1 = en stock, 2 = stock inconnu, 3 = rupture de stock)
stockt_2 integer Etat du stock de ce produit sur ce site, après déclenchement de l'alerte (1 = en stock, 2 = stock inconnu, 3 = rupture de stock)
stock_1 string Libellé du stock de ce produit sur ce site, avant déclenchement de l'alerte
stock_2 string Libellé du stock de ce produit sur ce site, après déclenchement de l'alerte
promo_1 string Libellé de la promotion de ce produit sur ce site, avant déclenchement de l'alerte (retourne null si pas de promotion appliquée)
promo_2 string Libellé de la promotion de ce produit sur ce site, après déclenchement de l'alerte (retourne null si pas de promotion appliquée)
tags array of strings Tags associés au produit matché
Exemple de code avec PHP (cURL)

<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://www.monitorize.fr/api/alerts",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array(
"Apitoken: VOTRE_CLE_API_UNIQUE"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
                                    
Exemple de réponse

[
{
"date": "2020-02-20",
"nom": "Produit 1",
"site": "site.com",
"url": "https://www.site1.com/fr/Produit1.html",
"prix_1": "92.95",
"prix_2": "92.95",
"stock_1": "En stock",
"stock_2": "Rupture temporaire",
"stockt_1": "1",
"stockt_2": "3",
"promo_1": "",
"promo_2": "",
"tags": [
    "Tag Z",
    "Tag X",
    "Tag Y"
]
},
{
"date": "2020-02-20",
"nom": "Produit X",
"site": "siteX.com",
"url": "https://www.siteX.com/produitX.html",
"prix_1": "33.50",
"prix_2": "31.95",
"stock_1": "En stock",
"stock_2": "En stock",
"stockt_1": "1",
"stockt_2": "1",
"promo_1": "",
"promo_2": "",
"tags": [
    "Tag X",
    "Tag Y",
    "Tag Z"
]
}
]
                                            

Marketplaces

Endpoint

GET api/marketplaces/scripts/feed

Retourne l'ensemble des données produits et offres (noms, prix, positionnement des concurrents) du module Marketplaces

Format de la réponse
Variable Type Description
product_name string Nom du produit
ref_interne integer Votre référence interne
ref_prestashop integer Votre référence prestashop
product_url string URL du produit sur votre site
product_img string URL de l'image du produit sur votre site
autres données misc. Autres données relatives aux produits selon besoins (stocks, catégories etc.)
(par marketplace) nom_marketplace.id integer Identifiant du produit sur la marketplace
(par marketplace) nom_marketplace.url string URL du produit sur la marketplace
(par marketplace) nom_marketplace.offers_count integer Nombre d'offres pour ce produit sur cette marketplace
(par marketplace) nom_marketplace.active boolean Vous apparaissez sur ce produit sur cette marketplace
(par marketplace) nom_marketplace.is_first boolean Vous apparaissez premier sur ce produit sur cette marketplace
(par offre) nom_marketplace.offers[].seller_name string Nom du vendeur
(par offre) nom_marketplace.offers[].seller_url string URL de l'offre (si disponible)
(par offre) nom_marketplace.offers[].price float Prix de l'offre
(par offre) nom_marketplace.offers[].shipping_price float Prix de la livraison
(par offre) nom_marketplace.offers[].shipping_delay string Délai de la livraison
(par offre) autres informations misc. Autres données de l'offre selon besoins et marketplace (stocks, quantités minimales etc)
(par offre) nom_marketplace.offers[].is_first boolean Cette offre apparaît en premier sur ce produit
(par offre) nom_marketplace.offers[].scraped_on datetime Date et heure de la collecte de cette donnée