Construído no SteamTools API
Os mesmos endpoints que a página inicial usa, expostos como HTTP simples. Sem autenticação, sem SDK, sem dependência de fornecedor – basta enrolar no terminal.
Pesquise no catálogo Steam
/api/searchRetorna até 10 resultados que correspondem a uma consulta — seja um nome de jogo ou um App ID numérico. As consultas numéricas são pesquisadas por meio do endpoint appdetails do Steam, portanto, sempre retornam o registro canônico.
Query parameters
- query
- Termo de pesquisa de texto livre ou numérico App ID.
Exemplo de requisição
curl -s "https://steamtools.games/api/search?query=portal" | jqGere o par manifesto + Lua
/api/generateVerifica o App ID em relação ao armazenamento Steam e, em seguida, retorna os CDN canônicos URLs para os arquivos .manifest e .lua. Devem existir ramificações diferentes das públicas para esse App ID em Steam.
Request body
- appId
- Numérico Steam App ID.
- branch
- Rótulo de nome de arquivo opcional. O padrão é público. Os pacotes upstream são quase sempre lançados ao público, independentemente deste campo.
Exemplo de requisição
curl -s -X POST "https://steamtools.games/api/generate" \
-H "Content-Type: application/json" \
-d '{"appId": "400", "branch": "public"}' | jqExemplo de resposta
{
"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"
}
}Objeto JSON com manifestUrl, luaUrl, gameName, gameImage e instruções de instalação por etapa.
Limites de taxa e uso justo
é limitada para uma solicitação a cada 300 ms por IP; gerar é limitado a uma solicitação a cada 1,5 s. Não há cota diária. Se você precisar de maior rendimento, execute sua própria instância — o projeto é de código aberto.
OpenAPI 3.1
O esquema completo está disponível como um arquivo estático JSON - perfeito para conectar ao Postman, Insomnia ou ao seu linter CI.
Baixar openapi.jsonPerguntas frequentes
- Preciso de uma chave API?
- Não. Os endpoints são públicos, gratuitos e não autenticados. Limitamos a taxa por IP para manter as luzes acesas.
- Posso usar isso em um produto comercial?
- Sim, contanto que você respeite os termos de serviço do Steam e não reempacote os arquivos de manifesto atrás de anúncios ou acesso pago.
- Por que JSON em vez de XML?
- JSON é o menor denominador comum. O formato reflete o que o gerador da homepage já retorna, para que qualquer cliente que fale com um possa falar com o outro.