Premiers pas
Toutes les routes ci-dessous utilisent l’API v2. Le chemin de base est /api/v2/public. Les chemins des tableaux sont relatifs à ce préfixe.
Envoyez les paramètres des listes sous forme d’objet JSON dans le corps POST, avec Content-Type: application/json. Utilisez {} pour une requête sans filtre. GET ne nécessite aucun corps. Les paramètres d’URL tels que ?page=… ne sont pas pris en charge.
Envoyez toutes les requêtes à https://api.allodswiki.ru/api/v2/public. Les chemins des tableaux sont relatifs à cette adresse. Ajoutez l’en-tête X-Site: fr.allodswiki.ru pour sélectionner le site français et sa version du jeu. Une requête directe à l’API sans X-Site ni Origin utilise le site principal russe, allodswiki.ru.
La lecture est accessible sans connexion, dans la limite des requêtes invitées. Une application peut utiliser un jeton API créé dans le profil et envoyé via Authorization: Bearer <token>. User-Agent doit correspondre exactement à la valeur configurée pour ce jeton. La limite standard s’applique jusqu’à son approbation, puis la limite attribuée par l’administrateur.
Ressources de la base de données
{id} est l’identifiant numérique de la ressource indiqué sur le site. Il est également renvoyé dans les listes et les ressources liées. Les noms et slugs des adresses de pages du site ne font pas partie du chemin API. Seules les ressources publiées pour la version du jeu sélectionnée sont renvoyées.
| Ressource | Liste | Détails | Infobulle |
|---|---|---|---|
| Objets | POST /items | GET /items/{id} | GET /items/{id}/tooltip |
| Quêtes | POST /quests | GET /quests/{id} | GET /quests/{id}/tooltip |
| PNJ et créatures | POST /mobs | GET /mobs/{id} | GET /mobs/{id}/tooltip |
| Éléments du monde | POST /objects | GET /objects/{id} | GET /objects/{id}/tooltip |
| Zones | POST /zones | GET /zones/{id} | GET /zones/{id}/tooltip |
| Succès | POST /achievements | GET /achievements/{id} | GET /achievements/{id}/tooltip |
| Sorts | POST /spells | GET /spells/{id} | GET /spells/{id}/tooltip |
| Aptitudes | POST /abilities | GET /abilities/{id} | GET /abilities/{id}/tooltip |
| Compétences | POST /unlocks | GET /unlocks/{id} | GET /unlocks/{id}/tooltip |
| Monnaies | POST /currencies | GET /currencies/{id} | GET /currencies/{id}/tooltip |
| Factions | POST /factions | GET /factions/{id} | GET /factions/{id}/tooltip |
Paramètres des listes
Une liste standard renvoie {"items": [...], "total": 123}. Une page contient au maximum 50 éléments et la numérotation commence à 1. total est le nombre de résultats avant pagination. La taille des pages est fixe : limit, offset et page_size ne sont pas utilisés.
| Champ | Valeur et rôle |
|---|---|
| page | Entier supérieur ou égal à 1 ; valeur par défaut : 1. |
| search | Recherche facultative par nom, de 3 à 256 caractères. Omettez ce champ sans recherche ; une chaîne vide n’est pas acceptée. |
| desc | Booléen contrôlant le sens du tri lors d’une recherche. La plupart des listes sans recherche sont triées par nom croissant ; les quêtes et créatures ont leurs propres options sort et desc. |
| quality | /items uniquement : code de qualité de l’objet utilisé dans le champ quality de la réponse. |
| level_min, level_max | /quests et /mobs uniquement : bornes de niveau entières facultatives. Une seule borne suffit ; la borne supérieure ne doit pas être inférieure à la borne inférieure. Les plages de niveaux des créatures sont comparées par intersection. |
| sort | /quests et /mobs uniquement : name ou level ; desc indique le sens du tri. |
| faction | /quests uniquement : league ou empire. Omettez le champ pour toutes les factions ; all n’est pas une valeur acceptée. |
Rangs et étapes des succès
/abilities/{id}/tooltip et /spells/{id}/tooltip contiennent un tableau ranks. Utilisez les routes ci-dessous pour un rang précis. {rank} est un numéro de rang positif commençant à 1.
Pour un succès, récupérez {stage_id} dans stages[].id de sa réponse détaillée. Il s’agit de l’identifiant d’une étape, pas de sa position ; il s’utilise uniquement avec l’identifiant du succès parent.
| Méthode et chemin | Rôle |
|---|---|
| GET /abilities/{id}/ranks/{rank}/tooltip | Infobulle d’un rang précis d’aptitude. |
| GET /spells/{id}/ranks/{rank}/tooltip | Infobulle d’un rang précis de sort. |
| GET /achievements/{id}/stages/{stage_id}/tooltip | Infobulle d’une étape précise de succès. |
Mystères du Monde
| Méthode et chemin | Rôle |
|---|---|
| POST /secrets | Liste complète des Mystères du Monde ; corps {}. Réponse {"items": [...]} sans total ni pagination. |
| GET /secrets/{id} | Détails d’un Mystère du Monde : étapes, graphes de quêtes et récompenses. Aucune route d’infobulle distincte. |
Calculateur de talents
| Méthode et chemin | Rôle |
|---|---|
| GET /character-classes | Répertoire des classes : {"data": [{"name": "…", "slug": "…"}]}. |
| GET /talents/{name} | Calculateur de la classe sélectionnée pour la version actuelle du jeu sur le site. |
| GET /talents/{name}/layouts/{layout_id} | Une configuration disponible précise de cette classe. |
{name} est la valeur slug renvoyée par /character-classes. Utilisez layout.id de la réponse du calculateur comme {layout_id} : cet identifiant opaque est propre à la classe et n’est pas un numéro de version du jeu.
Les deux routes du calculateur renvoient name, point_budget, layout, spells, abilities, layers, fields et relations. layout contient id et last_seen_version. layers décrit les rangées de talents et leurs conditions de points, fields les grilles de rubis et leurs cases de départ, relations les liens entre aptitudes et sorts. Utilisez la géométrie de la réponse plutôt que des dimensions fixes.
Les groupes talents et rubies de point_budget contiennent level_free, level_subscription, total_free et total_subscription. Utilisez les valeurs renvoyées : les budgets de points dépendent de la version du jeu sélectionnée.
Armurerie
| Méthode et chemin | Rôle |
|---|---|
| POST /armory/avatars | Jusqu’à 100 personnages classés par niveau et score d’équipement. Réponse {"items": [...], "servers": [...]} sans pagination ni total. |
| GET /armory/avatars/{id} | Un personnage par son identifiant de personnage sur le site, avec son équipement et sa date de mise à jour. |
POST /armory/avatars accepte les champs facultatifs search, server et class_key. search est un nom exact de personnage, jusqu’à 256 caractères, sans distinction de casse ; les lettres russes е et ё restent distinctes. server est l’identifiant du serveur dans servers[].id ; class_key est le code de classe (slug de /character-classes). Sans filtre, envoyez {}.
Les entrées de la liste contiennent id, name, guild, level, gear_score, class, race, faction et server. class et race sont des codes, pas des libellés traduits. Les personnages et serveurs masqués ou supprimés sont exclus.
La réponse détaillée contient aussi greatness, updated_at et equipment. Chaque entrée d’équipement comporte position, place et item. Pour un objet absent de la base, item.id vaut null et unknown vaut true ; ses caractéristiques peuvent néanmoins être présentes. updated_at est l’heure de la source sans décalage horaire.
Exemples de requêtes
curl -X POST 'https://api.allodswiki.ru/api/v2/public/items' -H 'X-Site: fr.allodswiki.ru' -H 'Content-Type: application/json' --data '{"page":1}'
curl -X POST 'https://api.allodswiki.ru/api/v2/public/quests' -H 'X-Site: fr.allodswiki.ru' -H 'Content-Type: application/json' --data '{"page":1,"level_min":60,"level_max":70,"faction":"league","sort":"level","desc":true}'
curl 'https://api.allodswiki.ru/api/v2/public/character-classes' -H 'X-Site: fr.allodswiki.ru'
curl 'https://api.allodswiki.ru/api/v2/public/talents/warrior' -H 'X-Site: fr.allodswiki.ru'
curl -X POST 'https://api.allodswiki.ru/api/v2/public/armory/avatars' -H 'X-Site: fr.allodswiki.ru' -H 'Content-Type: application/json' --data '{}'
Réponses et limites
Les requêtes réussies renvoient HTTP 200 et du JSON sans enveloppe commune supplémentaire. Les champs détaillés et les infobulles dépendent du type de ressource ; une infobulle est une réponse distincte et plus courte.
/zones/{id} peut renvoyer HTTP 200 avec {"redirect_id": 123} lorsqu’une sous-zone appartient à une zone principale. Poursuivez la lecture avec cet identifiant.
Les erreurs utilisent {"error": {"code": "…", "message": "…"}}. Avec HTTP 422 validation_failed, error.fields contient les erreurs de paramètres. HTTP 404 game_resource_not_found indique une ressource indisponible, armory_character_not_found un personnage, talent_layout_not_found une configuration.
X-RateLimit-Limit indique la limite actuelle de requêtes et X-RateLimit-Remaining le nombre de requêtes restantes. Après HTTP 429 too_many_requests, attendez selon Retry-After ; X-RateLimit-Reset indique l’instant de réinitialisation en secondes Unix.