API publique V1
Documentation développeur

Construisez avec les données publiques de Temtem Hub.

Une API en lecture seule pour alimenter un widget, un bot, un overlay ou un outil communautaire sans accéder aux données privées des membres.

URL de base https://api.temtemhub.com/v1
JSON HTTPS Lecture seule Clé optionnelle CORS public

Démarrage rapide

Votre premier appel

Toutes les routes documentées acceptent GET et répondent en JSON. Les appels anonymes fonctionnent immédiatement ; une clé personnelle permet d’identifier votre application et de disposer de quotas dédiés.

JavaScript côté serveur
const response = await fetch(
  'https://api.temtemhub.com/v1/saipark/GetCurrent?lang=fr',
  { headers: { 'X-API-Key': process.env.TEMTEM_HUB_API_KEY } }
);

if (!response.ok) {
  throw new Error(`HTTP ${response.status}`);
}

const saipark = await response.json();
cURL
curl --request GET \
  --url 'https://api.temtemhub.com/v1/news/GetLast?limit=3&lang=fr' \
  --header 'Accept: application/json'

Identification

Une clé par application.

Créez une application dans Paramètres du compte → Avancé → Accès API. La clé complète n’est affichée qu’une fois et peut être renouvelée ou révoquée à tout moment.

En-tête recommandé
X-API-Key: VOTRE_CLE
Alternative Bearer
Authorization: Bearer VOTRE_CLE
Secret côté serveur uniquement

N’intégrez pas votre clé dans une page web publique, une extension ou une application distribuée : leurs utilisateurs pourraient la récupérer. Faites l’appel depuis votre serveur, ou utilisez l’accès anonyme lorsqu’un appel doit partir directement du navigateur.

Utilisation responsable

Une API gratuite, pensée pour être partagée.

Temtem Hub finance et héberge cette API. Quelques habitudes simples permettent de la garder disponible pour tout le monde.

01

Mettez les réponses en cache

Respectez Cache-Control et les recommandations indiquées pour chaque route. Les cartes n’ont pas besoin d’être rechargées toutes les secondes.

02

Évitez le polling agressif

Regroupez les appels et arrêtez-les quand votre interface n’est plus visible. Une réponse 429 signifie qu’il faut ralentir.

03

Citez la source

Quand le contexte le permet, indiquez que les données proviennent de Temtem Hub et ajoutez un lien vers le site.

04

N’enregistrez pas les clés de partage

Une clé d’overlay appartient à son propriétaire. Ne l’indexez pas et ne la rendez pas publique sans son accord.

Périmètre public

Seules les routes présentes sur cette page sont destinées aux intégrations tierces. Les autres contrôleurs de la V1 servent aux applications Temtem Hub et peuvent exiger une session, un jeton CSRF ou des permissions particulières.

Quotas actuels

L’accès anonyme est limité à 60 requêtes par minute et 1 000 par jour et par IP. Une application identifiée dispose par défaut de 120 requêtes par minute et 5 000 par jour. L’overlay de compteur conserve une limite anonyme adaptée à son rafraîchissement. Les en-têtes X-RateLimit-* indiquent le quota restant.

Contrat HTTP

Réponses et erreurs

Les anciennes routes de données renvoient directement un objet ou un tableau JSON. Les routes plus récentes peuvent utiliser une enveloppe avec success, message et data.

200La requête a réussi.
400Un paramètre est absent ou invalide.
403L’origine ou la ressource demandée n’est pas autorisée.
404La ressource publique n’existe pas.
405La méthode HTTP n’est pas acceptée.
429Trop de requêtes : attendez avant de recommencer.
500Une erreur interne temporaire est survenue.
Stabilité de la V1

Nous essayons de conserver les champs existants. De nouveaux champs peuvent être ajoutés : votre intégration doit ignorer ceux qu’elle ne connaît pas. Une évolution incompatible importante passera par une nouvelle version.

Ressources

Système

GET

État de l’API

Vérifie que la version 1 de l’API répond.

https://api.temtemhub.com/v1
Exemple de requête
GET https://api.temtemhub.com/v1
Exemple de réponsestructure abrégée
{\n  "name": "Temtem Hub API",\n  "version": "v1",\n  "status": "online"\n}

Cache et fréquence : Une vérification par minute suffit.

Ressources

Actualités

GET

Lister les actualités

Retourne les actualités publiées, avec pagination et filtres facultatifs.

https://api.temtemhub.com/v1/news/GetAll

Paramètres de requête

limit entier

Nombre de résultats, de 1 à 30. Valeur par défaut : 10.

offset entier

Décalage de pagination. Valeur par défaut : 0.

lang texte

Langue souhaitée : fr, en, es ou de. Valeur par défaut : fr.

site slug

Limite les résultats à un site Temtem Hub.

game slug

Limite les résultats à un jeu.

type texte

Type de contenu : article ou post.

featured booléen

Filtre les contenus mis en avant.

Exemple de requête
GET https://api.temtemhub.com/v1/news/GetAll?limit=5&lang=fr&game=temtem
Exemple de réponsestructure abrégée
[\n  {\n    "id": 42,\n    "title": "Titre de l’actualité",\n    "slug": "titre-de-l-actualite",\n    "published_at": 1788170400\n  }\n]

Cache et fréquence : Mettez la réponse en cache au moins 60 secondes.

GET

Dernières actualités

Retourne les dernières actualités publiées.

https://api.temtemhub.com/v1/news/GetLast

Paramètres de requête

limit entier

Nombre de résultats, de 1 à 30. Valeur par défaut : 1.

lang texte

Langue souhaitée : fr, en, es ou de.

Exemple de requête
GET https://api.temtemhub.com/v1/news/GetLast?limit=3&lang=fr
Exemple de réponsestructure abrégée
[\n  {\n    "id": 42,\n    "title": "Titre de l’actualité",\n    "published_at": 1788170400\n  }\n]

Cache et fréquence : Mettez la réponse en cache au moins 60 secondes.

GET

Lire une actualité

Retourne une actualité publiée et ses informations publiques.

https://api.temtemhub.com/v1/news/GetById

Paramètres de requête

newsId entier requis

Identifiant de l’actualité.

lang texte

Langue souhaitée : fr, en, es ou de.

Exemple de requête
GET https://api.temtemhub.com/v1/news/GetById?newsId=42&lang=fr
Exemple de réponsestructure abrégée
{\n  "id": 42,\n  "title": "Titre de l’actualité",\n  "content": "…",\n  "categories": [],\n  "games": [],\n  "media": []\n}

Cache et fréquence : Une actualité publiée peut être conservée plusieurs minutes.

GET

Réponses publiques

Retourne les réponses sociales publiques associées à une actualité.

https://api.temtemhub.com/v1/news/GetComments

Paramètres de requête

id entier requis

Identifiant de l’actualité.

limit entier

Nombre de résultats, de 1 à 50. Valeur par défaut : 10.

offset entier

Décalage de pagination.

Exemple de requête
GET https://api.temtemhub.com/v1/news/GetComments?id=42&limit=10
Exemple de réponsestructure abrégée
[\n  {\n    "id": 128,\n    "news_id": 42,\n    "content": "Une réponse publique",\n    "author_name": "Joueur"\n  }\n]

Cache et fréquence : Mettez la réponse en cache au moins 60 secondes.

Ressources

Saipark

GET

Semaine actuelle

Retourne la rotation Saipark actuellement active.

https://api.temtemhub.com/v1/saipark/GetCurrent

Paramètres de requête

lang texte

Langue souhaitée : fr, en, es ou de.

Exemple de requête
GET https://api.temtemhub.com/v1/saipark/GetCurrent?lang=fr
Exemple de réponsestructure abrégée
{\n  "id": 320,\n  "starts_at": 1788134400,\n  "ends_at": 1788739199,\n  "temtems": []\n}

Cache et fréquence : La rotation évolue rarement : un cache de 15 minutes est recommandé.

Ressources

Vidéos

GET

Lister les vidéos

Retourne les vidéos communautaires publiées sur Temtem Hub.

https://api.temtemhub.com/v1/youtube/GetAll

Paramètres de requête

limit entier

Nombre de résultats, de 1 à 60. Valeur par défaut : 24.

offset entier

Décalage de pagination.

lang texte

Langue souhaitée : fr, en, es ou de.

game_id entier

Filtre par identifiant de jeu.

group texte

Filtre par groupe de catégories.

category_id entier

Filtre par catégorie.

search texte

Recherche dans les vidéos publiées.

sort texte

Tri : latest ou featured_latest.

Exemple de requête
GET https://api.temtemhub.com/v1/youtube/GetAll?limit=12&lang=fr&sort=latest
Exemple de réponsestructure abrégée
{\n  "items": [\n    {\n      "id": "ID_YOUTUBE",\n      "internal_id": 15,\n      "title": "Titre de la vidéo"\n    }\n  ],\n  "total": 1\n}

Cache et fréquence : Mettez la réponse en cache au moins 5 minutes.

GET

Dernière vidéo

Retourne la dernière vidéo communautaire publiée.

https://api.temtemhub.com/v1/youtube/GetLast

Paramètres de requête

lang texte

Langue souhaitée : fr, en, es ou de.

Exemple de requête
GET https://api.temtemhub.com/v1/youtube/GetLast?lang=fr
Exemple de réponsestructure abrégée
{\n  "id": "ID_YOUTUBE",\n  "internal_id": 15,\n  "title": "Titre de la vidéo"\n}

Cache et fréquence : Mettez la réponse en cache au moins 5 minutes.

GET

Catégories vidéo

Retourne les catégories contenant au moins une vidéo publique.

https://api.temtemhub.com/v1/youtube/GetCategories

Paramètres de requête

lang texte

Langue souhaitée : fr, en, es ou de.

game_id entier

Filtre facultatif par identifiant de jeu.

Exemple de requête
GET https://api.temtemhub.com/v1/youtube/GetCategories?lang=fr
Exemple de réponsestructure abrégée
[\n  {\n    "id": 3,\n    "name": "Guides",\n    "video_count": 12\n  }\n]

Cache et fréquence : Ces données peuvent être conservées une heure.

Ressources

Cartes

GET

Créatures d’une carte

Retourne la carte, ses marqueurs et les rencontres publiques configurées.

https://api.temtemhub.com/v1/world/GetCreatureMap

Paramètres de requête

scope texte requis

Portée demandée : map ou zone.

id entier requis

Identifiant de la carte ou de la zone.

game slug

Jeu concerné. Valeur par défaut : temtem.

lang texte

Langue souhaitée : fr, en, es ou de.

Exemple de requête
GET https://api.temtemhub.com/v1/world/GetCreatureMap?scope=map&id=1&game=temtem&lang=fr
Exemple de réponsestructure abrégée
{\n  "scope": "map",\n  "id": 1,\n  "name": "Nom de la carte",\n  "markers": [],\n  "creatures": []\n}

Cache et fréquence : Ces données peuvent être conservées une heure.

GET

Calque d’une carte

Retourne les marqueurs publics d’un calque PNJ ou autocollants.

https://api.temtemhub.com/v1/world/GetMapLayer

Paramètres de requête

scope texte requis

Portée demandée : map ou zone.

id entier requis

Identifiant de la carte ou de la zone.

layer texte requis

Calque demandé : npc ou sticker.

game slug

Jeu concerné. Valeur par défaut : temtem.

lang texte

Langue souhaitée : fr, en, es ou de.

Exemple de requête
GET https://api.temtemhub.com/v1/world/GetMapLayer?scope=map&id=1&layer=npc&game=temtem&lang=fr
Exemple de réponsestructure abrégée
{\n  "scope": "map",\n  "id": 1,\n  "layer": "npc",\n  "markers": []\n}

Cache et fréquence : Ces données peuvent être conservées une heure.

Ressources

Compteurs de chasse

GET

État d’un overlay

Retourne l’état minimal d’une chasse partageable. Une clé publique peut être nécessaire.

https://api.temtemhub.com/v1/hunts/Overlay

Paramètres de requête

id entier requis

Identifiant de la chasse.

key texte

Clé de partage fournie par le propriétaire lorsque la chasse n’est pas publique.

Exemple de requête
GET https://api.temtemhub.com/v1/hunts/Overlay?id=123
Exemple de réponsestructure abrégée
{\n  "success": true,\n  "message": "",\n  "data": {\n    "id": 123,\n    "count": 1842,\n    "name": "Ma chasse",\n    "status": "active"\n  }\n}

Cache et fréquence : Ne descendez pas sous un appel toutes les 2 secondes par overlay.