API Reference v0.1.0
Overview

The GameIntel API provides agent-native Steam market intelligence: game metadata, review sentiment, pricing history, change tracking, Japan-market signals, watchlists, alerts, webhooks, and operator health. All responses are JSON.

Source of truth

This page is a human-friendly overview. The live Swagger schema at /docs and raw schema at /openapi.json are the source of truth for the newest beta endpoints.

Base URL https://api.gameintel.app
API Key Auth

Header-based authentication

Most endpoints require an API key. You can pass it using either of two methods:

Method 1: X-API-Key header
Method 2: Authorization: Bearer <key> header

Public routes include /health and lightweight ops visibility such as /ops/status. In Swagger UI, use the built-in Authorize button once and test protected endpoints directly.

Example — X-API-Key header
curl https://api.gameintel.app/games/search?q=horror \
  -H "X-API-Key: gi_key_your_key_here"
Example — Bearer token
curl https://api.gameintel.app/games/search?q=horror \
  -H "Authorization: Bearer gi_key_your_key_here"
401 — Missing key
{ "detail": { "error": "API key required" } }
403 — Invalid or inactive key
{ "detail": "Invalid or inactive API key." }
429 — Rate limit exceeded
{ "detail": "Daily request limit exceeded. Resets at midnight UTC." }
Rate Limits

Rate limits are enforced per API key on a daily basis and reset at midnight UTC. When a key exceeds its quota, the API returns 429 Too Many Requests with a Retry-After header.

During the founding beta, limits are assigned per customer or plan rather than exposed as a fixed public pricing matrix. Live headers and live /openapi.json are the source of truth.

Plan Daily Requests Watchlist Limit Webhook Limit
Free 1000 10 1
Beta 2500 25 5
Pro 10000 100 20
Error Responses

Errors return a JSON object with a detail field describing the problem.

Error format
{ "detail": "Game not found" }
401 Missing API key — No X-API-Key header provided.
403 Invalid API key — The key doesn't exist or has been deactivated.
404 Not found — The requested game, tag, or resource doesn't exist in the database.
422 Validation error — Invalid query parameters (wrong type, out of range, etc.).
429 Rate limit exceeded — Daily request quota or per-minute limit hit. Wait and retry.
500 Internal server error — Something unexpected went wrong. Try again later.
What was added for the founding beta

The current beta goes beyond basic game lookup. These are the surfaces that make GameIntel usable inside real agent workflows.

Monitoring and workflow endpoints

GET /games/{steam_id}/changes adds time-window change tracking for price, sentiment, tags, and review summary snapshots.

GET /market/jp, GET /market/jp/trending, and GET /market/jp/games/{game_id} expose Japan-market support, JP review volume, and JP pricing context.

GET|POST /watchlist, GET /watchlist/alerts, and POST /watchlist/alerts/{alert_id}/read support tracked-game workflows.

GET|POST /webhooks, DELETE /webhooks/{webhook_id}, and POST /webhooks/{webhook_id}/test support delivery into downstream automations.

GET /ops/status and GET /ops/history/{job} expose lightweight operator visibility for the local collection pipeline.

Games

Search, retrieve, and analyze games in the database.

GET /games/search API Key

Search for games by name, filter by tags, and sort results. Returns paginated results with full game metadata including tags.

Query Parameters
q string Search query — matches game name (case-insensitive partial match) optional
tags string Comma-separated tag names to filter by (e.g. horror,indie) optional
sort string Sort by: name, release_date, metacritic_score "name"
page int Page number (≥ 1) 1
page_size int Results per page (1–100) 20
Request
curl https://api.gameintel.app/games/search\
  ?tags=horror,atmospheric\
  &sort=metacritic_score\
  &page_size=2
\
  -H "X-API-Key: gi_your_key"
Response
{
  "results": [
    {
      "id": 1938090,
      "name": "Signalis",
      "developer": "rose-engine",
      "release_date": "2022-10-27",
      "metacritic_score": 81,
      "positive_reviews": 18420,
      "negative_reviews": 1105,
      "tags": [
        { "name": "Horror", "vote_count": 842 },
        { "name": "Atmospheric", "vote_count": 731 }
      ]
    }
  ],
  "total": 342,
  "page": 1,
  "page_size": 2
}
GET /games/{steam_id} API Key

Retrieve full metadata for a single game by its Steam App ID. Includes developer, publisher, release date, review counts, estimated owners, average playtime, genres, and all associated tags with vote counts.

Path Parameters
steam_id int Steam App ID of the game required
Request
curl https://api.gameintel.app/games/1245620 \
  -H "X-API-Key: gi_your_key"
Response
{
  "id": 1245620,
  "name": "Elden Ring",
  "developer": "FromSoftware Inc.",
  "publisher": "Bandai Namco",
  "release_date": "2022-02-25",
  "metacritic_score": 94,
  "positive_reviews": 572841,
  "negative_reviews": 68230,
  "estimated_owners": "20M - 50M",
  "average_playtime": 6840,
  "genres": "Action, RPG",
  "tags": [
    { "id": 42, "name": "Souls-like", "vote_count": 3241 },
    { "id": 15, "name": "Open World", "vote_count": 2890 }
  ],
  "created_at": "2026-03-01T00:00:00Z",
  "updated_at": "2026-03-11T08:30:00Z"
}
GET /games/{steam_id}/similar API Key

Find games similar to the given game, scored by shared tag overlap. Results include a similarity score (0–1), the specific shared tags, and review data for each match.

Path Parameters
steam_id int Steam App ID of the source game required
Query Parameters
limit int Number of similar games to return (1–50) 10
Request
curl https://api.gameintel.app/games/1245620/similar\
  ?limit=3
\
  -H "X-API-Key: gi_your_key"
Response
{
  "game_id": 1245620,
  "game_name": "Elden Ring",
  "similar": [
    {
      "game_id": 374320,
      "name": "Dark Souls III",
      "similarity_score": 0.912,
      "shared_tags": ["Souls-like", "RPG", "Dark Fantasy"],
      "review_score": 0.891
    },
    {
      "game_id": 814380,
      "name": "Sekiro",
      "similarity_score": 0.874,
      "shared_tags": ["Souls-like", "Action"],
      "review_score": 0.872
    }
  ]
}
GET /games/{steam_id}/sentiment API Key

Get AI-analyzed review sentiment breakdown for a game. Returns an overall score and label, per-topic sentiment (gameplay, story, graphics, etc.), and lists of top praise and complaints extracted from player reviews.

Path Parameters
steam_id int Steam App ID of the game required
Request
curl https://api.gameintel.app/games/1245620/sentiment \
  -H "X-API-Key: gi_your_key"
Response
{
  "game_id": 1245620,
  "game_name": "Elden Ring",
  "overall_score": 0.89,
  "overall_label": "very_positive",
  "topics": {
    "gameplay": "excellent",
    "story": "good",
    "atmosphere": "excellent",
    "graphics": "good",
    "performance": "mixed",
    "audio": "excellent",
    "difficulty": "polarizing"
  },
  "top_praise": [
    "open world design",
    "boss variety",
    "build diversity"
  ],
  "top_complaints": [
    "PC performance",
    "late-game balance"
  ],
  "reviews_analyzed": 2500,
  "analyzed_at": "2026-03-10T14:22:00Z"
}
GET /games/{steam_id}/reviews API Key

Get the latest review summary for a game — total positive and negative counts plus an overall review score descriptor (e.g. "Overwhelmingly Positive").

Path Parameters
steam_id int Steam App ID of the game required
Request
curl https://api.gameintel.app/games/1245620/reviews \
  -H "X-API-Key: gi_your_key"
Response
{
  "game_id": 1245620,
  "game_name": "Elden Ring",
  "summary": {
    "id": 1,
    "game_id": 1245620,
    "total_positive": 572841,
    "total_negative": 68230,
    "review_score_desc": "Very Positive",
    "updated_at": "2026-03-11T06:00:00Z"
  }
}
GET /games/{steam_id}/pricing API Key

Retrieve the full pricing history for a game. Returns daily snapshots with currency, price in cents, discount percentage, and whether the game is free. Multi-region data when available.

Path Parameters
steam_id int Steam App ID of the game required
Request
curl https://api.gameintel.app/games/1245620/pricing \
  -H "X-API-Key: gi_your_key"
Response
{
  "game_id": 1245620,
  "game_name": "Elden Ring",
  "snapshots": [
    {
      "id": 4812,
      "game_id": 1245620,
      "currency": "USD",
      "price_cents": 5999,
      "discount_percent": 0,
      "is_free": false,
      "snapshot_date": "2026-03-11",
      "created_at": "2026-03-11T04:00:00Z"
    },
    {
      "id": 4201,
      "game_id": 1245620,
      "currency": "USD",
      "price_cents": 2999,
      "discount_percent": 50,
      "is_free": false,
      "snapshot_date": "2026-02-20",
      "created_at": "2026-02-20T04:00:00Z"
    }
  ]
}
Tags

Browse tags, discover trends, and track tag growth over time.

GET /tags API Key

List all tags in the database, ordered by the number of games tagged. No parameters — returns the full list with game counts.

Request
curl https://api.gameintel.app/tags \
  -H "X-API-Key: gi_your_key"
Response
[
  {
    "id": 1,
    "name": "Indie",
    "steam_tag_id": 492,
    "game_count": 4821
  },
  {
    "id": 2,
    "name": "Action",
    "steam_tag_id": 19,
    "game_count": 3902
  },
  // ... more tags
]
JP Market

Japan-specific market intelligence — overview stats, trending games, and per-game data for the Japanese market.

GET /market/jp API Key

Get an overview of the Japan market — total games tracked, top genres, average review sentiment, and key metrics specific to the Japanese gaming audience.

Request
curl https://api.gameintel.app/market/jp \
  -H "X-API-Key: gi_your_key"
Response
{
  "region": "jp",
  "total_games": 4218,
  "top_genres": ["RPG", "Action", "Visual Novel"],
  "avg_review_score": 0.82,
  "updated_at": "2026-03-14T00:00:00Z"
}
GET /market/jp/games/{game_id} API Key

Get Japan-specific data for a single game — Japanese review sentiment, localization status, regional pricing in JPY, and comparison metrics between the global and Japanese audiences.

Path Parameters
game_id int Steam App ID of the game required
Request
curl https://api.gameintel.app/market/jp/games/1245620 \
  -H "X-API-Key: gi_your_key"
Response
{
  "game_id": 1245620,
  "name": "Elden Ring",
  "jp_review_score": 0.88,
  "jp_review_count": 12450,
  "global_review_score": 0.89,
  "jp_price_jpy": 9240,
  "has_japanese_loc": true,
  "jp_sentiment": "very_positive"
}
System

Health check and system status.

GET /health Public

Check if the API is running and get database stats. No authentication required.

Request
curl https://api.gameintel.app/health
Response
{
  "status": "ok",
  "version": "0.1.0",
  "games_count": 31729,
  "tags_count": 232,
  "sentiment_count": 16184
}
MCP (Model Context Protocol)

AI-native access via MCP

GameIntel exposes an MCP server that lets AI assistants (Claude, Cursor, Windsurf, etc.) query game data, sentiment, and market intelligence directly through tool calls — no REST integration needed.

The MCP server supports the same data endpoints as the REST API: game search, sentiment analysis, similar games, tag trends, and JP market data.

GameIntel currently ships a local MCP server wrapper, not a hosted /mcp endpoint. Point your MCP client at the checked-out mcp-server/server.py entrypoint, set GAMEINTEL_API_URL and GAMEINTEL_API_KEY, and use the README in the repo for the exact client config.