diff --git a/api.js b/api.js
new file mode 100644
index 0000000000000000000000000000000000000000..e74bfef7189afb72988bbd3b37d61478bb4f63a5
--- /dev/null
+++ b/api.js
@@ -0,0 +1,158 @@
+console.log("api.js chargé correctement");
+
+// Fonction pour récupérer les lexiques de l'utilisateur
+async function getUserLexicons(authToken) {
+  const lexiconsApiUrl = 'https://babalex.lezinter.net/api/user/lexicons';
+
+  try {
+    const response = await fetch(lexiconsApiUrl, {
+      method: 'GET',
+      headers: {
+        Authorization: `Bearer ${authToken}`,
+        'Content-Type': 'application/json',
+      },
+    });
+
+    if (!response.ok) {
+      throw new Error(`Erreur lors de la récupération des lexiques : ${response.statusText}`);
+    }
+
+    return await response.json();
+  } catch (error) {
+    console.error('Erreur lors de la récupération des lexiques :', error);
+    throw error;
+  }
+}
+
+// Fonction pour récupérer les graphies d'un lexique donné
+async function getLexiconEntries(authToken, idLexicon) {
+  const entriesApiUrl = `https://babalex.lezinter.net/api/lexicon/entries/${idLexicon}`;
+
+  try {
+    const response = await fetch(entriesApiUrl, {
+      method: 'GET',
+      headers: {
+        Authorization: `Bearer ${authToken}`,
+        'Content-Type': 'application/json',
+      },
+    });
+
+    if (!response.ok) {
+      throw new Error(`Erreur lors de la récupération des graphies : ${response.statusText}`);
+    }
+
+    return await response.json();
+  } catch (error) {
+    console.error('Erreur lors de la récupération des graphies :', error);
+    throw error;
+  }
+}
+
+// Fonction pour obtenir les informations d'une graphie
+async function getWordInfo(authToken, word) {
+  const definitionApiUrl = `https://babalex.lezinter.net/api/entry/search?graphy=${encodeURIComponent(word)}&language=fr&target_lex=3&target_lex=4`;
+
+  try {
+    const response = await fetch(definitionApiUrl, {
+      method: 'GET',
+      headers: {
+        Authorization: `Bearer ${authToken}`,
+        'Content-Type': 'application/json',
+      },
+    });
+
+    if (!response.ok) {
+      throw new Error(`Erreur lors de la récupération de la définition : ${response.statusText}`);
+    }
+
+    return await response.json();
+  } catch (error) {
+    console.error('Erreur lors de la récupération de la définition :', error);
+    throw error;
+  }
+}
+
+// Fonction pour obtenir les définitions
+function getDefinition(data) {
+  // Vérifier que les données sont bien structurées
+  if (!Array.isArray(data)) {
+    console.warn('Les données fournies ne contiennent pas de définitions.');
+    return [];
+  }
+
+  //Liste qui contient les id / définitions
+  const definitions = [];
+
+  // Parcours de chaque entrée pour extraire les définitions
+  data.forEach((entry) => {
+    if (entry.attributes && entry.attributes.Items) {
+      entry.attributes.Items.forEach((item) => {
+        if (item.Sense && Array.isArray(item.Sense.Definitions)) {
+          item.Sense.Definitions.forEach((def) => {
+            definitions.push({
+              id: def.id || 'ID non disponible',
+              definition: def.Def || 'Définition non disponible',
+            });
+          });
+        }
+      });
+    }
+  });
+
+  return definitions;
+}
+
+// Fonction pour obtenir une définition depuis le Wiktionnaire
+async function getWiktionaryDefinition(authToken, word) {
+  const wiktionaryApiUrl = `https://babalex.lezinter.net/api/wiktionary/search?graphy=${encodeURIComponent(word)}&language=fr`;
+
+  try {
+    const response = await fetch(wiktionaryApiUrl, {
+      method: 'GET',
+      headers: {
+        Authorization: `Bearer ${authToken}`,
+        'Content-Type': 'application/json',
+      },
+    });
+
+    if (!response.ok) {
+      throw new Error(`Erreur lors de la récupération de la définition depuis le Wiktionnaire : ${response.statusText}`);
+    }
+
+    const data = await response.json();
+
+    // Extraire les définitions et leurs IDs
+    const definitions = [];
+    if (Array.isArray(data)) {
+      data.forEach((entry) => {
+        if (entry.science && entry.science.senses) {
+          for (const [senseKey, senseValue] of Object.entries(entry.science.senses)) {
+            if (senseValue.Definitions) {
+              senseValue.Definitions.forEach((def) => {
+                definitions.push({
+                  id: def.id || 'ID non disponible',
+                  definition: def.definition || 'Définition non disponible',
+                });
+              });
+            }
+          }
+        }
+      });
+    }
+
+    return definitions;
+  } catch (error) {
+    console.error('Erreur lors de la récupération de la définition depuis le Wiktionnaire :', error);
+    throw error;
+  }
+}
+
+
+
+
+// METTRE LES FONCTIONS GLOBALES
+window.getUserLexicons = getUserLexicons;
+window.getLexiconEntries = getLexiconEntries;
+window.getWordInfo = getWordInfo;
+window.getDefinition = getDefinition;
+window.getWiktionaryDefinition = getWiktionaryDefinition;
\ No newline at end of file
diff --git a/token.js b/token.js
new file mode 100644
index 0000000000000000000000000000000000000000..dd8035dfc3780581343045f07ecedd32cd755089
--- /dev/null
+++ b/token.js
@@ -0,0 +1,23 @@
+console.log("token.js chargé correctement");
+
+// Fonction pour lire le contenu du fichier token
+async function readTokenFile() {
+  const tokenFilePath = browser.runtime.getURL('token.txt');
+
+  try {
+    const response = await fetch(tokenFilePath);
+    if (!response.ok) {
+      throw new Error(`Erreur lors de la lecture du fichier token : ${response.statusText}`);
+    }
+
+    const token = (await response.text()).trim();
+    console.log('Token chargé :', token);
+    return token;
+  } catch (error) {
+    console.error('Erreur lors de la lecture du fichier token :', error);
+    throw error;
+  }
+}
+
+// Exposer la fonction en tant que globale
+window.readTokenFile = readTokenFile;
diff --git a/token.txt b/token.txt
new file mode 100644
index 0000000000000000000000000000000000000000..4f846471b50d3f1b92b12b4e553ecd372bc5399d
--- /dev/null
+++ b/token.txt
@@ -0,0 +1 @@
+eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiJwcmlzbXMiLCJqdGkiOiJlMjk1ZmI0N2E4NGM4Y2Y2YTZmNDM2M2QxMGU0ZDMwNmU4NGYwOWQ1MDVkOTcxNzNkNzg1NTI4MWQxYzE3NjYyMzJkMGRjNmQ2ZGVkNWMyYSIsImlhdCI6MTczNzA4Njk5Ny4xMjcxMDgsIm5iZiI6MTczNzA4Njk5Ny4xMjcxMjksImV4cCI6MTczNzA5MDU5Ny4xMDEzMiwic3ViIjoiYXNvdW5hbGF0aCIsInNjb3BlcyI6WyJlbWFpbCIsInBzZXVkbyIsInV1aWQiXSwia2lkIjoiMSIsImN1c3RvbSI6eyJmb28iOiJiYXIifX0.E0ApQUZLsJShxq94jZOyt5XHZS4C-1xx4Nabzp5jUw0W7GE2FpzRhrUSC2DVXIu5oCw_LOh_uuv0kkBRD2YjsdFeCn3NBoJP_2sz8vJLzutfeR7Fl4MF166IM8RPYAT14werTQy82MUUXcvKli8E12y7SGM7qwwq5c7I_C3eNr2NJ_S-ivj_1JKZIv4vqsCR4NHk4MJC8Wmt0VDXBJuX5LUgAnvHBSxiEFdrQm7vuKg-nXk33biGYjMQAFepJhr-Oax2lvs-OwC-UuNOV87vpmr79umX4fRdA2USFOV8B_ro25LqJq6vugXAYCCLjXD4e0fLwDUhjzkFfXXslAqX7A
\ No newline at end of file