# CS2 SDK — cs2-sdk.com > Universal Counter-Strike 2 SDK: offsets, signatures, interfaces/vtables, protobufs and schema classes, > dumped from a live cs2.exe. All data is public, CORS-enabled (Access-Control-Allow-Origin: *), no auth, JSON. > Current build: 14184 (generated 2026-09-25T18:31:54.394461100+01:00). ## How to use (agents & IDEs) - Every endpoint returns JSON and accepts ?session= (default "latest"). - Start at GET /api for a machine-readable index of endpoints + the list of raw files. - For a single value, use the per-item endpoints (small, exact): curl https://cs2-sdk.com/api/offset/dwLocalPlayerPawn curl https://cs2-sdk.com/api/pattern/CreateMove - For several values at once, use the batch query (one round trip, JSON in / JSON out): curl -X POST https://cs2-sdk.com/api/query -H 'content-type: application/json' \ -d '{"signatures":{"CreateMove":true},"offsets":["dwEntityList"],"schemas":["C_BaseEntity.m_iHealth"]}' curl 'https://cs2-sdk.com/api/query?signatures=CreateMove,GetInaccuracy&offsets=dwEntityList&detail=1' - For bulk / build-time use, pull the raw artifact directly: curl https://cs2-sdk.com/raw/offsets.hpp # C++ header of dwXxx constants curl https://cs2-sdk.com/raw/offsets.json # {module:{name:"0x..."}} curl https://cs2-sdk.com/raw/patterns/patterns.json # IDA-style patterns + RVAs curl https://cs2-sdk.com/raw/cs2.hpp # single-include SDK amalgamation curl https://cs2-sdk.com/raw/schemas/client_dll.hpp ## Batch query (POST /api/query, GET /api/query) - Body kinds: "signatures", "offsets", "schemas", "convars" — each an array of names or an object {"Name": true}. - Response: {"success": true, "build": N, "found": {kind: {name: value}}, "missing": {kind: [names]}}. signatures -> pattern string; offsets -> "0x..." hex; schemas "Class.field" -> "0x..." offset, "Class" -> {field: offset}; convars -> {kind, value, type, flags, flag_names, description}. Add "detail": true (or ?detail=1) for objects (signatures: {name, pattern, module, rva, prototype, resolve}). - Name matching: exact, then case-insensitive, then an alias. Signature alias = the dumper's display name: it strips C++ class prefixes, so CCSGOInput_CreateMove / CCSGOInput::CreateMove resolve to the published CreateMove. Offsets accept the name with or without "dw" (EntityList == dwEntityList). Non-exact hits are listed under "resolved". - Pin a module with "module/Name": client.dll/CreateMove, client/dwEntityList, server.dll/CCSPlayerPawn.m_iHealth. - Schema fields climb the parent chain (C_CSPlayerPawn.m_iHealth works; detail shows declared_in). - Missing names are not errors (HTTP 200, listed in "missing"). HTTP 400 {"success": false, "error"} only for malformed input. - Limits: body <= 64 KB, <= 1000 names per request. ## Endpoints - GET /api index (endpoints + raw file list) - POST /api/query batch lookup of signatures/offsets/schemas/convars (see above) - GET /api/query same, via ?signatures=A,B&offsets=X&schemas=Class.field&convars=name&detail=1 - GET /api/summary dataset counts for the dump - GET /api/bundle everything in one JSON - GET /api/offsets offsets grouped by module (?module=) - GET /api/offset/ one offset across modules (+ value_dec) - GET /api/patterns patterns (?module=, ?name= substring) — alias: /api/signatures - GET /api/pattern/ one pattern by name or alias — alias: /api/signature/ - GET /api/protobufs protobuf layouts (?module=, ?message=) - GET /api/vtables interface vtables (?module=) - GET /api/buttons kbutton table - GET /api/schema?module=client_dll schema class header text - GET /api/schemas?module=client_dll structured classes/enums (size, field offsets/types/annotations) - GET /api/convars convar/concommand catalogue (?q= substring, ?kind=convars|commands) - GET /api/netmessages net-message id<->name<->protobuf map (?group=, ?q=) - GET /api/weapons per-weapon CCSWeaponBaseVData values (?q= substring) - GET /api/gameevents game events: name/id/typed field schema (?q= substring) - GET /api/entities live entity snapshot: index/classname/health/team/origin (?q=) - GET /api/status dump status: self-checks, unresolved signatures, update state, known issues - GET /api/engine non-schema engine struct layouts (CCSGOInput/CUserCmd/CViewSetup) - GET /api/downloads exportable artifacts (label/href/format/size) - GET /api/export/patterns.txt every pattern as a formatted .txt download - GET /api/sessions list dump sessions - GET /raw/ raw artifact verbatim (see /api raw_files) Full machine-readable index: https://cs2-sdk.com/api