REST API (V1)

Ancienne version de l'API

Lien vers la documentation

Documentation API Rest


Glossaire

Endpoint : Ressource disponible via l'API. L'endpoint est l'URL où votre API peut être accédée par une application cliente.

Method : Verbes HTTP pour indiquer l'action souhaitée à effectuer sur la ressource identifiée. Voir : https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods

itemtype : Un type GLPI, peut être un actif, un objet ITIL ou de configuration, etc. Ce type doit être une classe qui hérite de la classe CommonDTBM GLPI.

searchOption : Un identifiant de colonne (entier) d'un itemtype (ex : 1 -> id, 2 -> name, ...). Voir l'endpoint List searchOptions.

JSON Payload : Contenu de la requête HTTP au format JSON (corps HTTP).

Query string : Paramètres d'URL.

User token : Utilisé dans le processus de connexion à la place du couple login/mot de passe. Il représente l'utilisateur avec une chaîne de caractères. Vous pouvez trouver le token utilisateur dans les onglets de configuration des utilisateurs.

Session token : Une chaîne de caractères décrivant une session valide dans GLPI. À l'exception de l'endpoint initSession qui fournit ce token, tous les autres nécessitent cette chaîne pour être utilisés.

App(lication) token : Une manière optionnelle de filtrer l'accès à l'API. Lors d'un appel API, il essaiera de trouver un client API correspondant à votre IP et au token d'application (si fourni). Vous pouvez définir un client API avec un token d'application dans la configuration générale pour chacune de vos applications externes afin de les identifier (chaque client API a son propre historique).

Important

  • Vous devez toujours fournir un en-tête Content-Type dans vos appels HTTP. Actuellement, l'API supporte :

    • application/json

    • multipart/form-data (pour le téléversement de fichiers, voir l'endpoint Add item(s).

  • Les requêtes GET doivent avoir un corps vide. Vous devez passer tous les paramètres dans l'URL. Ne pas le faire déclenchera une réponse HTTP 400.

  • Par défaut, les sessions utilisées dans cette API sont en lecture seule. Seules certaines méthodes ont un accès en écriture à la session :

    Vous pouvez passer un paramètre supplémentaire "session_write=true" pour contourner cette valeur par défaut. Ce mode lecture seule permet d'utiliser cette API avec des appels parallèles. En mode écriture, les sessions sont verrouillées et votre client doit attendre la fin d'un appel avant que le suivant ne puisse s'exécuter.

  • Vous pouvez filtrer l'accès API en activant les paramètres suivants dans la Configuration Générale de GLPI (onglet API) :

    • Plage IPv4

    • Adresse IPv6

    • Paramètre App-Token : s'il n'est pas vide, vous devez passer ce paramètre dans tous vos appels API.

  • Les tokens de session et d'application peuvent être fournis dans la chaîne de requête au lieu des paramètres d'en-tête.


Init session

  • URL : apirest.php/initSession/

  • Description : Demande un token de session pour utiliser d'autres endpoints API.

  • Méthode : GET

  • Paramètres : (En-têtes)

    • App-Token : chaîne d'autorisation fournie par la configuration de l'API GLPI. Optionnel.

    • un couple login & password : 2 paramètres pour se connecter avec authentification utilisateur. Vous devez passer ces 2 paramètres dans l'authentification http basicarrow-up-right. Elle consiste en une chaîne Base64 avec le login et le mot de passe séparés par ":" Un en-tête Authorization valide est : * "Authorization: Basic base64({login}:{password})"

      OU

    • un user_token défini dans les Préférences utilisateur (Voir 'Clé d'accès distant') Vous devez passer ce paramètre dans l'en-tête HTTP 'Authorization'. Un en-tête Authorization valide est : * "Authorization: user_token q56hqkniwot8wntb3z1qarka5atf365taaa2uyjrn"

  • Paramètres : (chaîne de requête)

    • get_full_session (défaut : false) : Obtient la session complète, utile si vous souhaitez vous connecter et accéder aux données de session en une seule requête.

  • Retours :

    • 200 (OK) avec la chaîne session_token.

    • 400 (Bad Request) avec un message indiquant une erreur dans le paramètre d'entrée.

    • 401 (UNAUTHORIZED)

Exemples d'utilisation (CURL) :


Kill session

  • URL : apirest.php/killSession/

  • Description : Détruit une session identifiée par un token de session.

  • Méthode : GET

  • Paramètres : (En-têtes)

    • Session-Token : variable de session fournie par l'endpoint initSession. Obligatoire.

    • App-Token : chaîne d'autorisation fournie par la configuration de l'API GLPI. Optionnel.

  • Retours :

    • 200 (OK).

    • 400 (Bad Request) avec un message indiquant une erreur dans le paramètre d'entrée.

Exemple d'utilisation (CURL) :


Lost password

Cet endpoint permet de demander la récupération de mot de passe et la réinitialisation de mot de passe. Cet endpoint fonctionne sous les conditions suivantes :

  • GLPI a les notifications activées

  • l'adresse e-mail de l'utilisateur appartient à un compte utilisateur.

Demande de réinitialisation de mot de passe :

  • URL : apirest.php/lostPassword/

  • Description : Envoie une notification à l'utilisateur pour réinitialiser son mot de passe.

  • Méthode : PUT ou PATCH

  • Paramètres : (JSON Payload)

    • email : adresse e-mail de l'utilisateur à récupérer. Obligatoire.

  • Retours :

    • 200 (OK).

    • 400 (Bad Request) avec un message indiquant une erreur dans le paramètre d'entrée.

Réinitialisation de mot de passe :

  • URL : apirest.php/lostPassword/

  • Description : Envoie une notification à l'utilisateur pour réinitialiser son mot de passe.

  • Méthode : PUT ou PATCH

  • Paramètres : (JSON Payload)

    • email : adresse e-mail de l'utilisateur à récupérer. Obligatoire.

    • password_forget_token : token de réinitialisation.

    • password : le nouveau mot de passe pour l'utilisateur.

  • Retours :

    • 200 (OK).

    • 400 (Bad Request) avec un message indiquant une erreur dans le paramètre d'entrée.


Get my profiles

  • URL : apirest.php/getMyProfiles/

  • Description : Retourne tous les profils associés à l'utilisateur connecté.

  • Méthode : GET

  • Paramètres : (En-têtes)

    • Session-Token : variable de session fournie par l'endpoint initSession. Obligatoire.

    • App-Token : chaîne d'autorisation fournie par la configuration de l'API GLPI. Optionnel.

  • Retours :

    • 200 (OK) avec un tableau de tous les profils.

    • 400 (Bad Request) avec un message indiquant une erreur dans le paramètre d'entrée.

Exemple d'utilisation (CURL) :


Get active profile

  • URL : apirest.php/getActiveProfile/

  • Description : Retourne le profil actif actuel.

  • Méthode : GET

  • Paramètres: (En-têtes)

    • Session-Token: variable de session fournie par le point de terminaison initSession. Obligatoire.

    • App-Token: chaîne d'autorisation fournie par la configuration de l'API GLPI. Facultatif.

  • Retours:

    • 200 (OK) avec un tableau représentant le profil actuel.

    • 400 (Bad Request) avec un message indiquant une erreur dans le paramètre d'entrée.

Exemple d'utilisation (CURL) :


Changer le profil actif

  • URL: apirest.php/changeActiveProfile/

  • Description: Change le profil actif pour celui spécifié par profiles_id. Voir le point de terminaison getMyProfiles pour les profils possibles.

  • Méthode: POST

  • Paramètres: (En-têtes)

    • Session-Token: variable de session fournie par le point de terminaison initSession. Obligatoire.

    • App-Token: chaîne d'autorisation fournie par la configuration de l'API GLPI. Facultatif.

  • Paramètres: (Charge utile JSON)

    • profiles_id: (par défaut 'all') ID du nouveau profil actif. Obligatoire.

  • Retours:

    • 200 (OK).

    • 400 (Bad Request) avec un message indiquant une erreur dans le paramètre d'entrée.

    • 404 (Not found) avec un message indiquant une erreur si le profil n'existe pas ou n'est pas utilisable.

Exemple d'utilisation (CURL) :


Obtenir mes entités

  • URL: apirest.php/getMyEntities/

  • Description: Retourne toutes les entités possibles de l'utilisateur actuellement connecté (et pour le profil actif actuel).

  • Méthode: GET

  • Paramètres: (En-têtes)

    • Session-Token: variable de session fournie par le point de terminaison initSession. Obligatoire.

    • App-Token: chaîne d'autorisation fournie par la configuration de l'API GLPI. Facultatif.

  • Paramètres: (chaîne de requête)

    • is_recursive (par défaut : false) : affiche également les sous-entités de l'entité active. Facultatif.

  • Retours:

    • 200 (OK) avec un tableau de toutes les entités (avec id et nom).

    • 400 (Bad Request) avec un message indiquant une erreur dans le paramètre d'entrée.

Exemple d'utilisation (CURL) :


Obtenir les entités actives

  • URL: apirest.php/getActiveEntities/

  • Description: Retourne les entités actives de l'utilisateur actuellement connecté.

  • Méthode: GET

  • Paramètres: (En-têtes)

    • Session-Token: variable de session fournie par le point de terminaison initSession. Obligatoire.

    • App-Token: chaîne d'autorisation fournie par la configuration de l'API GLPI. Facultatif.

  • Retours:

    • 200 (OK) avec un tableau contenant 3 clés :

      • active_entity: entité définie actuellement.

      • active_entity_recursive: booléen, si nous voyons les fils de cette entité.

      • active_entities: tableau de toutes les entités actives (entité active et ses fils).

    • 400 (Bad Request) avec un message indiquant une erreur dans le paramètre d'entrée.

Exemple d'utilisation (CURL) :


Changer les entités actives

  • URL: apirest.php/changeActiveEntities/

  • Description: Change l'entité active pour celle spécifiée par entities_id. Voir le point de terminaison getMyEntities pour les entités possibles.

  • Méthode: POST

  • Paramètres: (En-têtes)

    • Session-Token: variable de session fournie par le point de terminaison initSession. Obligatoire.

    • App-Token: chaîne d'autorisation fournie par la configuration de l'API GLPI. Facultatif.

  • Paramètres: (Charge utile JSON)

    • entities_id: (par défaut 'all') ID de la nouvelle entité active ("all" => charger toutes les entités possibles). Facultatif.

    • is_recursive: (par défaut false) affiche également les sous-entités de l'entité active. Facultatif.

  • Retours:

    • 200 (OK).

    • 400 (Bad Request) avec un message indiquant une erreur dans le paramètre d'entrée.

Exemple d'utilisation (CURL) :


Obtenir la session complète

  • URL: apirest.php/getFullSession/

  • Description: Retourne la $_SESSION PHP actuelle.

  • Méthode: GET

  • Paramètres: (En-têtes)

    • Session-Token: variable de session fournie par le point de terminaison initSession. Obligatoire.

    • App-Token: chaîne d'autorisation fournie par la configuration de l'API GLPI. Facultatif.

  • Retours:

    • 200 (OK) avec un tableau représentant la session PHP.

    • 400 (Bad Request) avec un message indiquant une erreur dans le paramètre d'entrée.

Exemple d'utilisation (CURL) :


Obtenir la configuration GLPI

  • URL: apirest.php/getGlpiConfig/

  • Description: Retourne la variable globale $CFG_GLPI actuelle.

  • Méthode: GET

  • Paramètres: (En-têtes)

    • Session-Token: variable de session fournie par le point de terminaison initSession. Obligatoire.

    • App-Token: chaîne d'autorisation fournie par la configuration de l'API GLPI. Facultatif.

  • Retours:

    • 200 (OK) avec un tableau représentant la variable globale PHP $CFG_GLPI.

    • 400 (Bad Request) avec un message indiquant une erreur dans le paramètre d'entrée.

Exemple d'utilisation (CURL) :


Obtenir un élément

  • URL: apirest.php/:itemtype/:id

  • Description: Retourne les champs d'instance de l'itemtype identifié par id.

  • Méthode: GET

  • Paramètres: (En-têtes)

    • Session-Token: variable de session fournie par le point de terminaison initSession. Obligatoire.

    • App-Token: chaîne d'autorisation fournie par la configuration de l'API GLPI. Facultatif.

  • Paramètres: (chaîne de requête)

    • id: identifiant unique de l'itemtype. Obligatoire.

    • expand_dropdowns (par défaut : false) : affiche le nom de la liste déroulante au lieu de l'id. Facultatif.

    • get_hateoas (par défaut : true) : affiche les relations de l'élément dans un attribut links. Facultatif.

    • get_sha1 (par défaut : false) : obtient une signature sha1 au lieu de la réponse complète. Facultatif.

    • with_devices: Uniquement pour [Computer, NetworkEquipment, Peripheral, Phone, Printer], récupère les composants associés. Facultatif.

  • with_disks: Uniquement pour Ordinateur, récupérer les systèmes de fichiers associés. Optionnel.

    • with_softwares: Uniquement pour Ordinateur, récupérer les installations logicielles associées. Optionnel.

    • with_connections: Uniquement pour Ordinateur, récupérer les connexions directes associées (comme les périphériques et imprimantes). Optionnel.

    • with_networkports: Récupérer toutes les connexions réseau et informations avancées. Optionnel.

    • with_infocoms: Récupérer les informations financières et administratives. Optionnel.

    • with_contracts: Récupérer les contrats associés. Optionnel.

    • with_documents: Récupérer les documents externes associés. Optionnel.

    • with_tickets: Récupérer les tickets ITIL associés. Optionnel.

    • with_problems: Récupérer les problèmes ITIL associés. Optionnel.

    • with_changes: Récupérer les changements ITIL associés. Optionnel.

    • with_notes: Récupérer les Notes. Optionnel.

    • with_logs: Récupérer l'historique. Optionnel.

    • add_keys_names: Récupérer les noms conviviaux. Tableau contenant des fkey(s) et/ou "id". Optionnel.

  • Retourne:

    • 200 (OK) avec les données de l'élément (l'en-tête Last-Modified doit contenir la date de dernière modification de l'élément).

    • 401 (NON AUTORISÉ).

    • 404 (NON TROUVÉ).

Exemple d'utilisation (CURL) :

Note : Pour télécharger un document, voir Télécharger un fichier document.


Obtenir tous les éléments

  • URL: apirest.php/:itemtype/

  • Description: Retourne une collection de lignes de l'itemtype.

  • Méthode: GET

  • Paramètres: (En-têtes)

    • Session-Token: variable de session fournie par le point d'accès initSession. Obligatoire.

    • App-Token: chaîne d'autorisation fournie par la configuration de l'API GLPI. Optionnel.

  • Paramètres: (chaîne de requête)

    • expand_dropdowns (par défaut : false) : affiche le nom du menu déroulant au lieu de l'id. Optionnel.

    • get_hateoas (par défaut : true) : affiche la relation de l'élément dans un attribut links. Optionnel.

    • only_id (par défaut : false) : ne conserve que les clés d'id dans les données retournées. Optionnel.

    • range (par défaut : 0-49) : une chaîne avec une paire de nombres pour le début et la fin de la pagination séparés par un '-'. Ex : 150-199. Optionnel.

    • sort (par défaut 1) : nom du champ sur lequel trier. Optionnel.

    • order (par défaut ASC) : ASC - Tri ascendant / DESC Tri descendant. Optionnel.

    • searchText (par défaut NULL) : tableau de filtres à passer sur la requête (avec la clé = champ et la valeur le texte à rechercher)

    • is_deleted (par défaut : false) : retourne les éléments supprimés. Optionnel.

    • add_keys_names: Récupérer les noms conviviaux. Tableau contenant des fkey(s) et/ou "id". Optionnel.

    • with_networkports: Récupérer toutes les connexions réseau et informations avancées. Optionnel.

  • Retourne:

    • 200 (OK) avec les données des éléments.

    • 206 (CONTENU PARTIEL) avec les données des éléments définies par la plage.

    • 401 (NON AUTORISÉ).

    et les en-têtes suivants : * Content-Range offset – limit / count * Accept-Range itemtype max

Exemple d'utilisation (CURL) :


Obtenir des sous-éléments

  • URL: apirest.php/:itemtype/:id/:sub_itemtype

  • Description: Retourne une collection de lignes du sous-itemtype pour l'élément identifié.

  • Méthode: GET

  • Paramètres: (En-têtes)

    • Session-Token: variable de session fournie par le point d'accès initSession. Obligatoire.

    • App-Token: chaîne d'autorisation fournie par la configuration de l'API GLPI. Optionnel.

  • Paramètres: (chaîne de requête)

    • id: identifiant unique de l'itemtype parent. Obligatoire.

    • expand_dropdowns (par défaut : false) : affiche le nom du menu déroulant au lieu de l'id. Optionnel.

    • get_hateoas (par défaut : true) : affiche les relations de l'élément dans un attribut links. Optionnel.

    • only_id (par défaut : false) : ne conserve que les clés d'id dans les données retournées. Optionnel.

    • range (par défaut : 0-49) : une chaîne avec une paire de nombres pour le début et la fin de la pagination séparés par un '-' caractère. Ex : 150-199. Optionnel.

    • sort (par défaut 1) : id de la "searchoption" sur laquelle trier. Optionnel.

  • order (défaut ASC) : ASC - Tri ascendant / DESC Tri descendant. Optionnel.

    • add_keys_names : Récupérer les noms conviviaux. Tableau contenant des fkey et/ou "id". Optionnel.

  • Retourne :

    • 200 (OK) avec les données des éléments.

    • 401 (NON AUTORISÉ).

    et ces en-têtes : * Content-Range offset – limit / count * Accept-Range itemtype max

Exemple d'utilisation (CURL) :


Obtenir plusieurs éléments

  • URL : apirest.php/getMultipleItems

  • Description : Appelle virtuellement Obtenir un élément pour chaque ligne en entrée. Ainsi, vous pouvez avoir un ticket, un utilisateur dans la même requête.

  • Méthode : GET

  • Paramètres : (En-têtes)

    • Session-Token : variable de session fournie par le point d'accès initSession. Obligatoire.

    • App-Token : chaîne d'autorisation fournie par la configuration de l'API GLPI. Optionnel.

  • Paramètres : (chaîne de requête)

    • items : éléments à récupérer. Obligatoire. Chaque ligne de ce tableau doit contenir deux clés : * itemtype * items_id

    • expand_dropdowns (défaut : false) : afficher le nom du menu déroulant au lieu de l'id. Optionnel.

    • get_hateoas (défaut : true) : afficher les relations de l'élément dans un attribut links. Optionnel.

    • get_sha1 (défaut : false) : obtenir une signature sha1 au lieu de la réponse complète. Optionnel.

    • with_devices : Uniquement pour [Computer, NetworkEquipment, Peripheral, Phone, Printer], récupérer les composants associés. Optionnel.

    • with_disks : Uniquement pour Computer, récupérer les systèmes de fichiers associés. Optionnel.

    • with_softwares : Uniquement pour Computer, récupérer les installations logicielles associées. Optionnel.

    • with_connections : Uniquement pour Computer, récupérer les connexions directes associées (comme les périphériques et les imprimantes). Optionnel.

    • with_networkports : Récupérer toutes les connexions réseau et informations avancées. Optionnel.

    • with_infocoms : Récupérer les informations financières et administratives. Optionnel.

    • with_contracts : Récupérer les contrats associés. Optionnel.

    • with_documents : Récupérer les documents externes associés. Optionnel.

    • with_tickets : Récupérer les tickets ITIL associés. Optionnel.

    • with_problems : Récupérer les problèmes ITIL associés. Optionnel.

    • with_changes : Récupérer les changements ITIL associés. Optionnel.

    • with_notes : Récupérer les notes. Optionnel.

    • with_logs : Récupérer l'historique. Optionnel.

    • add_keys_names : Récupérer les noms conviviaux. Tableau contenant des fkey et/ou "id". Optionnel.

  • Retourne :

    • 200 (OK) avec les données de l'élément (l'en-tête Last-Modified doit contenir la date de dernière modification de l'élément).

    • 401 (NON AUTORISÉ).

    • 404 (NON TROUVÉ).

Exemple d'utilisation (CURL) :


Lister les options de recherche

  • URL : apirest.php/listSearchOptions/:itemtype

  • Description : Lister les options de recherche de l'itemtype fourni. À utiliser avec Rechercher des éléments.

  • Méthode : GET

  • Paramètres : (En-têtes)

    • Session-Token : variable de session fournie par le point d'accès initSession. Obligatoire.

    • App-Token : chaîne d'autorisation fournie par la configuration de l'API GLPI. Optionnel.

  • Paramètres : (chaîne de requête)

    • raw : retourner l'option de recherche non nettoyée (telle que fournie par le cœur).

  • Retourne :

    • 200 (OK) avec toutes les options de recherche de l'itemtype spécifié (format : searchoption_id: {option_content}).

    • 401 (NON AUTORISÉ).

Exemple d'utilisation (CURL) :


Rechercher des éléments

  • URL : apirest.php/search/:itemtype/

  • Description : Expose le moteur de recherche GLPI et combine les critères pour récupérer une liste d'éléments de l'itemtype spécifié.

    Note : vous pouvez utiliser l'itemtype 'AllAssets' pour récupérer une combinaison de tous les types d'actifs.

  • Méthode : GET

  • Paramètres : (En-têtes)

    • Session-Token : variable de session fournie par le point d'accès initSession. Obligatoire.

    • App-Token : chaîne d'autorisation fournie par la configuration de l'API GLPI. Optionnel.

  • Paramètres : (chaîne de requête)

    • criteria : tableau d'objets de critère pour filtrer la recherche. Optionnel. Vous pouvez éventuellement préciser meta=true pour passer une option de recherche d'un autre itemtype (méta-critère). Chaque objet de critère doit fournir au minimum :

      • link : (optionnel pour le 1er élément) opérateur logique dans [AND, OR, AND NOT, OR NOT].

      Et vous pouvez passer une utilisation directe d'option de recherche :

      • field : id de l'option de recherche.

      • meta : booléen, ce critère est-il un méta-critère ?

      • itemtype : pour un critère meta=true, préciser l'itemtype à utiliser.

      • searchtype : type de recherche dans [contains¹, equals², notequals², lessthan, morethan, under, notunder].

      • value : la valeur à rechercher.

      Ou une liste de sous-nœuds avec la clé :

      • criteria : critères imbriqués dans ce critère.

      Ex :


Ajouter un ou plusieurs éléments

  • URL: apirest.php/:itemtype/

  • Description: Ajoute un objet (ou plusieurs objets) dans GLPI.

  • Méthode: POST

  • Paramètres: (En-têtes)

    • Session-Token: variable de session fournie par le point d'accès initSession. Obligatoire.

    • App-Token: chaîne d'autorisation fournie par la configuration de l'API GLPI. Optionnel.

  • Paramètres: (Corps JSON)

    • input: un objet avec les champs de l'itemtype à insérer. Vous pouvez ajouter plusieurs éléments en une seule action en passant un tableau d'objets. Obligatoire.

    Important: En cas de type de contenu 'multipart/data' (téléchargement de fichier), vous devez insérer vos paramètres dans un paramètre 'uploadManifest'. Ces données sérialisées doivent être une chaîne JSON.

  • Retourne:

    • 201 (OK) avec l'id des éléments ajoutés.

    • 207 (Multi-Status) avec l'id des éléments ajoutés et les erreurs.

    • 400 (Bad Request) avec un message indiquant une erreur dans le paramètre d'entrée.

    • 401 (UNAUTHORIZED).

    • Et un en-tête supplémentaire peut être fourni en cas de succès de création :

      • Location lors de l'ajout d'un seul élément.

      • Link lors de l'ajout en masse.

Exemples d'utilisation (CURL) :

Note : Pour télécharger un document, voir Télécharger un fichier document.


Mettre à jour un ou plusieurs éléments

  • URL: apirest.php/:itemtype/:id

  • Description: Met à jour un objet (ou plusieurs objets) existant dans GLPI.

  • Méthode: PUT ou PATCH

  • Paramètres: (En-têtes)

    • Session-Token: variable de session fournie par le point d'accès initSession. Obligatoire.

    • App-Token: chaîne d'autorisation fournie par la configuration de l'API GLPI. Optionnel.

  • Paramètres: (Corps JSON)

    • id: l'identifiant unique de l'itemtype passé dans l'URL. Vous pouvez omettre ce paramètre en le passant dans la charge utile d'entrée.

    • input: Tableau d'objets avec les champs de l'itemtype à mettre à jour. Obligatoire. Vous pouvez fournir dans chaque objet une clé nommée 'id' pour identifier l'élément (ou les éléments) à mettre à jour.

  • Retourne:

    • 200 (OK) avec le statut de mise à jour pour chaque élément.

    • 207 (Multi-Status) avec l'id des éléments ajoutés et les erreurs.

    • 400 (Bad Request) avec un message indiquant une erreur dans le paramètre d'entrée.

    • 401 (UNAUTHORIZED).

Exemple d'utilisation (CURL) :


Supprimer un ou plusieurs éléments

  • URL: apirest.php/:itemtype/:id

  • Description: Supprime un objet existant dans GLPI.

  • Méthode: DELETE

  • Paramètres: (En-têtes)

    • Session-Token: variable de session fournie par le point d'accès initSession. Obligatoire.

    • App-Token: chaîne d'autorisation fournie par la configuration de l'API GLPI. Facultatif.

  • Paramètres: (chaîne de requête)

    • id: identifiant unique de l'itemtype passé dans l'URL. Vous pouvez ignorer ce paramètre en le passant dans la charge utile d'entrée. OU

    • input Tableau d'identifiants à supprimer. Ce paramètre est passé par la charge utile.

    Le paramètre id a la priorité sur la charge utile d'entrée.

    • force_purge (par défaut false): booléen, si l'itemtype a une corbeille, vous pouvez forcer la purge (suppression définitive). Facultatif.

    • history (par défaut true): booléen, mis à false pour désactiver l'enregistrement de la suppression dans l'historique global. Facultatif.

  • Retours:

    • 200 (OK) en cas de suppression multiple.

    • 204 (No Content) en cas de suppression unique.

    • 207 (Multi-Status) avec l'identifiant des éléments supprimés et les erreurs.

    • 400 (Bad Request) avec un message indiquant une erreur dans le paramètre d'entrée.

    • 401 (UNAUTHORIZED).

Exemple d'utilisation (CURL) :

Obtenir les actions massives disponibles pour un itemtype

  • URL: apirest.php/getMassiveActions/:itemtype/

  • Description: Affiche les actions massives disponibles pour un itemtype donné.

  • Méthode: GET

  • Paramètres: (En-têtes)

    • Session-Token: variable de session fournie par le point d'accès initSession. Obligatoire.

    • App-Token: chaîne d'autorisation fournie par la configuration de l'API GLPI. Facultatif.

  • Paramètres: (chaîne de requête)

    • is_deleted (par défaut false): Affiche les actions spécifiques pour les éléments dans la corbeille.

  • Retours:

    • 200 (OK).

    • 400 (Bad Request) avec un message indiquant une erreur dans le paramètre d'entrée.

    • 401 (UNAUTHORIZED).

Exemple d'utilisation (CURL) :


Obtenir les actions massives disponibles pour un élément

  • URL: apirest.php/getMassiveActions/:itemtype/:id

  • Description: Affiche les actions massives disponibles pour un élément donné.

  • Méthode: GET

  • Paramètres: (En-têtes)

    • Session-Token: variable de session fournie par le point d'accès initSession. Obligatoire.

    • App-Token: chaîne d'autorisation fournie par la configuration de l'API GLPI. Facultatif.

  • Paramètres: (chaîne de requête)

  • Retours:

    • 200 (OK).

    • 400 (Bad Request) avec un message indiquant une erreur dans le paramètre d'entrée.

    • 401 (UNAUTHORIZED).

Exemple d'utilisation (CURL) :


Obtenir les paramètres d'une action massive

  • URL: apirest.php/getMassiveActionParameters/:itemtype/

  • Description: Afficher les paramètres disponibles pour une action massive donnée.

    • Attention : endpoint expérimental, certains paramètres requis peuvent être manquants dans le contenu retourné.

  • Méthode: GET

  • Paramètres: (En-têtes)

    • Session-Token: variable de session fournie par l'endpoint initSession. Obligatoire.

    • App-Token: chaîne d'autorisation fournie par la configuration de l'API GLPI. Optionnel.

  • Paramètres: (chaîne de requête)

  • Retourne:

    • 200 (OK).

    • 400 (Bad Request) avec un message indiquant une erreur dans le paramètre d'entrée.

    • 401 (UNAUTHORIZED).

Exemple d'utilisation (CURL) :


Appliquer une action massive

  • URL: apirest.php/applyMassiveAction/:itemtype/

  • Description: Exécuter l'action massive donnée

  • Méthode: POST

  • Paramètres: (En-têtes)

    • Session-Token: variable de session fournie par l'endpoint initSession. Obligatoire.

    • App-Token: chaîne d'autorisation fournie par la configuration de l'API GLPI. Optionnel.

  • Paramètres: (charge utile JSON)

    • ids éléments sur lesquels exécuter l'action. Obligatoire.

    • paramètres d'action spécifiques certaines actions nécessitent des paramètres spécifiques pour s'exécuter. Vous pouvez les vérifier via l'endpoint 'getMassiveActionParameters'.

  • Retourne:

    • 200 (OK) Tous les éléments ont été traités.

    • 207 (Multi-Status) Tous les éléments n'ont pas été traités avec succès.

    • 400 (Bad Request) avec un message indiquant une erreur dans le paramètre d'entrée.

    • 401 (UNAUTHORIZED).

    • 422 (Unprocessable Entity) Tous les éléments n'ont pas pu être traités.

Exemple d'utilisation (CURL) :


Cas spéciaux

Télécharger un fichier document

Voir Ajouter un ou plusieurs éléments et appliquer les instructions spécifiques ci-dessous.

Le téléchargement d'un fichier nécessite l'utilisation du type de contenu 'multipart/data'. Les données d'entrée doivent être envoyées dans un paramètre 'uploadManifest' et utiliser le format JSON.

Exemples d'utilisation (CURL) :

Télécharger un fichier document

  • URL: apirest.php/Document/:id

  • Description: Télécharger un document.

  • Méthode: GET

  • Paramètres: (En-têtes)

    • Session-Token: variable de session fournie par l'endpoint initSession. Obligatoire.

    • App-Token: chaîne d'autorisation fournie par la configuration de l'API GLPI. Optionnel.

    • Accept: doit être application/octet-stream. Cet en-tête OU le paramètre alt est obligatoire

  • Paramètres: (chaîne de requête)

    • id: identifiant unique de l'itemtype passé dans l'URL. Vous pouvez ignorer ce paramètre en le passant dans la charge utile d'entrée.

    • alt: doit être 'media'. Ce paramètre ou l'en-tête Accept est obligatoire.

    Le paramètre id a la priorité sur la charge utile d'entrée.

  • Retourne:

    • 200 (OK) en cas de suppression multiple.

    • 400 (Bad Request) avec un message indiquant une erreur dans le paramètre d'entrée.

    • 401 (UNAUTHORIZED).

Exemple d'utilisation (CURL) :

Le corps de la réponse contient le fichier brut joint au document.

Le corps de la réponse contient le fichier brut joint au document.

Obtenir la photo de profil d'un utilisateur

  • URL: apirest.php/User/:id/Picture

  • Description: Obtenir la photo de profil d'un utilisateur.

  • Méthode: GET

  • Paramètres: (En-têtes)

    • Session-Token: variable de session fournie par l'endpoint initSession. Obligatoire.

    • App-Token: chaîne d'autorisation fournie par la configuration de l'API GLPI. Optionnel.

  • Retourne:

    • 200 (OK) avec l'image brute dans le corps de la requête.

    • 204 (No content) si la requête est correcte mais que l'utilisateur spécifié n'a pas de photo de profil.

    • 400 (Bad Request) avec un message indiquant une erreur dans le paramètre d'entrée.

Exemple d'utilisation (CURL) :

Le corps de la réponse contient l'image brute.


Erreurs

ERROR_ITEM_NOT_FOUND

La ressource souhaitée (itemtype-id) n'a pas été trouvée dans la base de données GLPI.

ERROR_BAD_ARRAY

Le corps HTTP doit être un tableau d'objets.

ERROR_METHOD_NOT_ALLOWED

Vous avez spécifié une ressource inexistante ou non autorisée.

ERROR_RIGHT_MISSING

L'utilisateur actuellement connecté manque de droits dans son profil pour effectuer l'action fournie. Modifiez ce profil ou choisissez-en un nouveau pour l'utilisateur dans l'interface principale de GLPI.

ERROR_SESSION_TOKEN_INVALID

Le Session-Token fourni dans l'en-tête est invalide. Vous devriez refaire une requête Init session.

ERROR_SESSION_TOKEN_MISSING

Vous avez oublié de fournir le Session-Token dans l'en-tête de votre requête HTTP.

ERROR_APP_TOKEN_PARAMETERS_MISSING

L'API actuelle nécessite un en-tête App-Token pour utiliser ses méthodes.

ERROR_WRONG_APP_TOKEN_PARAMETER

Il semble que le jeton d'application fourni n'existe pas dans la configuration de l'API GLPI.

ERROR_NOT_DELETED

Vous devez marquer l'élément pour suppression avant de le supprimer réellement.

ERROR_NOT_ALLOWED_IP

Nous ne trouvons aucun client actif défini dans la configuration pour votre IP. Allez dans le menu Configuration GLPI > Configuration et l'onglet API pour vérifier l'accès IP.

ERROR_LOGIN_PARAMETERS_MISSING

Un des paramètres suivants est manquant :

  • login et mot de passe

  • ou user_token

ERROR_LOGIN_WITH_CREDENTIALS_DISABLED

La configuration GLPI interdit la connexion avec des identifiants, vous devez vous connecter avec votre user_token à la place.

Consultez votre page de préférences personnelles ou configurez l'accès API dans l'interface principale de GLPI.

ERROR_GLPI_LOGIN_USER_TOKEN

Le user_token fourni semble invalide. Vérifiez votre page de préférences personnelles dans l'interface principale de GLPI.

ERROR_GLPI_LOGIN

Nous ne pouvons pas vous connecter à GLPI. Cette erreur n'est pas relative à l'API mais au cœur de GLPI. Vérifiez l'administration des utilisateurs et les fichiers journaux de GLPI (dans le répertoire files/_logs).

ERROR_ITEMTYPE_NOT_FOUND_NOR_COMMONDBTM

Vous avez demandé une ressource (endpoint) inexistante. Il ne s'agit ni d'une ressource prédéfinie (initSession, getFullSession, etc.) ni d'une ressource GLPI CommonDBTM.

ERROR_SQL

Nous suspectons une erreur SQL. Cette erreur n'est pas relative à l'API mais au cœur de GLPI. Vérifiez les fichiers journaux de GLPI (dans le répertoire files/_logs).

ERROR_RANGE_EXCEED_TOTAL

Le paramètre range que vous avez fourni est supérieur au nombre total de données disponibles.

ERROR_GLPI_ADD

Nous ne pouvons pas ajouter l'objet à GLPI. Cette erreur n'est pas relative à l'API mais au cœur de GLPI. Vérifiez les fichiers journaux de GLPI (dans le répertoire files/_logs).

ERROR_GLPI_PARTIAL_ADD

Certains des objets que vous souhaitiez ajouter déclenchent une erreur. Peut-être un champ manquant ou des droits insuffisants. Vous trouverez avec cette erreur une collection de résultats.

ERROR_GLPI_UPDATE

Nous ne pouvons pas mettre à jour l'objet dans GLPI. Cette erreur n'est pas relative à l'API mais au cœur de GLPI. Vérifiez les fichiers journaux de GLPI (dans le répertoire files/_logs).

ERROR_GLPI_PARTIAL_UPDATE

Certains des objets que vous souhaitiez mettre à jour déclenchent une erreur. Peut-être un champ manquant ou des droits insuffisants. Vous trouverez avec cette erreur une collection de résultats.

ERROR_GLPI_DELETE

Nous ne pouvons pas supprimer l'objet de GLPI. Cette erreur n'est pas relative à l'API mais au cœur de GLPI. Vérifiez les fichiers journaux de GLPI (dans le répertoire files/_logs).

ERROR_GLPI_PARTIAL_DELETE

Certains des objets que vous souhaitez supprimer déclenchent une erreur, peut-être un champ manquant ou des droits insuffisants. Vous trouverez avec cette erreur une collection de résultats.

ERROR_MASSIVEACTION_KEY

Clé d'action massive manquante ou invalide. Exécutez l'endpoint getMassiveActions pour voir les clés disponibles.

ERROR_MASSIVEACTION_NO_IDS

Aucun ID fourni lors de la tentative d'exécution d'une action massive.

ERROR_FIELD_NOT_FOUND

Le champ spécifié comme clé pour le paramètre searchText n'existe pas. Ce champ doit faire référence à une colonne de la table correspondant à l'élément de la requête.

ERROR_UNKNOWN

Une erreur inconnue s'est produite. Cela peut être dû à une condition inattendue rencontrée par le serveur ou à un problème qui ne rentre dans aucune des catégories d'erreurs prédéfinies. Vérifiez les journaux du serveur pour plus de détails ou contactez l'équipe de support.


Configuration des serveurs

Par défaut, vous pouvez utiliser <http://chemin/vers/glpi/apirest.php> sans configuration supplémentaire.

Vous trouverez ci-dessous quelques exemples pour configurer votre serveur web afin de rediriger votre URL <http://.../glpi/api/> vers le fichier apirest.php.

Apache Httpd

Nous fournissons dans le .htaccess racine de GLPI un exemple pour activer la réécriture d'URL de l'API.

Vous devez décommenter (en supprimant le #) les lignes suivantes :

En activant la réécriture d'URL, vous pourrez utiliser l'API avec cette URL : <http://chemin/vers/glpi/api/>. Vous devez également activer le module de réécriture dans Apache httpd et autoriser le .htaccess de GLPI à outrepasser la configuration du serveur (voir la directive AllowOverride).

Note pour les utilisateurs apache+fpm :

Vous pourriez rencontrer des difficultés pour passer l'en-tête Authorization dans cette configuration. Vous avez deux options :

  • passer le user_token ou les identifiants (login/mot de passe) dans la requête http (en tant que paramètres GET).

  • ajouter une variable d'environnement à votre virtualhost : SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1.

Nginx

Cet exemple de configuration a été réalisé sur Ubuntu avec php7 fpm.

Mis à jour