Création : | M.-à-j. : 2019-04-09 10:57:23

Auteur : | Licence : CC BY-SA

Documentation de l'API d'Alyze

Guide SEO » Documentation API (Alyze)
L'API d'Alyze produit des analyses SEO rapides et efficaces. Elle est conçue pour ne demander qu'un minimum d'effort pour être intégrée. Avec la doc, c'est encore plus facile. Suivez le guide !

Générer une requête

L'API d'Alyze est accessible via HTTPs. L'interface se situe à l'adresse :

https://api.alyze.com/v1

Une authentification est nécessaire. Vous pouvez vous authentifier en HTTP :

https://utilisateur:motdepasse@api.alyze.com/v1

Ou via des paramètres dans l'URL :

https://api.alyze.com/v1?user=utilisateur&api_password=motdepasse
Nouveauté ! Vous pouvez aussi utiliser la nouvelle interface de l'API d'Alyze pour encore plus d'informations et une nouvelle organisation des données en utilisant cette adresse https://api.alyze.info/v4 (remplacez donc v1 par v4 dans vos requêtes). La documentation complète de cette nouvelle version est en cours de rédaction, mais la structure des données est prévue pour être facilement compréhensible.

Attention, la v4 de l'API n'est pas encore totalement stabilisée, quelques modifications peuvent intervenir dans la présentation des données.

Démo :
https://api.alyze.info/v4?user=xxx&api_password=xxx&url=https://alyze.info

Les paramètres suivants peuvent être fournis via une requête POST ou GET afin de générer une analyse :

  • url (obligatoire sauf si html est défini) : Contient l'adresse de la page à analyser.
  • html (obligatoire sauf si url est défini) : Contient le texte à analyser. Celui-ci sera interprété comme du code HTML, mais il peut tout aussi bien s'agir de texte brut sans balise.
  • items (optionnel) : Contient la liste des objets qui doivent être retournés (voir ci-dessous pour le détail de ces objets). Si plusieurs éléments doivent être analysés, ils peuvent être séparés par le caractère |.
    Les options possibles pour items sont
    • all (par défaut) : analyse l'ensemble des éléments ci-dessous et retourne tous les objets attachés.
    • network : renvoie l'objet Reseau (contenant des informations réseau)
    • seoAudit : renvoie l'objet seoAudit (contenant l'audit SEO)
    • keywords : renvoie l'objet keywords (contenant le classement des mots-clés effectués par Alyze) keywordsPair : renvoie l'objet keywordsPair (contenant un classement des mots-clés sous forme de paire)
    • internalLinks : renvoie l'objet internalLinks externalLinks (contenant les liens internes présents sur la page)
    • externalLinks : renvoie l'objet externalLinks(contenant les liens externes présents sur la page)
    • specialLinks : renvoie l'objet specialLinks (contenant les liens spéciaux présents sur la page) images : renvoie l'objetimages (contenant les images présentes sur la page)
  • follow_location (optionnel) : Si ce paramètre contient la valeur "true" (follow_location=true), les redirections HTTP (301 et 302) seront automatiquement suivies. L'analyse renvoyée sera celle de la page visée par la ou les redirections successives. L'adresse de cette page est fournie dans la valeur effectiveURL dans l'objet network (voir ci-dessous).

Un exemple de requête pourrait donc être

https://user:password@api.alyze.info/v1?url=https://alyze.info

Un autre exemple de requête pourrait être

https://user:password@api.alyze.info/v1?url=https://alyze.info&items=network|keywords

Ou, pour une authentification via les paramètres d'URL :

https://api.alyze.info/v1?url=URL&user=user&api_password=password&url=https://alyze.info&items=network|keywords

Les requêtes ci-dessus identifient l'utilisateur utilisateur doté du mot de passe motdepasse. Le paramètre url demande l'analyse d'alyze.infoet le paramètre items demande à ne recevoir que les objets networks et keywords.

NB : En cas de requêtes successives massives, il peut être utile d'attendre quelques ms entre chaque appel afin de ne pas être limité par le système anti DDOS.


Interpréter la réponse

La réponse de l'API est fournie sous la forme d'un objet JSON.

Exemple de réponse pour la requête https://api.alyze.info/v1?url=http://alyze.info&items=network :

{
    "info": {
        "status": 0,
        "title": "301 Moved Permanently",
        "description": null,
        "firstH1": "Moved Permanently",
        "pageSize": 287,
        "metaCanonical": null,
        "metaLang": null,
        "metaLanguage": null,
        "htmlLang": null,
        "wordCount": 19,
        "linksCount": 1,
        "linksExternalCount": 0,
        "linksInternalCount": 1
    },
    "network": {
        "Ip": "91.207.255.85",
        "IpReverse": "scan.alyze.info",
        "gzip": true,
        "pageSizeCompressed": 228,
        "connectTime": 0.047,
        "loadTime": 0.094,
        "HttpResponseCode": 301,
        "HttpLocation": "https:\/\/alyze.info\/",
        "HttpResponse": "HTTP\/1.1 301 Moved Permanently\r\nDate: Thu, 14 Jun 2018 07:15:48 GMT\r\nServer: Apache\r\nLocation: https:\/\/alyze.info\/\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 228\r\nContent-Type: text\/html; charset=iso-8859-1",
        "HttpRequest": "GET \/ HTTP\/1.1\r\nHost: alyze.info\r\nUser-Agent: Mozilla\/5.0 (compatible; https:\/\/alyze.info)\r\nAccept-Encoding: gzip\r\nAccept-Language: fr,en,en-us\r\nAccept:text\/html,application\/xhtml+xml,application\/xml,*\/*"
    }
}

Cet objet contient plusieurs membres eux-mêmes fournis sous la forme d'objets. Ceux-ci sont au nombre de neuf (au maximun).

L'objet info

L'objet info est retourné dans tous les cas. Il contient les valeurs suivantes :

  • status : Donne le statut de l'analyse. 0 signifie que l'analyse s'est bien déroulée. Une valeur négative informe d'une erreur. Il s'agit de la première information à vérifier lorsque l'API est utilisée.
  • title : Le titre de la page (valeur null si absent)
  • description : La description de la page (valeur null si absente)
  • firstH1 : Le contenu de la première balise H1 trouvée sur la page (valeur null si absente)
  • pageSize : Le poids de la page en octets
  • metaCanonical : L'adresse fournie par la balise meta canonical (valeur null si absente)
  • metaLang : Les informations de langue définies par balise meta http-equiv (null si absentes)
  • metaLanguage : Les informations de langue définies par balise meta language (null si absentes)
  • htmlLang : Les informations de langue définies dans la balise html (null si absentes)
  • wordCount : Le nombre de mots sur la page.
  • linksCount : Le nombre de liens sur la page.
  • linksExternalCount : Le nombre de liens externes sur la page.
  • linksInternalCount: Le nombre de liens internes sur la page.
  • seoRating : le note d'optimisation SEO.

L'objet keyworks

L'objet keywords est retourné par défaut ou si le paramètre items contient la valeur keywords. Il contient la liste des mots-clés établie par Alyze. Cette liste est fournie sous la forme d'une liste d'objets contenant les informations extraites par Alyze. Les mots-clés eux-mêmes sont contenus directement dans le nom de l'objet. Par exemple, pour le mot-clé "analyse seo", l'objet retourné pourra être celui-ci :

        "analyse seo": {
            "score": 6.36,
            "occurrences": 6,
            "tags": {
                "title": 1,
                "header\/nav\/strong\/a": 1,
                "h1": 1,
                "default": 2,
                "h2": 1
            }
        }

Les valeurs contenues par un objet composant la liste des mots-clés sont :

  • score : le score pondéré accordé au mot-clé.
  • occurrences : le nombre de fois où le mot-clé a été rencontré.
  • tags : la liste des balises dans lesquelles le mot-clé est présent. Dans cette liste, le nom de la balise est le nom de l'objet. Sa valeur (1, 2, 3, etc.), indique le nombre de fois où le mot-clé apparaît dans cette balise.

L'objet keywordsPair

L'objet keywordsPair est retourné par défaut ou si le paramètre items contient la valeur keywordsPair. Il contient les paires de mots-clés établies par Alyze.

L'objet retourné se présente ainsi :

    "keywordsPair": {
        "alyze info": {
            "score": 236,
            "occurrences": 2
        },
        "moved permanently": {
            "score": 539,
            "occurrences": 2
        }
    }

Les paires de mots-clés sont classées selon leur scrore. Le nom de l'objet contient la paire de mots-clés. Dans cet objet, la valeur score est calculée à partir du nombre de répétition de la paire sur la page et de l'importance des balises dans lesquelles elles se trouvent. La valeur occurrences représente le nombre de fois où la paire est répétée sur la page.

L'objet seoAudit

L'objet seoAudit est retourné par défaut ou si le paramètre items contient la valeur seoAudit. Il contient l'audit SEO établi par Alyze.

L'objet retourné se présente ainsi :

    "seoAudit": {
        "wordsNumber": "warning",
        "wordsNumberDistincts": "warning",
        "wordsNumberRelevant": "warning",
        "wordsNumberRelevantDistinct": "warning",
        "freqRepetitionGlobal": "ok",
        "freqRepetitionWordsRelevantDistinct": "ok",
        "freqRepetitionPhrase": "ok",
        "weightForWord": "ok",
        "titleLong": "ok",
        "titleAbsent": "ok",
        "descLong": "ok",
        "descAbsent": "warning",
        "descShort": "ok",
        "keywords": "ok",
        "urlQuery": "ok",
        "urlUnderscore": "ok",
        "h1": "ok",
        "h2": "warning",
        "h1first": "ok",
        "noHx": "ok",
        "jsInline": "ok",
        "styleInline": "ok",
        "inlineStyleAttr": "ok",
        "jsFiles": "ok",
        "styleFiles": "ok",
        "frames": "ok",
        "iFrames": "ok",
        "langue": "warning",
        "encoding": "ok",
"icons": "ok", "robotsarchive": "ok", "robotsindex": "ok", "robotsfollow": "ok", "robotssnippet": "ok", "robotsodp": "ok", "robotsydir": "ok", "robotsimageindex": "ok", "robotstranslate": "ok", "linksQuery": "ok", "linksPath": "ok", "linksNofollow": "ok", "linksScheme": "warning", "linksSecureTarget": "ok", "imagesNoOpt": "ok", "imagesNoAlt": "ok", "imagesAltDuplicate": "ok", "socialOg": "warning", "socialTwitter": "warning", "loadTime": "ok", "connectTime": "ok", "httpGzip": "ok", "useHTTPS": "warning", "useHSTS": "warning", "pageGzipSize": "ok" },

Chaque valeur de l'objet représente un point d'audit SEO. Chacun de ces points peuvent recevoir trois valeurs :

  • ok : la page ne présente a priori aucun problème concernant le point d'audit.
  • warning : un point d'audit de moyenne importance n'est pas satisfaisant.
  • error : le point d'audit important n'est pas satisfaisant, il se peut que cette erreur pénalise fortement le référencement de la page.

L'objet network

L'objet network est retourné par défaut ou si le paramètre items contient la valeur network. Il contient les informations réseau disponibles pour la page analysée.

L'objet retourné se présente ainsi :

    "network": {
        "Ip": "91.207.255.85",
        "IpReverse": "scan.alyze.info",
        "gzip": true,
        "pageSizeCompressed": 228,
        "connectTime": 0.047,
        "loadTime": 0.078,
        "HttpLocation": "https:\/\/alyze.info\/",
        "HttpResponseCode": 301,
        "HttpResponse": "HTTP\/1.1 301 Moved Permanently\r\nDate: Thu, 14 Jun 2018 07:38:20 GMT\r\nServer: Apache\r\nLocation: https:\/\/alyze.info\/\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 228\r\nContent-Type: text\/html; charset=iso-8859-1",
        "HttpRequest": "GET \/ HTTP\/1.1\r\nHost: alyze.info\r\nUser-Agent: Mozilla\/5.0 (compatible; https:\/\/alyze.info)\r\nAccept-Encoding: gzip\r\nAccept-Language: fr,en,en-us\r\nAccept:text\/html,application\/xhtml+xml,application\/xml,*\/*"
    }

La valeur HttpLocation n'est fournie que s'il s'agit d'une page de redirection.
La valeur effectiveURL n'est fournie que s'il s'agit d'une page de redirection HTTP et que le paramètre follow_location a été défini sur true. Elle contient alors l'adresse de la page analysée après redirection.

L'objet internalLinks

L'objet internalLinks est retourné par défaut ou si le paramètre items contient la valeur internalLinks. Il contient la liste des liens internes présents sur la page analysée.

L'objet retourné se présente ainsi :

    "internalLinks": {
        "https:\/\/alyze.info\/": {
            "0": {
                "text": "here",
                "rel": null,
                "bodyPosition": 8,
                "fragment": null,
                "target": null,
                "path": {
                    "0": "header"
                },
                "position": "middle"
            },
            "occurrences": 1,
            "queryString": null,
            "underscore": false,
            "scheme": true
        }

L'objet internalLinks contient des objets dont le nom est l'URL des liens trouvés sur la page.

Chaque objet de la liste comporte une liste numérotée. Cette liste contient autant d'éléments que de fois où le même lien est répété sur la page. Pour chaque répétition, le texte (text), l'éventuel attribut rel (rel), la position dans le corps de texte (bodyPosition), l'éventuel fragment d'url (fragment), l'eventuel attribut target (target), les balises dans lesquelles se trouve le lien (path) et sa position relative (top, middle, bottom) sont fournis.

L'objet internalLinks contient également les valeurs :

  • occurrences : le nombre de fois où le lien est présent sur la page
  • queryString : l'éventuelle chaîne de requête de l'URL (après exemple.com?)
  • underscore : true si un _ est présent dans la chaîne d'URL (non optimal)
  • scheme : true si le lien interne n'est pas dans le même protocole que l'URL (exemple : lien en https sur une page en http)

L'objet externalLinks

L'objet externalLinks est retourné par défaut ou si le paramètre items contient la valeur externalLinks. Il contient la liste des liens externes présents sur la page analysée.

L'objet retourné se présente ainsi :

    "externalLinks": {
        "https:\/\/exemple.com": {
            "0": {
                "text": "Exemple",
                "rel": null,
                "bodyPosition": 2,
                "fragment": null,
                "target": null,
                "9": {
                    "0": "header",
                    "1": "nav"
                },
                "position": "top"
            },
            "occurrences": 1
        },
        "https:\/\/exemple.org": {
            "0": {
                "text": "Exemple2",
                "rel": {
                    "noopener": true
                },
                "bodyPosition": 20,
                "fragment": null,
                "target": "_blank",
                "9": {
                    "0": "header",
                    "1": "nav"
                },
                "position": "top"
            },
            "occurrences": 1
        }
    }

L'objet specialLinks

L'objet specialLinks est retourné par défaut ou si le paramètre items contient la valeur specialLinks. Il contient la liste des liens spéciaux présents sur la page analysée.

L'objet retourné se présente ainsi :

    "specialLinks": {
        "mailto": {
            "joe@exemple.com": {
                "0": {
                    "text": "Mon adresse email",
                    "bodyPosition": 3,
                    "position": "middle"
                }
            }
        },
        "tel": {
            "0655555555": {
                "0": {
                    "text": "Mon t\u00c3\u00a9l\u00c3\u00a9phone",
                    "bodyPosition": 6,
                    "position": "middle"
                }
            }
        }
    }

L'objet images

L'objet images est retourné par défaut ou si le paramètre items contient la valeur images. Il contient la liste des images présentes sur la page analysée.

L'objet retourné se présente ainsi :

    "images": {
        "https:\/\/alyze.info\/img\/exemple.png": {
            "0": {
                "alt": "Image Exemple",
                "title": null
            }
        },
        "https:\/\/alyze.info\/img\/exemple2.png": {
            "0": {
                "alt": "image Exemple2",
                "title": null
            }
        }
    }