Curse Games API

The Games API from Curse — 6 operation(s) for games.

Operations 6

GET /v1/games #
GET /v1/games/{gameId} #
GET /v1/games/{gameId}/versions #
GET /v1/games/{gameId}/version-types #
GET /v2/games/{gameId}/versions #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/curse-games-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API 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 Specification

curse-games-api-openapi.yml Raw ↑
openapi: 3.2.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:
    GameAssets:
      type: object
      additionalProperties: false
      properties:
        iconUrl:
          type: string
        tileUrl:
          type: string
        coverUrl:
          type: string
    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
    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_Versions_Response_-_V2:
      type: object
      additionalProperties: false
      properties:
        data:
          type: array
          description: The response data
          items:
            $ref: '#/components/schemas/GameVersionsByType2'
    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'
    GameVersionTypeStatus:
      type: integer
      description: '1 = Normal

        2 = Deleted'
      x-enumNames:
      - Normal
      - Deleted
      enum:
      - 1
      - 2
    GameSupportedFeatures:
      type: object
      additionalProperties: false
      properties:
        supportModSubscriptions:
          type: boolean
    CoreApiStatus:
      type: integer
      description: '1 = Private

        2 = Public'
      x-enumNames:
      - Private
      - Public
      enum:
      - 1
      - 2
    Get_Game_Response:
      type: object
      additionalProperties: false
      properties:
        data:
          description: The response data
          $ref: '#/components/schemas/Game'
    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
    GameVersionsByType:
      type: object
      additionalProperties: false
      properties:
        type:
          type: integer
          format: int32
        versions:
          type: array
          items:
            type: string
    Get_Versions_Response_-_V1:
      type: object
      additionalProperties: false
      properties:
        data:
          type: array
          description: The response data
          items:
            $ref: '#/components/schemas/GameVersionsByType'
    GameVersionsByType2:
      type: object
      additionalProperties: false
      properties:
        type:
          type: integer
          format: int32
        versions:
          type: array
          items:
            $ref: '#/components/schemas/GameVersion'
    GameVersion:
      type: object
      additionalProperties: false
      properties:
        id:
          type: integer
          format: int32
        slug:
          type: string
        name:
          type: string
    Get_Version_Types_Response:
      type: object
      additionalProperties: false
      properties:
        data:
          type: array
          description: The response data
          items:
            $ref: '#/components/schemas/GameVersionType'
    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'
  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))