Construit sur le SteamTools API
Les mêmes points de terminaison utilisés par la page d'accueil, exposés en tant que HTTP simple. Pas d'authentification, pas de SDK, pas de verrouillage du fournisseur - il suffit de curl depuis le terminal.
Rechercher dans le catalogue Steam
/api/searchRenvoie jusqu'à 10 résultats correspondant à une requête : soit un nom de jeu, soit un App ID numérique. Les requêtes numériques sont recherchées via le point de terminaison appdetails de Steam, elles renvoient donc toujours l'enregistrement canonique.
Query parameters
- query
- Terme de recherche en texte libre ou numérique App ID.
Exemple de demande
curl -s "https://steamtools.games/api/search?query=portal" | jqGénérer la paire manifest + Lua
/api/generateVérifie le App ID par rapport au magasin Steam, puis renvoie les CDN canoniques URL pour les fichiers .manifest et .lua. Des branches autres que publiques doivent exister pour ce App ID sur Steam.
Request body
- appId
- Numérique Steam App ID.
- branch
- Étiquette de nom de fichier facultative. La valeur par défaut est publique. Les packages en amont sont presque toujours publiés publiquement, quel que soit ce domaine.
Exemple de demande
curl -s -X POST "https://steamtools.games/api/generate" \
-H "Content-Type: application/json" \
-d '{"appId": "400", "branch": "public"}' | jqExemple de réponse
{
"code": 0,
"message": "ok",
"data": {
"appId": "400",
"branch": "public",
"gameName": "Portal",
"gameImage": "https://shared.cloudflare.steamstatic.com/store_item_assets/steam/apps/400/capsule_231x87.jpg",
"downloadUrl": "https://steamtools.games/api/files/400/zip",
"luaUrl": "https://steamtools.games/api/files/400/lua",
"keyVdfUrl": "https://steamtools.games/api/files/400/key",
"instructions": [
"1. Click Download ZIP — the package contains 400_public.lua, key.vdf, and a README.",
"2. Copy the .lua and key.vdf into your SteamTools install root (same folder as the executable).",
"3. Restart SteamTools and the game will appear in your library.",
"4. Branches available for this App ID: public."
],
"generatedAt": "2026-06-30T12:34:56.000Z"
}
}JSON avec manifestUrl, luaUrl, gameName, gameImage et instructions d'installation par étape.
Limites de taux et utilisation équitable
est limitée à une requête toutes les 300 ms par IP ; la génération est limitée à une requête toutes les 1,5 s. Il n'y a pas de quota journalier. Si vous avez besoin d'un débit plus élevé, exécutez votre propre instance : le projet est open source.
OpenAPI 3.1
Le schéma complet est disponible sous forme de fichier statique JSON – parfait pour se connecter à Postman, Insomnia ou à votre linter CI.
Télécharger openapi.jsonFoire aux questions
- Ai-je besoin d’une clé API ?
- Non. Les points de terminaison sont publics, gratuits et non authentifiés. Nous limitons le débit par IP pour garder les lumières allumées.
- Puis-je l'utiliser dans un produit commercial ?
- Oui, à condition de respecter les conditions d'utilisation de Steam et de ne pas reconditionner les fichiers manifestes derrière des publicités ou un paywall.
- Pourquoi JSON au lieu de XML ?
- JSON est le plus petit dénominateur commun. La forme reflète ce que le générateur de page d'accueil renvoie déjà, de sorte que tout client qui parle à l'un peut parler à l'autre.