---
title: "Performance config catalog"
method: GET
path: "/v2/perf-catalog"
---

# Performance config catalog

`GET /v2/perf-catalog`

## Request

- Base URL: `https://api.deadlockmods.app/api`
- URL: `https://api.deadlockmods.app/api/v2/perf-catalog`
- Auth: none declared
- TypeScript: <https://skmtc.dev/deadlockmods/apis/deadlock-mods-api/docs/v2/perf-catalog/get.ts> (a function with typed inputs; its response is checked against the schema)

Curated performance presets, convar metadata and stock gameinfo.gi history for the desktop app. Honors If-None-Match with the catalog version.

## Headers

- `if-none-match` string

## Response `200`

OK

- object
  - `schemaVersion` 1, required
  - `version` string, required
  - `generatedAt` string, required
  - `latestBuild` integer, nullable
  - `convarBuild` integer, nullable
  - `categories` object[], required
    - `id` string, required
    - `label` string, required
    - `weight` number, required
  - `sectionCategories` object
  - `convars` object[], required
    - `name` string, required
    - `kind` 'bool' | 'int' | 'float' | 'string' | 'enum' | 'color' | 'vector', required
    - `default` string, nullable
    - `min` number, nullable
    - `max` number, nullable
    - `step` number, nullable
    - `enumValues` object[]
      - `value` string, required
      - `label` string, required
    - `flags` string[]
    - `help` string, nullable
    - `label` string, nullable
    - `description` string, nullable
    - `category` string, required
    - `gameplay` 'camera' | 'visibility' | 'devtools', nullable
    - `sideEffects` string, nullable
    - `status` 'active' | 'blocked' | 'removed' | 'notConvar'
    - `statusSinceBuild` integer, nullable
  - `stock` object[]
    - `build` integer, required
    - `date` string, required
    - `pgiVersion` string, nullable
    - `entries` object[], required
      - `path` string[], required
      - `value` string, nullable, required
  - `presets` object[]
    - `id` string, required
    - `name` string, required
    - `author` string, required
    - `tier` 'pretty' | 'balanced' | 'lean' | 'sweaty' | 'potato', required
    - `blurb` string, required
    - `highlights` string[]
    - `recommended` boolean
    - `version` string, nullable
    - `updatedAt` string, nullable
    - `baseBuild` integer, nullable
    - `source` union, required
      - object
        - `kind` 'github', required
        - `repo` string, required
        - `path` string, required
        - `commit` string, required
        - `url` string, required
        - `license` string, required
      - object
        - `kind` 'bundled', required
    - `entries` object[], required
      - `path` string[], required
      - `value` string, nullable, required
    - `videoSettings` object[]
      - `key` string, required
      - `value` string, required
      - `label` string, nullable
      - `display` string, nullable
    - `videoVariants` object[]
      - `label` string, required
      - `settings` object[], required
        - `key` string, required
        - `value` string, required
        - `label` string, nullable
        - `display` string, nullable
    - `notes` string[]
  - `community` object[]
    - `id` string, required
    - `gamebananaId` integer, required
    - `name` string, required
    - `author` string, required
    - `downloads` integer
    - `updatedAt` string, nullable
    - `tier` 'pretty' | 'balanced' | 'lean' | 'sweaty' | 'potato', required
    - `blurb` string, required
    - `baseBuild` integer, nullable
    - `fileId` integer, required
    - `variantHint` string, nullable
    - `settingsCount` integer
    - `engineEditCount` integer
    - `categoryCounts` object
    - `bundlesVpks` boolean
  - `rules` object, required
    - `excludedSections` string[], required
    - `guardedSections` string[], required
    - `denied` object[]
      - `path` string[], nullable
      - `pattern` string, nullable
      - `reason` string, required

## Other responses

- `304`: OK

## Changes

- **2026-10-27** `3773976a47c8`: 20 breaking, 20 info
  - the response property `community/items/updatedAt` became nullable for the status `200`
  - the response property `community/items/variantHint` became nullable for the status `200`
  - the response property `convars/items/default` became nullable for the status `200`
  - the response property `convars/items/description` became nullable for the status `200`
  - …36 more
- **2026-10-22** `3206278f0d63`: 1 info
  - added the optional property `presets/items/videoVariants` to the response with the `200` status
- **2026-10-21** `a11cd0cc10d4`: 1 info
  - added the optional property `community/items/bundlesVpks` to the response with the `200` status
- **2026-10-11** `c970c5d2b912`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/deadlockmods/apis/deadlock-mods-api/changes/v2/perf-catalog/get.md)

---

[API](https://skmtc.dev/deadlockmods/apis/deadlock-mods-api.md) - [All operations](https://skmtc.dev/deadlockmods/apis/deadlock-mods-api/llms.txt) - [OpenAPI document](https://skmtc.dev/deadlockmods/apis/deadlock-mods-api/revisions/e9a537d5ac3b?raw)
