Les messages d'avertissement indiquent que le serveur a rencontré une erreur en cours de son traitement mais que celle-ci ne l'a pas empêché de le mener à son terme. Typiquement, c'est le cas d'un paramètre optionnel faux : le serveur l'a simplement ignoré et pris la valeur par défaut prévue en cas d'absence de ce paramètre. Contrairement aux messages d'erreur, les messages d'avertissement ne remplace pas l'objet attendu mais le complète. Les messages d'avertissement peuvent être ignorés mais sont très utiles pour le débogage. Par défaut, les messages d'avertissement ne sont pas inclus dans le résultat ; pour le faire il suffit de rajouter le paramètre warnings=1 à n'importe quelle requête.
Les avertissements se présentent sous la forme d'un tableau où chaque élement a trois propriétés : une clé indiquant la nature de l'avertissement, le paramètre concerné par l'avertissement, la valeur de paramètre éventuellement à l'origine de l'avertissement.
Les avertissements susceptibles d'être rencontrés sont les suivants :
Les avertissements sont inclus dans un tableau placé à la fin de l'objet racine, l'objet principal tel qu'il est attendu reste inchangé (des avertissements peuvent même accompagner un message d'erreur si celle-ci a lieu après les avertissements).
{ XXX: { // objet attendu }, warnings: [ //tableau des avertissements { key: … , // clé de l'avertissement (chaine) parameter: … , // paramètre sur lequel porte l'avertissement (chaine) values: … // tableau de chaines des valeurs à l'origine de l'avertissement (peut être vide) } ] }