> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dloopiq.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Installation du SDK

> Intégrez DLoopIQ dans votre app en moins de 2 heures.

## Installation

<CodeGroup>
  ```bash npm theme={null}
  npm install @dloopiq/sdk
  ```

  ```bash yarn theme={null}
  yarn add @dloopiq/sdk
  ```

  ```bash pnpm theme={null}
  pnpm add @dloopiq/sdk
  ```
</CodeGroup>

**Zéro dépendance externe.** Le SDK utilise uniquement le `fetch` natif (Node 18+ / navigateurs modernes).

***

## Prérequis

* Node.js 18+ (pour `fetch` natif) ou navigateur moderne
* Une clé API développeur DLoopIQ ([demandez-la via le dashboard admin](https://dloopiq-dashboard.vercel.app))
* TypeScript : inclus, pas de `@types/...` nécessaire

***

## Initialisation

```typescript theme={null}
import { DLoopIQ } from '@dloopiq/sdk'

const dloopiq = new DLoopIQ('votre_clé_api_développeur')
```

Par défaut, le SDK pointe sur `https://dloopiq.onrender.com`. Pour les tests en local :

```typescript theme={null}
const dloopiq = new DLoopIQ('votre_clé_api', {
  baseUrl: 'http://localhost:3000'
})
```

***

## Exemple complet — React Native

```typescript theme={null}
import { DLoopIQ } from '@dloopiq/sdk'

const dloopiq = new DLoopIQ(process.env.DLOOPIQ_API_KEY!)

export async function showNextTask(userId: string) {
  // 1. Récupérer la prochaine tâche
  const task = await dloopiq.getNextTask({
    types: ['SENTIMENT_ANALYSIS', 'BINARY_CHOICE'],
    locale: 'fr',
    userId
  })

  if (!task) {
    console.log('Aucune tâche disponible pour le moment')
    return
  }

  // 2. Afficher la tâche à l'utilisateur (votre UI ici)
  const userAnswer = await showTaskUI(task)
  const startTime = Date.now()

  // 3. Soumettre la réponse
  const result = await dloopiq.completeTask({
    taskId: task.taskId,
    userId,
    answer: userAnswer,
    timeSpentMs: Date.now() - startTime
  })

  console.log(`Tâche complétée ! Gains : ${result.earnedCents}¢`)
}
```

***

## Modules supportés

Le SDK est publié en **CJS + ESM + TypeScript declarations** :

```typescript theme={null}
// ESM (recommandé)
import { DLoopIQ } from '@dloopiq/sdk'

// CommonJS
const { DLoopIQ } = require('@dloopiq/sdk')
```

***

## Types exportés

```typescript theme={null}
import type {
  Task,
  TaskType,
  CompleteTaskResult,
  EarningsResult,
  UserReputation,
  CertificationLevel,
  GetNextTaskOptions,
  CompleteTaskOptions
} from '@dloopiq/sdk'
```

***

## Variables d'environnement recommandées

Ne committez jamais votre clé API dans le code source :

```bash theme={null}
# .env
DLOOPIQ_API_KEY=cmpkb4ghw00016qduu44p7n2q
```

```typescript theme={null}
const dloopiq = new DLoopIQ(process.env.DLOOPIQ_API_KEY!)
```

***

## Méthodes disponibles

| Méthode                      | Description                           |
| ---------------------------- | ------------------------------------- |
| `getNextTask(options)`       | Récupère la prochaine tâche à annoter |
| `completeTask(options)`      | Soumet la réponse d'un utilisateur    |
| `getUserReputation(userId)`  | Récupère le score et la certification |
| `getEarnings()`              | Consulte les gains du développeur     |
| `requestPayout(amountCents)` | Demande un virement                   |
