# API Ora > Pilotez vos lancements, vos trades et vos stratégies depuis vos propres scripts, avec les mêmes endpoints que l'app Ora. Authentifiez-vous avec une clé API, envoyez du JSON, recevez du JSON. > **Danger:** **Il n'y a pas de mode test.** Chaque appel agit sur le mainnet avec des fonds réels, exactement comme l'app. Commencez par des appels en lecture seule, puis par de petits montants. **URL de base :** `https://api.useora.xyz`. Tous les chemins de cette section sont relatifs à cette URL. ### Démarrage rapide 1. **Faites activer l'accès API.** Il est désactivé par défaut sur tous les comptes. Demandez au support Ora de l'activer pour votre compte, sur [Discord](https://discord.gg/K9BrY9g6zs) ou [Telegram](https://t.me/useora_xyz). 2. **Créez une clé.** Dans l'app, cliquez sur votre photo de profil en haut à droite, puis sur **API Key**, puis sur **Generate key**. La clé n'est affichée qu'une seule fois : copiez-la dans un coffre à secrets ou une variable d'environnement. En générant une clé, vous acceptez les Conditions d'utilisation de l'API, sections 10.8 à 10.11 des [Conditions générales d'utilisation](https://useora.xyz/terms) d'Ora. 3. **Faites votre premier appel.** Un `200` signifie que tout fonctionne. Un `401` signifie que la clé est incorrecte ; un `403`, que l'accès API n'est pas encore activé. ```bash curl https://api.useora.xyz/portfolio/stats \ -H "Authorization: Bearer $ORA_API_KEY" ``` ### Un petit client Au-delà d'un appel ponctuel, regroupez les appels dans un petit client. Les exemples de cette section supposent celui-ci (Node 18+, ou tout environnement d'exécution doté de `fetch`) : ```js title="ora.mjs" const ORA = 'https://api.useora.xyz'; const KEY = process.env.ORA_API_KEY; // ora_…, never hard-coded export async function ora(method, path, body) { const res = await fetch(ORA + path, { method, headers: { Authorization: `Bearer ${KEY}`, // Only when there is a body: a body-less POST with this header is refused (400). ...(body ? { 'Content-Type': 'application/json' } : {}), }, body: body ? JSON.stringify(body) : undefined, }); const data = await res.json(); if (!res.ok || data.success === false) { const err = new Error(`${res.status} ${data.error}${data.message ? `: ${data.message}` : ''}`); err.status = res.status; err.requestId = res.headers.get('x-request-id'); // quote it when you contact support throw err; } return data; } ``` ### Pour aller plus loin - [Authentification](https://docs.useora.xyz/developers/authentication/) : le fonctionnement de la clé, et comment la renouveler ou la révoquer. - [Requêtes & erreurs](https://docs.useora.xyz/developers/requests-and-errors/) : montants, adresses, codes d'erreur et limites de débit. - [Signature & flux](https://docs.useora.xyz/developers/signing-and-streams/) : les quelques opérations que votre propre wallet signe, et les données en direct. - [Guides de l'API](https://docs.useora.xyz/developers/guides/) : acheter et vendre, les stratégies, lancer un token. - [Endpoints](https://docs.useora.xyz/developers/endpoints/) : toutes les routes qu'une clé peut appeler. Les questions et les demandes d'accès sont à adresser au support Ora. Indiquez le `X-Request-ID` de chaque appel sur lequel porte votre question.