openapi: 3.0.0 info: title: CurseForge Core Categories Games API description: All endpoints use the same base URL - [https://api.curseforge.com](https://api.curseforge.com) version: v1 servers: - url: https://api.curseforge.com security: - API_KEY: [] tags: - name: Games paths: /v1/games: get: tags: - Games description: Get all games that are available to the provided API key. operationId: Get Games parameters: - name: index in: query description: 'A zero based index of the first item to include in the response, the limit is: (index + pageSize <= 10,000).' schema: type: integer format: int32 x-position: 1 - name: pageSize in: query description: The number of items to include in the response, the default/maximum value is 50. schema: type: integer format: int32 x-position: 2 responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/Get Games Response' '500': description: '' /v1/games/{gameId}: get: tags: - Games description: Get a single game. A private game is only accessible by its respective API key. operationId: Get Game parameters: - name: gameId in: path required: true description: A game unique id schema: type: integer format: int32 x-position: 1 responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/Get Game Response' '500': description: '' '404': description: '' /v1/games/{gameId}/versions: get: tags: - Games description: Get all available versions for each known version type of the specified game. A private game is only accessible to its respective API key. operationId: Get Versions parameters: - name: gameId in: path required: true description: A game unique id schema: type: integer format: int32 x-position: 1 responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/Get Versions Response - V1' '500': description: '' '404': description: '' /v1/games/{gameId}/version-types: get: tags: - Games description: 'Get all available version types of the specified game. A private game is only accessible to its respective API key. Currently, when creating games via the CurseForge for Studios Console, you are limited to a single game version type. This means that this endpoint is probably not useful in most cases and is relevant mostly when handling existing games that have multiple game versions such as World of Warcraft and Minecraft (e.g. 517 for wow_retail).' operationId: Get Version Types parameters: - name: gameId in: path required: true description: A game unique id schema: type: integer format: int32 x-position: 1 responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/Get Version Types Response' '500': description: '' '404': description: '' /v2/games/{gameId}/versions: get: tags: - Games description: Get all available versions for each known version type of the specified game. A private game is only accessible to its respective API key. operationId: Get Versions - V2 parameters: - name: gameId in: path required: true description: A game unique id schema: type: integer format: int32 x-position: 1 responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/Get Versions Response - V2' '500': description: '' '404': description: '' /v2/games/{gameId}/additional-client-featured-projects: get: tags: - Games operationId: Get additional client featured projects parameters: - name: gameId in: path required: true schema: type: integer format: int32 x-position: 1 responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/Get Version Types Response' '500': description: '' '404': description: '' components: schemas: Get Version Types Response: type: object additionalProperties: false properties: data: type: array description: The response data items: $ref: '#/components/schemas/GameVersionType' Get Versions Response - V2: type: object additionalProperties: false properties: data: type: array description: The response data items: $ref: '#/components/schemas/GameVersionsByType2' CoreApiStatus: type: integer description: '1 = Private 2 = Public' x-enumNames: - Private - Public enum: - 1 - 2 Game: type: object additionalProperties: false properties: id: type: integer format: int32 name: type: string slug: type: string dateModified: type: string format: date-time assets: $ref: '#/components/schemas/GameAssets' status: $ref: '#/components/schemas/CoreStatus' apiStatus: $ref: '#/components/schemas/CoreApiStatus' supportedFeatures: $ref: '#/components/schemas/GameSupportedFeatures' Get Games Response: type: object additionalProperties: false properties: data: type: array description: The response data items: $ref: '#/components/schemas/Game' pagination: description: The response pagination information $ref: '#/components/schemas/Pagination' GameVersion: type: object additionalProperties: false properties: id: type: integer format: int32 slug: type: string name: type: string Get Game Response: type: object additionalProperties: false properties: data: description: The response data $ref: '#/components/schemas/Game' Get Versions Response - V1: type: object additionalProperties: false properties: data: type: array description: The response data items: $ref: '#/components/schemas/GameVersionsByType' CoreStatus: type: integer description: '1 = Draft 2 = Test 3 = PendingReview 4 = Rejected 5 = Approved 6 = Live' x-enumNames: - Draft - Test - PendingReview - Rejected - Approved - Live enum: - 1 - 2 - 3 - 4 - 5 - 6 GameVersionsByType2: type: object additionalProperties: false properties: type: type: integer format: int32 versions: type: array items: $ref: '#/components/schemas/GameVersion' GameAssets: type: object additionalProperties: false properties: iconUrl: type: string tileUrl: type: string coverUrl: type: string Pagination: type: object additionalProperties: false properties: index: type: integer description: A zero based index of the first item that is included in the response format: int32 pageSize: type: integer description: The requested number of items to be included in the response format: int32 resultCount: type: integer description: The actual number of items that were included in the response format: int32 totalCount: type: integer description: The total number of items available by the request format: int64 GameVersionType: type: object additionalProperties: false properties: id: type: integer format: int32 gameId: type: integer format: int32 name: type: string slug: type: string isSyncable: type: boolean status: $ref: '#/components/schemas/GameVersionTypeStatus' GameSupportedFeatures: type: object additionalProperties: false properties: supportModSubscriptions: type: boolean GameVersionsByType: type: object additionalProperties: false properties: type: type: integer format: int32 versions: type: array items: type: string GameVersionTypeStatus: type: integer description: '1 = Normal 2 = Deleted' x-enumNames: - Normal - Deleted enum: - 1 - 2 securitySchemes: API_KEY: type: apiKey description:
The API key can be generated in the CurseForge for Studios [developer console](https://console.curseforge.com/). name: x-api-key in: header x-generator: NSwag v13.15.10.0 (NJsonSchema v10.6.10.0 (Newtonsoft.Json v11.0.0.0))