Getting Started

The DLC Depot Checker API provides programmatic access to Steam game analysis, DLC checking, and webhook management.

⚠️ API Key Required: All endpoints require authentication via API key. Include it in your requests using:
  • X-API-Key header
  • Authorization: Bearer <key> header
  • ?api_key=<key> query parameter

Base URL

https://manihub.xyz/api/steam

Response Format

All responses are JSON with the following structure:

{
  "success": true,
  "data": { ... },
  "timestamp": "2025-01-27T12:00:00.000Z"
}

Game Information

Retrieve detailed information about Steam games including metadata, DRM detection, and third-party account requirements.

GET /game/:appId/info
Get comprehensive game information
Fetches game details from Steam Store API with intelligent caching. The system checks the local database first for faster responses, then falls back to Steam API if the game isn't cached or if forceRefresh is enabled.

Features:
  • Automatic DRM detection (Denuvo, SecuROM, etc.)
  • Third-party account requirement detection (Epic Games, Ubisoft Connect, etc.)
  • Developer and publisher information
  • Release date and game type
  • Genre and category information
appId (number, required, path parameter) - Steam App ID (e.g., 730 for Counter-Strike 2)
forceRefresh (boolean, optional, query parameter) - Force refresh from Steam API, bypassing cache. Use when you need the latest information.

Example Request

# Basic request
curl -X GET "https://manihub.xyz/api/steam/game/730/info" \
  -H "X-API-Key: YOUR_API_KEY"

# Force refresh from Steam API
curl -X GET "https://manihub.xyz/api/steam/game/730/info?forceRefresh=true" \
  -H "X-API-Key: YOUR_API_KEY"

Example Response

{
  "success": true,
  "game": {
    "appId": "730",
    "name": "Counter-Strike 2",
    "type": "game",
    "developers": ["Valve"],
    "publishers": ["Valve"],
    "releaseDate": "Aug 21, 2012",
    "genres": ["Action", "Free to Play"],
    "categories": ["Multi-player", "Online PvP"],
    "drm": {
      "hasDRM": false,
      "hasDenuvo": false,
      "drmTypes": [],
      "antiTamperTypes": []
    },
    "thirdPartyAccounts": []
  },
  "fromDatabase": true,
  "cached": true,
  "timestamp": "2025-01-27T12:00:00.000Z"
}
💡 Caching: Game information is cached in the database and Redis for fast subsequent requests. Use forceRefresh=true only when you need the absolute latest information from Steam.

DLC Analysis & Manifesting Suitability

Analyze Steam games and their DLCs to determine depot status and manifesting suitability. The system checks if games have downloadable content (depots) and evaluates whether they're suitable for manifesting/downloading.

💡 What are Depots? Depots are Steam's way of organizing downloadable game content. Games with depots have actual files that can be downloaded. DLCs without depots are typically cosmetic items, unlocks, or in-game currency that don't require file downloads.
GET /game/:appId/dlcs/list
Get list of DLCs without depot checking (fast). This endpoint only retrieves DLC App IDs and names without analyzing depot information. Use this for quick DLC listing when you don't need depot analysis.
appId (number, required) - Steam App ID of the game
POST /game/:appId/dlcs
Full DLC Analysis with Manifesting Suitability Check
Performs comprehensive analysis including:
  • Fetches all DLCs for the game
  • Checks depot status for each DLC (determines if DLC has downloadable content)
  • Checks if main game has depots
  • Calculates manifesting suitability score (0-100%)
  • Provides recommendation for manifesting/download
appId (number, required, path parameter) - Steam App ID of the game
checkDepots (boolean, default: true) - Whether to check depot status for DLCs and main game. Set to false for faster results without depot analysis.
includeWithDepots (boolean, default: false) - Include DLCs with depots in the response. By default, only DLCs without depots are returned.

Manifesting Suitability Explained

The manifesting suitability score determines if a game is suitable for downloading/manifesting via Steam CDN. The score is calculated based on:

⚠️ Score Interpretation:
  • 80-100%: Excellent - Highly suitable for manifesting
  • 60-79%: Good - Suitable for manifesting
  • 40-59%: Moderate - May have limited downloadable content
  • 0-39%: Poor - Not recommended for manifesting

Example Request

curl -X POST "https://manihub.xyz/api/steam/game/730/dlcs" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: YOUR_API_KEY" \
  -d '{
    "checkDepots": true,
    "includeWithDepots": true
  }'

Example Response

{
  "success": true,
  "game": {
    "appId": 730,
    "name": "Counter-Strike 2",
    "type": "game",
    "developers": ["Valve"],
    "publishers": ["Valve"]
  },
  "gameAppId": "730",
  "summary": {
    "totalDLCs": 60,
    "dlcsWithoutDepots": 45,
    "dlcsWithDepots": 15,
    "unknownStatus": 0
  },
  "dlcs": [...],
  "dlcsWithoutDepots": [...],
  "dlcsWithDepots": [...],
  "manifesting": {
    "suitable": true,
    "score": 85,
    "level": "excellent",
    "recommendation": "Highly suitable for manifesting - game has depots and downloadable DLCs",
    "factors": [
      {
        "factor": "Main game has depots",
        "points": 40,
        "status": "excellent"
      },
      {
        "factor": "Game type and platform support",
        "points": 30,
        "status": "excellent"
      },
      {
        "factor": "Has 15 DLC(s) with depots",
        "points": 20,
        "status": "good"
      },
      {
        "factor": "Low ratio of cosmetic DLCs",
        "points": 10,
        "status": "good"
      }
    ],
    "gameDepots": {
      "appId": 730,
      "hasDepots": true,
      "suitableForManifesting": true,
      "packages": 5,
      "platforms": {
        "windows": true,
        "mac": true,
        "linux": true
      },
      "type": "game",
      "reason": "Game has depots and is suitable for manifesting/download"
    }
  },
  "timestamp": "2025-01-27T12:00:00.000Z"
}
📝 Notes:
  • Depot checking may take time for games with many DLCs (rate limiting protection)
  • Results are cached for 30 minutes to improve performance
  • Progress tracking is available via WebSocket or progress ID polling
  • Manifesting suitability is only calculated when checkDepots: true

Game Search

Search for Steam games by name or App ID. Uses Steam's official search API to find matching games.

GET /search
Search Steam games
Searches the Steam Store for games matching your query. Returns a list of games with their App IDs, names, and pricing information. Results are sorted by relevance (most relevant first).

Search Behavior:
  • Searches game names, not DLCs (filters to type: game)
  • Case-insensitive matching
  • Partial name matching supported
  • Returns up to 10 most relevant results
q (string, required, query parameter) - Search query (game name or App ID). Can be partial name like "counter" or full name like "Counter-Strike 2"

Example Request

# Search by game name
curl -X GET "https://manihub.xyz/api/steam/search?q=counter-strike" \
  -H "X-API-Key: YOUR_API_KEY"

# Search by App ID (will return exact match if found)
curl -X GET "https://manihub.xyz/api/steam/search?q=730" \
  -H "X-API-Key: YOUR_API_KEY"

Example Response

{
  "success": true,
  "game": {
    "appId": 730,
    "name": "Counter-Strike 2",
    "allMatches": [
      {
        "appId": 730,
        "name": "Counter-Strike 2",
        "price": null,
        "currency": null
      }
    ]
  },
  "timestamp": "2025-01-27T12:00:00.000Z"
}
💡 Tip: If you know the exact App ID, use /game/:appId/info instead for faster, direct access without searching.

User Webhooks

Personal Discord Webhooks for Your Own Notifications
Create and manage your own Discord webhooks to receive real-time notifications about games and DLCs you're tracking. These webhooks are for your personal use - connect them to your own Discord servers/channels to get notifications about games you're interested in. Webhook URLs are encrypted and stored securely.

🔔 What You'll Receive: Your webhooks will automatically receive notifications when:
  • Games you're tracking get new DLCs detected
  • DLC analysis completes for games you've checked
  • Game information updates occur
Note: These are your personal webhooks - not for site-wide alerts or system notifications.
POST /user-webhooks
Create a new Discord webhook
Creates a webhook linked to your Discord channel. The webhook URL is encrypted before storage. You'll receive a short ID that can be used to manage the webhook.

Limits:
  • Free users: Up to 20 webhooks
  • Premium users: Unlimited webhooks
discordWebhookUrl (string, required, body) - Full Discord webhook URL from your Discord server settings (format: https://discord.com/api/webhooks/WEBHOOK_ID/WEBHOOK_TOKEN)
GET /user-webhooks
List all your webhooks
Returns a list of all webhooks you've created, including their status, creation date, and statistics.
DELETE /user-webhooks/:shortId
Delete a webhook
Permanently deletes a webhook by its short ID. This action cannot be undone.
shortId (string, required, path parameter) - Short ID of the webhook (e.g., "abc123")

Example Request

# Create webhook
curl -X POST "https://manihub.xyz/api/steam/user-webhooks" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: YOUR_API_KEY" \
  -d '{
    "discordWebhookUrl": "https://discord.com/api/webhooks/123456789/abcdefghijklmnopqrstuvwxyz"
  }'

# List webhooks
curl -X GET "https://manihub.xyz/api/steam/user-webhooks" \
  -H "X-API-Key: YOUR_API_KEY"

# Delete webhook
curl -X DELETE "https://manihub.xyz/api/steam/user-webhooks/abc123" \
  -H "X-API-Key: YOUR_API_KEY"

Example Response

{
  "success": true,
  "message": "Webhook created successfully",
  "webhook": {
    "id": "user_abc123",
    "shortId": "abc123",
    "shortUrl": "https://manihub.xyz/wh/abc123",
    "enabled": true,
    "createdAt": "2025-01-27T12:00:00.000Z",
    "successCount": 0,
    "failureCount": 0
  }
}
🔒 Security: Webhook URLs are encrypted using AES-256 encryption before storage. Only you (and staff with proper permissions) can view or manage your webhooks.

Ryuu API Integration

Access Ryuu.lol API through our proxy. Ryuu provides Steam game manifests and Lua scripts for game downloading. These endpoints are particularly useful for games that are suitable for manifesting (have depots).

⚠️ Manifesting Prerequisites: For best results, use the DLC analysis endpoint first to check if a game is suitable for manifesting. Games with high manifesting suitability scores (60%+) are more likely to have valid manifests available.
GET /ryuu/manifest/:appId
Get game manifest from Ryuu.lol
Downloads the Steam manifest file (ZIP format) for a game. Manifests contain information needed to download game files from Steam CDN. Returns binary data (ZIP file).

When to use:
  • Game has depots (check via DLC analysis first)
  • Game has high manifesting suitability score
  • You need to download game files via Steam CDN
appId (number, required, path parameter) - Steam App ID of the game
GET /ryuu/lua/:appId
Get Lua script from Ryuu.lol
Retrieves the Lua script used for game downloading. Lua scripts are plain text files that contain instructions for downloading and installing games.
appId (number, required, path parameter) - Steam App ID of the game
POST /ryuu/request-game/:appId
Request a game via Ryuu API (Premium)
Submits a request to Ryuu to generate manifest for a game. This is useful for games that don't have manifests yet but are suitable for manifesting.
POST /ryuu/request-update/:appId
Request manifest update (Premium)
Requests Ryuu to update an existing manifest for a game. Use when a game has been updated and you need the latest manifest.
POST /ryuu/update-game/:appId
Trigger game update (Premium)
Triggers Ryuu to update game information and regenerate manifest. Useful for forcing a refresh of game data.
💎 Premium Endpoints: The request and update endpoints require premium role. Manifest and Lua endpoints are available to all users. Check manifesting suitability first to determine if a game is worth requesting.

Example Request

# Get manifest (returns ZIP file)
curl -X GET "https://manihub.xyz/api/steam/ryuu/manifest/730" \
  -H "X-API-Key: YOUR_API_KEY" \
  --output manifest.zip

# Get Lua script
curl -X GET "https://manihub.xyz/api/steam/ryuu/lua/730" \
  -H "X-API-Key: YOUR_API_KEY"

# Request game (Premium)
curl -X POST "https://manihub.xyz/api/steam/ryuu/request-game/730" \
  -H "X-API-Key: YOUR_API_KEY"

Statistics

GET /statistics
Get database statistics including total games, DLCs, and analysis counts.

Error Handling

All errors follow a consistent format:

{
  "success": false,
  "error": "Error message",
  "timestamp": "2025-01-27T12:00:00.000Z"
}

HTTP Status Codes

Rate Limiting

API requests are rate limited to prevent abuse. Default limits:

Features