REST API (V1)
Ancienne version de l'API
Lien vers la documentation
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 basic. 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=truepour 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_tokenou 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