Knowledge API

Preview

Every number in the game, with its source.

Game data that updates with every patch and cites its source: 14 games of damage, cooldowns, costs and changes, built for AI agents. One key.

api/

Samples for 5 of 14 games, from a snapshot dated 18 Sept 2026. The API serves all 14.

curl -s -H "x-api-key: $KB_API_KEY" \
  https://kb.play-ascend.com/api/valorant/entity/vandal.json

Vandal (weapon), 15 resolved facts. Tap a row to find it in the response, below.

FieldValue
weapon.burst_countads1Game files
weapon.cost2900 creditsGame files
weapon.damage0-50m body40 hpGame files
weapon.damage0-50m head160 hpGame files
weapon.damage0-50m leg34 hpGame files
weapon.equip_time_s1 sGame files
weapon.fire_rate_per_s9.75 per_sGame files
weapon.fire_rate_per_sads8.775 per_sGame files
weapon.first_bullet_accuracy0.25 degGame files
weapon.first_bullet_accuracyads0.158 degGame files
weapon.magazine25Game files
weapon.reload_time_s2.5 sGame files
weapon.run_speed_multiplier0.8 multiplierGame files
weapon.run_speed_multiplierads0.76 multiplierGame files
weapon.zoom_multiplier1.25 multiplierGame files
response · resolved[2]
{
  "resolved": [
    {
      "field": "weapon.burst_count",
      "qualifier": "ads",
      "value": 1,
      "unit": "count",
      "tier": "official_gamefiles",
      "patchFrom": null,
      "confidence": 0.98,
      "source": "https://valorant-api.com/v1/weapons (Vandal)",
      "evidence": "valorant-api adsStats.burstCount"
    },
    {
      "field": "weapon.cost",
      "qualifier": null,
      "value": 2900,
      "unit": "credits",
      "tier": "official_gamefiles",
      "patchFrom": null,
      "confidence": 0.98,
      "source": "https://valorant-api.com/v1/weapons (Vandal)",
      "evidence": "valorant-api shopData.cost"
    },
    {
      "field": "weapon.damage",
      "qualifier": "0-50m body",
      "value": 40,
      "unit": "hp",
      "tier": "official_gamefiles",
      "patchFrom": "1.07",
      "confidence": 0.98,
      "source": "https://valorant-api.com/v1/weapons (Vandal)",
      "evidence": "valorant-api damageRanges 0-50m"
    },
    {
      "field": "weapon.damage",
      "qualifier": "0-50m head",
      "value": 160,
      "unit": "hp",
      "tier": "official_gamefiles",
      "patchFrom": null,
      "confidence": 0.98,
      "source": "https://valorant-api.com/v1/weapons (Vandal)",
      "evidence": "valorant-api damageRanges 0-50m"
    },
    {
      "field": "weapon.damage",
      "qualifier": "0-50m leg",
      "value": 34,
      "unit": "hp",
      "tier": "official_gamefiles",
      "patchFrom": null,
      "confidence": 0.98,
      "source": "https://valorant-api.com/v1/weapons (Vandal)",
      "evidence": "valorant-api damageRanges 0-50m"
    },
    {
      "field": "weapon.equip_time_s",
      "qualifier": null,
      "value": 1,
      "unit": "s",
      "tier": "official_gamefiles",
      "patchFrom": null,
      "confidence": 0.98,
      "source": "https://valorant-api.com/v1/weapons (Vandal)",
      "evidence": "valorant-api weaponStats.equipTimeSeconds"
    },
    {
      "field": "weapon.fire_rate_per_s",
      "qualifier": null,
      "value": 9.75,
      "unit": "per_s",
      "tier": "official_gamefiles",
      "patchFrom": null,
      "confidence": 0.98,
      "source": "https://valorant-api.com/v1/weapons (Vandal)",
      "evidence": "valorant-api weaponStats.fireRate"
    },
    {
      "field": "weapon.fire_rate_per_s",
      "qualifier": "ads",
      "value": 8.775,
      "unit": "per_s",
      "tier": "official_gamefiles",
      "patchFrom": null,
      "confidence": 0.98,
      "source": "https://valorant-api.com/v1/weapons (Vandal)",
      "evidence": "valorant-api adsStats.fireRate"
    },
    {
      "field": "weapon.first_bullet_accuracy",
      "qualifier": null,
      "value": 0.25,
      "unit": "deg",
      "tier": "official_gamefiles",
      "patchFrom": null,
      "confidence": 0.98,
      "source": "https://valorant-api.com/v1/weapons (Vandal)",
      "evidence": "valorant-api weaponStats.firstBulletAccuracy"
    },
    {
      "field": "weapon.first_bullet_accuracy",
      "qualifier": "ads",
      "value": 0.1575,
      "unit": "deg",
      "tier": "official_gamefiles",
      "patchFrom": null,
      "confidence": 0.98,
      "source": "https://valorant-api.com/v1/weapons (Vandal)",
      "evidence": "valorant-api adsStats.firstBulletAccuracy"
    },
    {
      "field": "weapon.magazine",
      "qualifier": null,
      "value": 25,
      "unit": "count",
      "tier": "official_gamefiles",
      "patchFrom": null,
      "confidence": 0.98,
      "source": "https://valorant-api.com/v1/weapons (Vandal)",
      "evidence": "valorant-api weaponStats.magazineSize"
    },
    {
      "field": "weapon.reload_time_s",
      "qualifier": null,
      "value": 2.5,
      "unit": "s",
      "tier": "official_gamefiles",
      "patchFrom": null,
      "confidence": 0.98,
      "source": "https://valorant-api.com/v1/weapons (Vandal)",
      "evidence": "valorant-api weaponStats.reloadTimeSeconds"
    },
    {
      "field": "weapon.run_speed_multiplier",
      "qualifier": null,
      "value": 0.8,
      "unit": "multiplier",
      "tier": "official_gamefiles",
      "patchFrom": null,
      "confidence": 0.98,
      "source": "https://valorant-api.com/v1/weapons (Vandal)",
      "evidence": "valorant-api weaponStats.runSpeedMultiplier"
    },
    {
      "field": "weapon.run_speed_multiplier",
      "qualifier": "ads",
      "value": 0.76,
      "unit": "multiplier",
      "tier": "official_gamefiles",
      "patchFrom": null,
      "confidence": 0.98,
      "source": "https://valorant-api.com/v1/weapons (Vandal)",
      "evidence": "valorant-api adsStats.runSpeedMultiplier"
    },
    {
      "field": "weapon.zoom_multiplier",
      "qualifier": null,
      "value": 1.25,
      "unit": "multiplier",
      "tier": "official_gamefiles",
      "patchFrom": null,
      "confidence": 0.98,
      "source": "https://valorant-api.com/v1/weapons (Vandal)",
      "evidence": "valorant-api adsStats.zoomMultiplier"
    }
  ]
}
Attribution · VALORANTShow

Ability figures are facts extracted from Riot Games' official VALORANT wiki, which is published under CC BY-SA 3.0 (https://creativecommons.org/licenses/by-sa/3.0/); weapon figures come from Riot's shipped weapon data via valorant-api.com. Every value is attributed per field. VALORANT is a trademark of Riot Games, Inc. This project is not affiliated with or endorsed by Riot Games.

  • FortniteFN
  • League of LegendsLoL
  • Destiny 2D2
  • Teamfight TacticsTFT
  • PokémonPKM
  • Legends of RuneterraLoR
  • Overwatch 2OW2
  • Minecraft: Java EditionMC
  • Counter-Strike 2CS2
  • Marvel RivalsMR
  • VALORANTVAL
  • 2XKO2XKO
  • PUBG: BATTLEGROUNDSPUBG
  • Tom Clancy's Rainbow Six SiegeR6

Game names are trademarks of their publishers, used to identify the games the corpus covers. No endorsement is implied. Each game's source and attribution: the docs.

Games
14
Read from the index
Entities
22,456
Agents, weapons, champions, items, maps
Facts
148,678
Each with its source
Snapshot
18 Sept 2026
Schema v3. Goes live with the corpus.

Start here

What are you building?

Most tools are built with an agent now, and the agent spends its effort finding the right source for each number. This is that search, done once: fetch the JSON and use the value, with its receipt beside it. No SDK; one key.

What does Ruse cost?

Ruse costs 150 credits.

wiki.playvalorant.comofficial_ingame
The receipt
Field
ability.creds
Evidence
“150”
Source
https://wiki.playvalorant.com/en-us/Ruse
Patch
undated

Giving an agent the numbers

One fetch per entity returns every current value with its receipt, so the model cites the line it came from instead of a wiki it had to find.

Readsapi/<game>/entity/{file}.json
  • Chat bots and AI assistants

    Answer with the number, the source it came from and the patch it took effect in, not a paraphrase of a wiki.

    Every game
  • Overlays and companion apps

    Durations, cooldowns and damage by range in the client, refreshed when the corpus is, not when someone remembers.

    Every game

Draft · Vandal

The Vandal hits for 40 hp on a body shot inside fifty metres, up from 39 hp before patch 1.07.

Value
40 hp
Source
https://valorant-api.com/v1/weapons (Vandal)
Tier
Game files official_gamefiles
Patch
since 1.07
Before
39 hp until 1.07

Writing about a game

Look a figure up before it goes out, with the receipt: the source, the tier, the patch. What a value was before a nerf is in the same file.

Readsapi/<game>/entities.json
  • Creators and editors

    Check a figure before it goes in the video or the article, and say how well it is attested: patch note, or measured.

    Every game
  • Patch diffs

    What a patch changed, from the superseded values the corpus keeps with the patch each one stopped in.

    Patch-dated games

Pump Shotgun, weapon.damage · legendary

Community · fortnite.fandom.com

1106.3111.0011616.0012820.3039.5140.0011642.00

A match on 20.30 reads 128 damage; one on 42.00 reads 116 damage. Read the match against the game as it was.

Analysing matches

The history file keeps every value with the patch it held in, so a match is read against the game as it was that day, per-range figures included.

Readsbulk/<game>
  • Analytics and esports tooling

    Map pools, kits and weapon figures per patch, joined to match data by date, so a March stat reads against March's game.

    VALCS2LoLTFT
  • Calculators and theorycrafting

    Time to kill, breakpoints and shield maths from per-range damage and fire rate, every input traceable to its tier.

    VALCS2R6FN

Coverage

What is in it

One row per game, largest first. The bar is the tier mix, best attested on the left; dated says whether a fact carries the patch it took effect in.

GameFacts
Fortnite837 entities: 837 weapon
30,795
League of Legends1,863 entities: 943 spell, 685 item, 173 champion, 62 rune
29,304
Destiny 2Free keys only2,208 entities: 2,208 weapon
26,193
Teamfight Tactics5,707 entities: 2,198 item, 1,825 champion, 949 trait, 601 augment, 68 npc, 66 anomaly
21,510
Pokémon2,620 entities: 1,351 pokemon, 937 move, 314 ability, 18 type
18,352
Legends of Runeterra4,377 entities: 2,890 card, 1,359 effect, 128 champion
6,920
Overwatch 2Free keys only1,773 entities: 965 stadium power, 687 ability, 68 map, 53 hero
3,816
Minecraft: Java Edition1,580 entities: 1,537 item, 43 enchantment
2,434
Counter-Strike 288 entities: 65 weapon, 23 map
2,277
Marvel Rivals660 entities: 606 ability, 54 hero
1,930
VALORANT185 entities: 118 ability, 29 agent, 20 weapon, 16 map, 2 system
1,767
2XKO315 entities: 315 move
1,495
PUBG: BATTLEGROUNDSFree keys only119 entities: 63 weapon, 35 vehicle, 12 item, 9 armour
1,054
Tom Clancy's Rainbow Six Siege124 entities: 98 weapon, 26 map
831

Free keys only: the source's licence is non-commercial, so a Pro key is told to use the free key for that game.

Provenance

Every value says where it came from

One fact from Ruse (ability), followed from the line a source wrote to the JSON the API returns. A fact is a field, an optional qualifier, a value with its unit, the tier of the source, the patch it took effect in, and the evidence quoted.

01

As stated

14 s

ability.duration_s · alive

Alive: 14 seconds (includes 0.5-second formation time and 0.5-second expiration time)
02

As measured

15 s

ability.duration_s · alive

median 15s across n=349 replay instances (iqr 0, kind timed)
Measuredascend-companion/tools/vrfkit/ability_lifetimes.json
03

As resolved

What valorant/entity/clove-ruse.json returns for it: the stated value, with the measurement agreeing inside a tolerance of 1.4.

one fact
{
  "field": "ability.duration_s",
  "qualifier": "alive",
  "value": 14,
  "unit": "s",
  "tier": "official_patch",
  "patchFrom": "12.05",
  "confidence": 0.95,
  "source": "https://wiki.playvalorant.com/en-us/Ruse",
  "evidence": "Alive: 14 seconds (includes 0.5-second formation time and 0.5-second expiration time)",
  "agreement": {
    "officialValue": 14,
    "measuredValue": 15,
    "delta": 1,
    "tolerance": 1.4,
    "status": "agree"
  }
}
  1. 01Game filesThe developer's own game files, via a wiki or a shipped-data mirror. official_gamefiles
  2. 02Patch noteConfirmed by a specific patch note, and dated to it. official_patch
  3. 03In gameObservable in the game client. official_ingame
  4. 04MeasuredDerived by Ascend from replay files, with the tolerance stated. measured
  5. 05CommunityAdopted from a third-party dataset, attributed. community
  6. 06UnconfirmedThe source flags the figure as an estimate. unconfirmed
  7. 07InferredArithmetic on stated values, not itself stated anywhere. inferred

The whole file, superseded values included, is at https://kb.play-ascend.com/api/valorant/entity/clove-ruse.json.

Attribution · VALORANTShow

Ability figures are facts extracted from Riot Games' official VALORANT wiki, which is published under CC BY-SA 3.0 (https://creativecommons.org/licenses/by-sa/3.0/); weapon figures come from Riot's shipped weapon data via valorant-api.com. Every value is attributed per field. VALORANT is a trademark of Riot Games, Inc. This project is not affiliated with or endorsed by Riot Games.

Endpoints

Plain files, one per question

Static JSON behind a CDN. No query parameters, no pagination; one key, in a header. Read the index, then a game's list, then whatever you opened.

the whole walk
  1. $ curl -s -H "x-api-key: $KB_API_KEY" https://kb.play-ascend.com/api/index.json
    # 14 games, 22,456 entities, 148,678 facts, with the paths below
  2. $ curl -s -H "x-api-key: $KB_API_KEY" https://kb.play-ascend.com/api/lol/entities.json
    # 1,863 entities: 943 spell, 685 item, 173 champion and 1 more type
  3. $ curl -s -H "x-api-key: $KB_API_KEY" https://kb.play-ascend.com/api/lol/entity/ahri-orb-of-deception.json
    # Orb of Deception (spell): 21 resolved facts, 30 ever stated
  • api/index.jsonEvery game: counts, tier breakdown, profile, patch source, attribution, and the paths below.
  • api/published.jsonWhen the corpus was last published, from which commit and run, and whether the data moved.
  • api/<game>/entities.jsonOne line per entity: id, file, type, name, group, tags. Enough to list and search.
  • api/<game>/entity/{file}.jsonOne entity: the resolved facts to use, and every fact ever stated with the patch it stopped in.
  • api/<game>/fields.jsonWhat each field measures: type, unit, the bounds a value must fall inside, how many facts carry it.
  • api/<game>/codenames.jsonInternal names the game files use, mapped to the entities they belong to.
  • portal/api/bulk/<game>The whole game in one JSON file, history included, as a signed link. Pro keys; for a build step, not a page.
  • portal/api/bulk/sqliteEvery game in one SQLite database, with `game` as part of the key, the same way. Query it with any SQLite client.

For AI agents

From one URL to an answer with its source.

Add the endpoint to your client with your key. Your agent finds the entity, reads the one fact it needs, and answers with where the number came from.

Connect

https://kb.play-ascend.com/mcp

HTTP transport, your key in the x-api-key header.

claude mcp add --transport http game-kb https://kb.play-ascend.com/mcp \
  --header "x-api-key: kb_free_…"

Six tools your agent gets

  • list_gamesWhat the corpus holds, per game.
  • search_entitiesFind an ability, a weapon, a champion by name.
  • get_entityOne entity with everything that resolves today.
  • get_factOne value, with its source and evidence.
  • patch_historyWhat a value was, and when it changed.
  • describe_fieldsWhat a field measures, and in what unit.
Windsurf, Claude Desktop, Codex and the stdio build
Claude Codegame-kb

How long does Clove's Ruse smoke last now, and where does that number come from?

search_entitiesDone
{
  "game": "valorant",
  "query": "ruse"
}

One valorant entity for "ruse":

clove-ruse · Ruse (ability, Clove)

get_factDone
{
  "game": "valorant",
  "id": "clove-ruse",
  "field": "ability.duration_s",
  "qualifier": "alive"
}

ability.duration_s [alive] = 14 s (official_patch, since 12.05)

source: https://wiki.playvalorant.com/en-us/Ruse

evidence: "Alive: 14 seconds (includes 0.5-second formation time and 0.5-second expiration time)"

Claude

A Ruse smoke lasts 14 seconds while Clove is alive, since patch 12.05. That includes its half-second formation and expiration.

wiki.playvalorant.com/en-us/Ruseofficial_patch12.05

Keys and limits

Free to build on. Pro to ship.

Both keys read the same data. Pro raises the rate limit and adds the bulk files. Both live in one account, and the console shows what each key has used.

Knowledge API tiers compared
Feature
Free key

Free

One key per account. Enough to build a first integration and see the receipts; not enough to crawl.

Pro key

$10 /month

For a tool in production: room for an agent to answer all day, and the bulk files for a build step.

Requests every five minutes601,500
Bulk files an hour, for a build step2
Every endpoint, and the MCP server
Source, evidence, tier and patch on every value
Games with non-commercial sources

The free key covers every game, including the ones whose sources allow only non-commercial use; a Pro key is told to use the free key for those.

Setup

A key in three steps.

Open the console
  1. Sign in to the console

    With Google, GitHub or email. One developer account holds the keys for every Ascend API.

    console.play-ascend.com
  2. Create a key

    A free key, shown once when it is made. When you need the room, Pro is billed from the same console.

    console.play-ascend.com/knowledge
  3. Send it in a header

    Put it in x-api-key on every request. Keys never go in the URL.

    Terminal

Questions

Questions about the Knowledge API.

  • What is the Knowledge API?

    Structured game data over HTTPS: damage, cooldowns, costs, ranges and patch changes, as JSON. Every value carries the URL it was read from, the text it was parsed from, how well it's attested, and the patch it took effect in. Figures the sources don't state are left out rather than guessed.

  • Is there a free tier?

    Yes. A free key gets every endpoint and the MCP server at 60 requests every five minutes. Pro is $10 a month for 1,500 requests every five minutes and the bulk files.

  • How do I authenticate?

    Create a key in the developer console at console.play-ascend.com and send it in the x-api-key header on every request. Keys never go in the URL.

  • Can I use it from an AI agent?

    Yes. Point any HTTP MCP client (Claude Code, Cursor, VS Code and others) at https://kb.play-ascend.com/mcp with your key in the x-api-key header. The agent gets tools to list games, search entities, read facts and patch history, and look up what a field means.

  • Where does the data come from?

    From each game's sources: shipped game files, patch notes, the games' wikis, and figures measured from replays. Every game carries an attribution line saying where its data came from and under what terms, and every value links its source.

  • Can I use it in a commercial product?

    For most games, yes. Overwatch 2, PUBG and Destiny 2 come from sources that allow only non-commercial use, so they are served to free keys only; a Pro key asking for one is told to use the free key.

  • How fresh is it?

    The corpus is rebuilt and republished as patches land, and every dated fact carries the patch it took effect in. The published.json file says when it last moved.

  • Is Ascend affiliated with the game publishers?

    No. The Knowledge API reads public sources and cites them. No publisher runs, reviews or sponsors it.

Give your agent the numbers.

One key, one header, every value with its receipt. Tell us what you are building and which games you need; the corpus grows from those answers.

Games
14
Entities
22,456
Facts
148,678
Header
x-api-key