> For the complete documentation index, see [llms.txt](https://docs.discordtop.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.discordtop.net/api-reference/concepts-cles/erreurs-and-codes-de-reponse.md).

# Erreurs & codes de réponse

Cette page répertorie l’ensemble des erreurs **globales** (communes à tous les endpoints), ainsi que celles spécifiques à la validation des paramètres.

Toutes les erreurs suivent la structure suivante :

```json
{
  "ok": false,
  "error": "ERROR_CODE",
  "message": "Description de l'erreur."
}
```

***

## 📌 **Codes d’erreur globaux**

### &#x20;`INVALID_API_TOKEN`

Le token fourni ne correspond à aucun serveur Discord existant ou a été régénéré.

```json
{
  "ok": false,
  "error": "INVALID_API_TOKEN",
  "message": "The provided API token is invalid !"
}
```

**Causes possibles :**

* Token incorrect
* Token expiré (rotation)
* Token remplacé dans le tableau de bord
* Token copié partiellement
* Mauvaise guilde associée
* La guilde associé possède actuellement une sanction

***

### `API_NOT_SET`

Le token fourni n'est pas correctement configuré ou un placeholder non configuré.

```json
{
  "ok": false,
  "error": "API_NOT_SET",
  "message": "The API token is not set correctly !"
}
```

**Concerne souvent :**

* Une mauvaise génération de votre Token
* Un CMS mal configuré
* Une variable d’environnement manquante
* Une intégration qui n’a pas renseigné la clé API

***

### `PREMIUM_REQUIRED`

Le serveur lié au token API ne possède pas un abonnement Premium actif.

**Rappel :**\
Vous devez fournir **exactement un** identifiant pour vérifier un vote.

```json
{
  "ok": false,
  "error": "PREMIUM_REQUIRED",
  "message": "This endpoint is reserved for Premium servers !"
}
```

{% hint style="info" %}
Vous faites un appel sur une route nécessitant l'abonnement Premium, attention, un délai d'activation peut-être nécessaire (1 heure max). En cas de non renouvellement, l'autorisation d'accès s'arrête également.
{% endhint %}

***

## **Erreurs liées aux identifiants utilisateur**

Ces erreurs se produisent lorsque les paramètres `discord_id` et `external_id` sont mal utilisés.

***

### &#x20;`MISSING_IDENTIFIER`

Aucun identifiant n’a été fourni :\
ni `discord_id`, ni `external_id`.

```json
{
  "ok": false,
  "error": "MISSING_IDENTIFIER",
  "message": "Provide either discord_id or external_id !"
}
```

***

### &#x20;`MULTIPLE_IDENTIFIERS`

Les deux identifiants ont été fournis en même temps.

```json
{
  "ok": false,
  "error": "MULTIPLE_IDENTIFIERS",
  "message": "You must provide only one identifier at a time !"
}
```

**Rappel :**\
Un seul identifiant autorisé par requête :

* Soit `discord_id`
* Soit `external_id`
* Mais pas les deux

***

## **Erreurs de validation des paramètres**

Ces erreurs sont générées automatiquement par notre API lorsque les paramètres ne respectent pas le schéma attendu.

#### Exemple : ID trop court, trop long, format invalide…

Format général :

```json
{
  "errors": [
    {
      "rule": "minLength",
      "field": "api_token",
      "message": "minLength validation failed"
    }
  ]
}
```

**Important :**\
Ces erreurs proviennent du validator et peuvent varier en fonction de votre implémentation future.\
Elles sont distinctes des erreurs API “contractuelles”.

## Erreurs liées aux votes

### `INVALID_DATE`

Une date fournie est invalide ou n’est pas au format ISO.

```json
{
  "ok": false,
  "error": "INVALID_DATE",
  "message": "Les dates doivent être au format ISO."
}
```

Exemple valide :

```bash
2026-06-01T00:00:00.000Z
```

***

### `INVALID_DATE_RANGE`

La date `from` doit être antérieure à la date `to`.

```json
{
  "ok": false,
  "error": "INVALID_DATE_RANGE",
  "message": "La date from doit être antérieure à la date to."
}
```

***

### `DATE_RANGE_TOO_LARGE`

La période demandée dépasse la limite autorisée.

```json
{
  "ok": false,
  "error": "DATE_RANGE_TOO_LARGE",
  "message": "La période demandée ne peut pas dépasser 31 jours."
}
```

Les routes de récupération des votes acceptent une période maximale de **31 jours**.

***

### `INVALID_CURSOR`

Le curseur de pagination fourni est invalide.

```json
{
  "ok": false,
  "error": "INVALID_CURSOR",
  "message": "Le curseur fourni est invalide."
}
```

Les curseurs doivent être utilisés tels quels depuis la réponse précédente :

```json
{
  "pagination": {
    "next_cursor": "eyJjcmVhdGVkX2F0Ijoi..."
  }
}
```

***

### `INVALID_USER_ID`

L’identifiant Discord fourni est invalide.

```json
{
  "ok": false,
  "error": "INVALID_USER_ID",
  "message": "L'identifiant utilisateur Discord est invalide."
}
```

Cette erreur peut être retournée par :

```bash
GET /guild/votes/users/{user_id}
```

***

## **Erreur 404 — Jamais renvoyée en tant que JSON d’erreur**

À noter :\
Dans le cas d’un `api_token` invalide, l'API renvoie un **401 Unauthorized**, pas un 404.

C’est voulu pour éviter la confusion entre :

* une ressource inexistante (404)
* une authentification invalide (401)

***

## Récapitulatif des codes d’erreur

| Code                   | Signification                                                     |
| ---------------------- | ----------------------------------------------------------------- |
| `INVALID_API_TOKEN`    | La clé API ne correspond à nos critères de sécurité.              |
| `API_NOT_SET`          | Le token fourni est un placeholder non configuré.                 |
| `MISSING_IDENTIFIER`   | Aucun identifiant (`discord_id` ou `external_id`) fourni.         |
| `MULTIPLE_IDENTIFIERS` | Les deux identifiants ont été reçus.                              |
| `PREMIUM_REQUIRED`     | Cette route est réservée aux serveurs ayant l'abonnement Premium. |
| *(Validation errors)*  | Format ou longueur invalide, gérés par nos validateurs.           |

## Bonnes pratiques

* Stockez le dernier `next_cursor` pour récupérer la suite des votes.
* Ne modifiez jamais manuellement un curseur.
* Utilisez des dates ISO en UTC.
* Limitez vos périodes de synchronisation à 31 jours maximum.
* Gérez toujours les erreurs `401`, `403` et `429`.
* Ne considérez pas un `403 PREMIUM_REQUIRED` comme une erreur temporaire : le serveur doit être Premium pour accéder à la route.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.discordtop.net/api-reference/concepts-cles/erreurs-and-codes-de-reponse.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
