Curse Games API
The Games API from Curse — 6 operation(s) for games.
Operations 6
GET
/v2/games/{gameId}/additional-client-featured-projects
Get additional client featured projects
#
The Games API from Curse — 6 operation(s) for games.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/curse:curse-games-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: CurseForge Core Games API
description: All endpoints use the same base URL - 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: GetGames
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
- name: HasExplicitPageSize
in: query
description: 'Whether the caller actually supplied a pageSize, as opposed to
pageSize returning the default because none was sent. [FromQuery]
model binding always constructs this class - even from an empty
query string - so pageSize''s own getter can''t be used to tell those
two cases apart from outside the class.'
schema:
type: boolean
x-position: 3
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/Get_Games_Response'
'500':
description: ''
summary: Get games
x-summary-source: derived
x-operation-id-source: normalized
x-operation-id-original: Get Games
/v1/games/{gameId}:
get:
tags:
- Games
description: Get a single game. A private game is only accessible by its respective API key.
operationId: GetGame
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: ''
summary: Get game
x-summary-source: derived
x-operation-id-source: normalized
x-operation-id-original: Get Game
/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: GetVersions
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: ''
summary: Get versions
x-summary-source: derived
x-operation-id-source: normalized
x-operation-id-original: Get Versions
/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: GetVersionTypes
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: ''
summary: Get version types
x-summary-source: derived
x-operation-id-source: normalized
x-operation-id-original: Get Version Types
/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: GetVersions-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: ''
summary: Get versions V2
x-summary-source: derived
x-operation-id-source: normalized
x-operation-id-original: Get Versions - V2
/v2/games/{gameId}/additional-client-featured-projects:
get:
tags:
- Games
operationId: GetAdditionalClientFeaturedProjects
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: ''
summary: Get additional client featured projects
x-summary-source: derived
x-operation-id-source: normalized
x-operation-id-original: Get additional client featured projects
components:
schemas:
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
Get_Versions_Response_-_V1:
type: object
additionalProperties: false
properties:
data:
type: array
description: The response data
items:
$ref: '#/components/schemas/GameVersionsByType'
sig:
type: string
description: 'Base64-encoded RSA-SHA256/PSS signature of the response, present only when the
caller requested a signed response and the game supports it.'
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
GameVersionsByType2:
type: object
additionalProperties: false
properties:
type:
type: integer
format: int32
versions:
type: array
items:
$ref: '#/components/schemas/GameVersion'
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'
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
CoreApiStatus:
type: integer
description: '1 = Private
2 = Public'
x-enumNames:
- Private
- Public
enum:
- 1
- 2
GameVersion:
type: object
additionalProperties: false
properties:
id:
type: integer
format: int32
slug:
type: string
name:
type: string
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'
GameAssets:
type: object
additionalProperties: false
properties:
iconUrl:
type: string
tileUrl:
type: string
coverUrl:
type: string
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'
Get_Version_Types_Response:
type: object
additionalProperties: false
properties:
data:
type: array
description: The response data
items:
$ref: '#/components/schemas/GameVersionType'
sig:
type: string
description: 'Base64-encoded RSA-SHA256/PSS signature of the response, present only when the
caller requested a signed response and the game supports it.'
Get_Game_Response:
type: object
additionalProperties: false
properties:
data:
description: The response data
$ref: '#/components/schemas/Game'
sig:
type: string
description: 'Base64-encoded RSA-SHA256/PSS signature of the response, present only when the
caller requested a signed response and the game supports it.'
Get_Versions_Response_-_V2:
type: object
additionalProperties: false
properties:
data:
type: array
description: The response data
items:
$ref: '#/components/schemas/GameVersionsByType2'
sig:
type: string
description: 'Base64-encoded RSA-SHA256/PSS signature of the response, present only when the
caller requested a signed response and the game supports it.'
GameSupportedFeatures:
type: object
additionalProperties: false
properties:
supportModSubscriptions:
type: boolean
securitySchemes:
API_KEY:
type: apiKey
description: <br/>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))
x-provenance:
method: harvested
publisher: Curse
source: https://api.curseforge.com/swagger/v1/swagger.json
note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
stamped by stamp-openapi-provenance.py (roadmap#793)