API
Une API JSON gratuite en lecture seule et des widgets iframe pour les wikis et outils externes qui veulent afficher les données, images ou modèles 3D d'un monstre de ce site. Lisez les mentions légales avant d'utiliser des assets visuels dans un autre projet.
URL de base et versionnage
Tous les points d'entrée sont sous l'URL ci-dessous. Le préfixe v1 est un contrat stable : les champs existants ne sont jamais renommés ni supprimés sans passer à une nouvelle version.
https://dqmj1.wiki/api/v1/Points d'entrée
| GET | /api/v1/meta | API version, species count, supported languages |
| GET | /api/v1/families | The 8 monster families, names in 5 languages |
| GET | /api/v1/monsters | Paginated list (filters: family, rank; params: cursor, limit) |
| GET | /api/v1/monsters/{id} | Full monster sheet (names, stats, images, model, resistances...) |
| GET | /api/v1/monsters/{id}/model | 3D model metadata (glTF URL, embed URL) |
| GET | /api/v1/monsters/{id}/fusions | Special recipes, generic fusion examples, used-as-parent list |
| GET | /api/v1/skills/{id} | Skill sheet (name, description, point tiers) |
| GET | /api/v1/chests | Chests loot tables (tiers A, B, C), 65 maps, 52 fixed rewards |
| GET | /api/v1/chests/3d | 76 physical 3D chests extracted from map scripts with exact X, Y, Z world coordinates, yaw, and loot tiers (params: map) |
| GET | /api/v1/wild-encounters | Complete wild encounter tables across 66 maps with Day/Night/Rain/Storm weather cycles (.enct, params: map, monster) |
| GET | /api/v1/battle-arenas | 83 distinct 3D battle arena stages (bd*, bf*, bh*, be*) linked to maps and monsters (params: map, monster) |
| GET | /api/v1/items | Item catalog (126 items, buy/sell prices, reward sources) |
| GET | /api/v1/items/{id} | Item sheet with detailed chest and fixed reward sources |
| GET | /api/v1/scout-rates | Scout / capture rates and ROM formula (params: monster, scoutable) |
| GET | /api/v1/drops | Post-battle item drops and drop rate table (params: monster, item) |
| GET | /api/v1/ai-patterns | Combat AI behavior patterns (131 patterns, 256 actions, params: pattern, action) |
| GET | /api/v1/animations | 3D animations catalogue and combat round timings (1,107 clips, 277 models, params: monster, model, role, slot) |
| GET | /api/v1/music | Musiques du jeu reconstruites depuis les séquences SSEQ de la ROM (fichier SSEQ, numéro de BGM du moteur, contexte de carte, notes, pistes, archive d'échantillons) ; la ROM ne contient aucun titre de piste. |
| GET | /api/v1/jingles | Authentic fanfares and event jingles (ME, 19 tracks: ROM symbol, source type, duration, source audio URL) |
| GET | /api/v1/sfx | Sound effects extracted from the ROM (292 sounds: combat spells & attacks, system menus, exploration, cutscenes; query params: category, subcategory, q) |
| GET | /api/v1/sfx/categories | List available SFX identifiers grouped by categories and subcategories (query param: category) |
| GET | /api/v1/scenes | Scènes 3D interactives, arènes de combat et objets de décor (184 modèles avec noms authentiques, lieux et URL glTF) |
| GET | /api/v1/artworks | Fullscreen game artworks and cinematics (.d16, 40 images; params: category, lang, q) |
| GET | /api/v1/spell-effects | Spell visual effects (.efc) & combat calculation parameters (256 spells; params: ability_id, has_scaling, q) |
| GET | /api/v1/monster-attacks | Calculated attack curve per level (1-99) for all 211 monsters (AbilityTbl.bin & EnmyKindTbl.bin; params: monster, lang) |
| GET | /api/v1/story-timeline | Chronological storyline across 5 narrative acts, chapters, maps, and unlocks (params: act, lang) |
| GET | /api/v1/story-scripts | Decompiled .evt event scripts, 3,179 Japanese developer comments (0xaa), and scenario flags (params: map, category) |
| GET | /api/v1/cutscenes | Decompiled cutscenes (244 demo scripts, 644 3D camera shots, multilingual dialogues in 5 languages; params: id, act, category, has_dialogue, lang, q) |
| GET | /api/v1/spells | 167 real spells and abilities: MP cost, damage range, wisdom thresholds, unlocking skills (params: lang) |
| GET | /api/v1/spells/{id} | One spell with the monsters that start with its skills |
| GET | /api/v1/islands | The 7 islands: zones, dungeons and wild monsters with day/night (params: lang) |
| GET | /api/v1/shops | Shop stock lists: items, prices and game progress window (params: lang) |
| GET | /api/v1/battles | Scripted boss, colosseum and shrine battles by map (params: map, lang) |
| GET | /api/v1/resistances | Resistance categories and the monsters vulnerable, immune, reflecting or healed (params: lang) |
{id} est l'identifiant interne du monstre affiché dans les URL de ce site (ex. m000 pour Gluant). Aucune clé d'API n'est requise ; toutes les réponses autorisent les requêtes depuis n'importe quel site.
Exemple d'appel
curl https://dqmj1.wiki/api/v1/monsters/m000Exemple de réponse
{
"id": "m000",
"speciesId": 1,
"rank": "F",
"family": "slime",
"names": { "en": "Slime", "fr": "Gluant", "de": "Schleim", "it": "Slime", "es": "Limo" },
"images": {
"icon": "https://dqmj1.wiki/api/assets/images/icons/monsters/m000.png",
"preview": "https://dqmj1.wiki/api/assets/models/previews/m000.webp"
},
"model": {
"gltf": "https://dqmj1.wiki/api/assets/models/web-gltf/animated/m000/m000.gltf",
"animated": true
},
"stats": {
"caps": { "hp": 910, "mp": 600, "attack": 820, "defense": 900, "agility": 800, "wisdom": 840 },
"source": "rom-verified"
},
"innateSkill": { "id": 102, "names": { "en": "Slimer", "fr": "Pot de glu", "...": "..." } },
"resistances": [],
"traits": ["Critical Massacre"],
"nicknames": ["Slimer", "Slimo", "Mr Slim"],
"slug": "slime",
"wikiUrl": "https://dqmj1.wiki/monsters/m000-slime",
"urls": {
"en": "https://dqmj1.wiki/monsters/m000-slime",
"fr": "https://dqmj1.wiki/fr/monstres/m000-slime",
"de": "https://dqmj1.wiki/de/monster/m000-slime",
"it": "https://dqmj1.wiki/it/mostri/m000-slime",
"es": "https://dqmj1.wiki/es/monstruos/m000-slime"
},
"legal": {
"notice": "Dragon Quest Monsters: Joker [...] property of Square Enix [...]",
"attributionRequired": true,
"termsUrl": "https://dqmj1.wiki/legal"
}
}Les erreurs suivent une forme uniforme (error), avec un code de statut HTTP standard (404, 400) et un champ code stable.
{ "error": { "code": "not_found", "message": "No monster with id \"m999\"." } }Widgets iframe
Pour un bloc visuel prêt à l'emploi plutôt que du JSON brut, intégrez l'une de ces pages dans un <iframe>. Elles portent leur propre mention d'attribution permanente.
| GET | /embed/monster/{id} | Compact card: name, rank/family, stats, innate skill |
| GET | /embed/monster/{id}/model | 3D model viewer only (orbit controls) |
| GET | /embed/fusion/{id} | Fusion lineage diagram |
Paramètres : ?lang= (en, fr, de, it, es) et ?compact=1 (carte compacte, uniquement sur le widget fiche monstre). Le widget signale sa vraie hauteur à la page parente via postMessage, pour dimensionner l'iframe sans barre de défilement interne :
<iframe id="dqmj1" src="https://dqmj1.wiki/embed/monster/m000" width="320" height="0" frameborder="0"></iframe>
<script>
window.addEventListener("message", (e) => {
if (e.data?.type === "dqmj1-wiki:resize") {
document.getElementById("dqmj1").height = e.data.height;
}
});
</script>Cache, limitation de débit, disponibilité
- Les réponses sont mises en cache (les données ne changent qu'à un redéploiement) ; mettez-les en cache de votre côté si vous faites beaucoup de requêtes.
- Pas de clé d'API, mais les requêtes peuvent être limitées par IP si l'usage pose problème.
- C'est un projet personnel et non commercial, sans garantie de disponibilité.