Curse Mods API

The Mods API from Curse — 19 operation(s) for mods.

Operations 19

GET /v1/mods/{modId} #
POST /v1/mods/get-mods-by-ids #
POST /v1/mods #
GET /v1/mods/{modId}/description #
GET /v1/mods/app-highlights #
POST /v1/mods/highlights #
POST /v3/mods/highlights #
GET /v3/mods #
GET /v2/mods/app-highlights #
POST /v2/mods/highlights #
POST /v2/mods/community-picks-candidates #
POST /v2/mods/app-search #
GET /v2/mods/{modId} #
POST /v2/mods/get-mods-by-ids #

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-mods-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-mods-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: CurseForge Core Categories Mods 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: Mods
paths:
  /v1/mods/search:
    get:
      tags:
      - Mods
      description: Get all mods that match the search criteria.
      operationId: Search Mods
      parameters:
      - name: gameId
        in: query
        required: true
        description: Filter by game id.
        schema:
          type: integer
          format: int32
        x-position: 1
      - name: classId
        in: query
        description: Filter by section id (discoverable via Categories)
        schema:
          type: integer
          format: int32
        x-position: 2
      - name: categoryId
        in: query
        description: Filter by category id
        schema:
          type: integer
          format: int32
        x-position: 3
      - name: categoryIds
        in: query
        description: "Filter by a list of category ids - this will override categoryId\ncategoryIds=[1,2,3...]\n            \nThe maximum allowed category ids per query is 10"
        schema:
          type: string
        x-position: 4
      - name: gameVersion
        in: query
        description: Filter by game version string
        schema:
          type: string
        x-position: 5
      - name: gameVersions
        in: query
        description: "Filter by a list of game version strings - this will override\ngameVersion\n            \ngameVersions=[\"1.19.1\", \"1.19.2\", \"1.20.1\" ...]\n            \nThe maximum allowed category ids per query is 4"
        schema:
          type: string
        x-position: 6
      - name: searchFilter
        in: query
        description: Filter by free text search in the mod name and author
        schema:
          type: string
        x-position: 7
      - name: sortField
        in: query
        description: Filter by ModsSearchSortField enumeration
        schema:
          $ref: '#/components/schemas/ModsSearchSortField'
        x-position: 8
      - name: sortOrder
        in: query
        description: '''asc'' if sort is in ascending order, ''desc'' if sort is in descending order'
        schema:
          $ref: '#/components/schemas/SortOrder'
        x-position: 9
      - name: modLoaderType
        in: query
        description: Filter only mods associated to a given modloader (Forge, Fabric ...). Must be coupled with gameVersion.
        schema:
          $ref: '#/components/schemas/ModLoaderType'
        x-position: 10
      - name: modLoaderTypes
        in: query
        description: "Filter by a list of mod loader types - this will override modLoaderType\nmodLoaderTypes=[Forge, Fabric, ...]\n            \nMax values = 5"
        schema:
          type: string
        x-position: 11
      - name: gameVersionTypeId
        in: query
        description: Filter only mods that contain files tagged with versions of the given gameVersionTypeId
        schema:
          type:
          - integer
          - 'null'
          format: int32
        x-position: 12
      - name: authorId
        in: query
        description: Filter only mods that the given authorId is a member of.
        schema:
          type:
          - integer
          - 'null'
          format: int32
        x-position: 13
      - name: primaryAuthorId
        in: query
        description: Filter only mods that the given primaryAuthorId is the owner of.
        schema:
          type:
          - integer
          - 'null'
          format: int32
        x-position: 14
      - name: PremiumType
        in: query
        description: Filter only mods that are Premium or not.
        schema:
          $ref: '#/components/schemas/ModPremiumTypeEnum'
        x-position: 15
      - name: slug
        in: query
        description: Filter by slug (coupled with classId will result in a unique result).
        schema:
          type: string
        x-position: 16
      - name: clientCompatible
        in: query
        description: 'When set to true, will filter out any mod that doesn''t have a default

          file that is compatible with the client. This is usually due to a bad

          file structure of the file (which might cause unexpected behaviours on

          the user''s machine - such as overriding other mods installed).'
        schema:
          type: boolean
        x-position: 17
      - name: modsSearchEnhancedFeatures
        in: query
        description: Bitwise number with values from ModsSearchEnhancedFeatures
        schema:
          type: integer
          format: int64
        x-position: 18
      - 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: 19
      - 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: 20
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResponseWithPaginationOfListOfModDto'
        '500':
          description: ''
        '400':
          description: ''
  /v1/mods/app-search:
    post:
      tags:
      - Mods
      operationId: App Mods Search
      requestBody:
        x-name: request
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SearchModsPostRequest'
        required: true
        x-position: 1
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Search_Mods_Response'
        '500':
          description: ''
        '400':
          description: ''
  /v1/mods/{modId}:
    get:
      tags:
      - Mods
      description: Get a single mod.
      operationId: Get Mod
      parameters:
      - name: modId
        in: path
        required: true
        description: The mod id
        schema:
          type: integer
          format: int32
        x-position: 1
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResponseOfModDto'
        '500':
          description: ''
        '404':
          description: ''
  /v1/mods/get-mods-by-ids:
    post:
      tags:
      - Mods
      description: Get a list of mods belonging the the same game.
      operationId: Get Mods
      requestBody:
        x-name: requestBody
        description: Request body containing an array of mod ids, mod ids must belong to the same game.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GetExpandedModsByIdsListRequestBody'
        required: true
        x-position: 1
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResponseOfListOfModDto'
        '500':
          description: ''
        '400':
          description: ''
  /v1/mods:
    post:
      tags:
      - Mods
      description: Get a list of mods belonging the the same game.
      operationId: Get Mods2
      requestBody:
        x-name: requestBody
        description: Request body containing an array of mod ids, mod ids must belong to the same game.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GetExpandedModsByIdsListRequestBody'
        required: true
        x-position: 1
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResponseOfListOfModDto'
        '500':
          description: ''
        '400':
          description: ''
  /v1/mods/featured:
    post:
      tags:
      - Mods
      description: Get a list of featured, popular and recently updated mods.
      operationId: Get Featured Mods
      requestBody:
        x-name: filter
        description: Match results for a game and exclude specific mods
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GetFeaturedModsRequestBody'
        required: true
        x-position: 1
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResponseOfFeaturedModsResponseOfModDto'
        '500':
          description: ''
        '400':
          description: ''
        '404':
          description: ''
  /v1/mods/{modId}/description:
    get:
      tags:
      - Mods
      description: Get the full description of a mod in HTML format.
      operationId: Get Mod Description
      parameters:
      - name: modId
        in: path
        required: true
        description: The mod id
        schema:
          type: integer
          format: int32
        x-position: 1
      - name: raw
        in: query
        schema:
          type: boolean
        x-position: 2
      - name: stripped
        in: query
        schema:
          type: boolean
        x-position: 3
      - name: markup
        in: query
        schema:
          type: boolean
        x-position: 4
      - name: lang
        in: query
        schema:
          type: string
          default: en
        x-position: 5
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/String_Response'
        '500':
          description: ''
        '404':
          description: ''
  /v1/mods/app-highlights:
    get:
      tags:
      - Mods
      operationId: Mods_GetAppModHighlights
      parameters:
      - name: gameId
        in: query
        schema:
          type: integer
          format: int32
        x-position: 1
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResponseOfAppHighlightsResponse'
        '404':
          description: ''
  /v1/mods/highlights:
    post:
      tags:
      - Mods
      operationId: Get Mod Highlights
      requestBody:
        x-name: body
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GetHighlightsFeaturedRequest'
        required: true
        x-position: 1
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResponseOfHomepageHighlightsResponse'
        '500':
          description: ''
  /v3/mods/highlights:
    post:
      tags:
      - Mods
      operationId: Get Mod Highlights2
      requestBody:
        x-name: body
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GetHighlightsFeaturedRequest'
        required: true
        x-position: 1
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResponseOfHomepageHighlightsResponse2'
        '500':
          description: ''
  /v3/mods:
    get:
      tags:
      - Mods
      operationId: Mods_GetById
      parameters:
      - name: modId
        in: query
        schema:
          type: integer
          format: int32
        x-position: 1
      responses:
        '200':
          description: ''
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
  /v2/mods/app-highlights:
    get:
      tags:
      - Mods
      operationId: Mods_GetAppModHighlights2
      parameters:
      - name: gameId
        in: query
        schema:
          type: integer
          format: int32
        x-position: 1
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResponseOfAppHighlightsResponse2'
        '404':
          description: ''
  /v2/mods/highlights:
    post:
      tags:
      - Mods
      operationId: Get Mod Highlights22
      requestBody:
        x-name: body
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GetHighlightsFeaturedRequest'
        required: true
        x-position: 1
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResponseOfHomepageHighlightsResponse3'
        '500':
          description: ''
  /v2/mods/search:
    get:
      tags:
      - Mods
      description: Get all mods that match the search criteria.
      operationId: Search Mods2
      parameters:
      - name: gameId
        in: query
        required: true
        description: Filter by game id.
        schema:
          type: integer
          format: int32
        x-position: 1
      - name: classId
        in: query
        description: Filter by section id (discoverable via Categories)
        schema:
          type: integer
          format: int32
        x-position: 2
      - name: categoryId
        in: query
        description: Filter by category id
        schema:
          type: integer
          format: int32
        x-position: 3
      - name: categoryIds
        in: query
        description: "Filter by a list of category ids - this will override categoryId\ncategoryIds=[1,2,3...]\n            \nThe maximum allowed category ids per query is 10"
        schema:
          type: string
        x-position: 4
      - name: gameVersion
        in: query
        description: Filter by game version string
        schema:
          type: string
        x-position: 5
      - name: gameVersions
        in: query
        description: "Filter by a list of game version strings - this will override\ngameVersion\n            \ngameVersions=[\"1.19.1\", \"1.19.2\", \"1.20.1\" ...]\n            \nThe maximum allowed category ids per query is 4"
        schema:
          type: string
        x-position: 6
      - name: searchFilter
        in: query
        description: Filter by free text search in the mod name and author
        schema:
          type: string
        x-position: 7
      - name: sortField
        in: query
        description: Filter by ModsSearchSortField enumeration
        schema:
          $ref: '#/components/schemas/ModsSearchSortField'
        x-position: 8
      - name: sortOrder
        in: query
        description: '''asc'' if sort is in ascending order, ''desc'' if sort is in descending order'
        schema:
          $ref: '#/components/schemas/SortOrder'
        x-position: 9
      - name: modLoaderType
        in: query
        description: Filter only mods associated to a given modloader (Forge, Fabric ...). Must be coupled with gameVersion.
        schema:
          $ref: '#/components/schemas/ModLoaderType'
        x-position: 10
      - name: modLoaderTypes
        in: query
        description: "Filter by a list of mod loader types - this will override modLoaderType\nmodLoaderTypes=[Forge, Fabric, ...]\n            \nMax values = 5"
        schema:
          type: string
        x-position: 11
      - name: gameVersionTypeId
        in: query
        description: Filter only mods that contain files tagged with versions of the given gameVersionTypeId
        schema:
          type:
          - integer
          - 'null'
          format: int32
        x-position: 12
      - name: authorId
        in: query
        description: Filter only mods that the given authorId is a member of.
        schema:
          type:
          - integer
          - 'null'
          format: int32
        x-position: 13
      - name: primaryAuthorId
        in: query
        description: Filter only mods that the given primaryAuthorId is the owner of.
        schema:
          type:
          - integer
          - 'null'
          format: int32
        x-position: 14
      - name: PremiumType
        in: query
        description: Filter only mods that are Premium or not.
        schema:
          $ref: '#/components/schemas/ModPremiumTypeEnum'
        x-position: 15
      - name: slug
        in: query
        description: Filter by slug (coupled with classId will result in a unique result).
        schema:
          type: string
        x-position: 16
      - name: clientCompatible
        in: query
        description: 'When set to true, will filter out any mod that doesn''t have a default

          file that is compatible with the client. This is usually due to a bad

          file structure of the file (which might cause unexpected behaviours on

          the user''s machine - such as overriding other mods installed).'
        schema:
          type: boolean
        x-position: 17
      - name: modsSearchEnhancedFeatures
        in: query
        description: Bitwise number with values from ModsSearchEnhancedFeatures
        schema:
          type: integer
          format: int64
        x-position: 18
      - 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: 19
      - 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: 20
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Search_Mods_Response'
        '500':
          description: ''
        '400':
          description: ''
  /v2/mods/community-picks-candidates:
    post:
      tags:
      - Mods
      operationId: Mods_GetCommunityPicksCandidates
      requestBody:
        x-name: request
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CommunityPicksCandidatesRequests'
        required: true
        x-position: 1
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Search_Mods_Response'
        '404':
          description: ''
  /v2/mods/app-search:
    post:
      tags:
      - Mods
      operationId: App Mods Search2
      requestBody:
        x-name: request
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SearchModsPostRequest'
        required: true
        x-position: 1
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Search_Mods_Response'
        '500':
          description: ''
        '400':
          description: ''
  /v2/mods/{modId}:
    get:
      tags:
      - Mods
      description: Get a single mod.
      operationId: Get Mod2
      parameters:
      - name: modId
        in: path
        required: true
        description: The mod id
        schema:
          type: integer
          format: int32
        x-position: 1
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Get_Mod_Response'
        '500':
          description: ''
        '404':
          description: ''
  /v2/mods/get-mods-by-ids:
    post:
      tags:
      - Mods
      description: Get a list of mods belonging the the same game.
      operationId: Get Mods22
      requestBody:
        x-name: requestBody
        description: Request body containing an array of mod ids, mod ids must belong to the same game.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GetExpandedModsByIdsListRequestBody'
        required: true
        x-position: 1
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResponseOfListOfModDto2'
        '500':
          description: ''
        '400':
          description: ''
  /v2/mods/featured:
    post:
      tags:
      - Mods
      description: Get a list of featured, popular and recently updated mods.
      operationId: Get Featured Mods2
      requestBody:
        x-name: filter
        description: Match results for a game and exclude specific mods
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GetFeaturedModsRequestBody'
        required: true
        x-position: 1
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResponseOfFeaturedModsResponseOfModDto2'
        '500':
          description: ''
        '400':
          description: ''
        '404':
          description: ''
components:
  schemas:
    HighlightsModDto:
      type: object
      additionalProperties: false
      properties:
        id:
          type: integer
          format: int32
        logo:
          $ref: '#/components/schemas/ModAsset'
        name:
          type: string
        authors:
          type: array
          items:
            $ref: '#/components/schemas/ModAuthor'
        ratingDetails:
          $ref: '#/components/schemas/RatingDetails'
        downloadCount:
          type: integer
          format: int64
        fileSize:
          type:
          - integer
          - 'null'
          format: int64
    Search_Mods_Response:
      type: object
      additionalProperties: false
      properties:
        data:
          type: array
          description: The response data
          items:
            $ref: '#/components/schemas/Mod'
        pagination:
          description: The response pagination information
          $ref: '#/components/schemas/Pagination'
    ApiResponseOfListOfModDto:
      type: object
      additionalProperties: false
      properties:
        data:
          type: array
          description: The response data
          items:
            $ref: '#/components/schemas/ModDto'
    FileRelationType:
      type: integer
      description: '1 = EmbeddedLibrary

        2 = OptionalDependency

        3 = RequiredDependency

        4 = Tool

        5 = Incompatible

        6 = Include'
      x-enumNames:
      - EmbeddedLibrary
      - OptionalDependency
      - RequiredDependency
      - Tool
      - Incompatible
      - Include
      enum:
      - 1
      - 2
      - 3
      - 4
      - 5
      - 6
    FeaturedModsResponseOfModDto:
      type: object
      additionalProperties: false
      properties:
        featured:
          type: array
          items:
            $ref: '#/components/schemas/ModDto'
        popular:
          type: array
          items:
            $ref: '#/components/schemas/ModDto'
        recentlyUpdated:
          type: array
          items:
            $ref: '#/components/schemas/ModDto'
    ApiResponseOfListOfModDto2:
      type: object
      additionalProperties: false
      properties:
        data:
          type: array
          description: The response data
          items:
            $ref: '#/components/schemas/ModDto2'
    AppHighlightsResponse2:
      allOf:
      - $ref: '#/components/schemas/AppHighlightsResponseBase'
      - type: object
        additionalProperties: false
        properties:
          shelves:
            type: array
            items:
              $ref: '#/components/schemas/GameShelf2'
    FileDependency:
      type: object
      additionalProperties: false
      properties:
        modId:
          type: integer
          format: int32
        relationType:
          $ref: '#/components/schemas/FileRelationType'
    GalleryItem:
      type: object
      additionalProperties: false
      properties:
        description:
          type: string
        isFeatured:
          type: boolean
        displayIndex:
          type:
          - integer
          - 'null'
          format: int32
        title:
          type: string
        url:
          type: string
        thumbnailUrl:
          type: string
        type:
          $ref: '#/components/schemas/GalleryItemType'
    Mod:
      type: object
      additionalProperties: false
      properties:
        id:
          type: integer
          description: The mod id
          format: int32
        gameId:
          type: integer
          description: The game id this mod is for
          format: int32
        name:
          type: string
          description: The name of the mod
        slug:
          type: string
          description: The mod slug that would appear in the URL
        links:
          description: Relevant links for the mod such as Issue tracker and Wiki
          $ref: '#/components/schemas/ModLinks'
        summary:
          type: string
          description: Mod summary
        status:
          description: Current mod status
          $ref: '#/components/schemas/ModStatus'
        downloadCount:
          type: integer
          description: Number of downloads for the mod
          format: int64
        isFeatured:
          type: boolean
          description: Whether the mod is included in the featured mods list
        primaryCategoryId:
          type: integer
          description: The main category of the mod as it was chosen by the mod author
          format: int32
        categories:
          type: array
          description: List of categories that this mod is related to
          items:
            $ref: '#/components/schemas/Category'
        classId:
          type:
          - integer
          - 'null'
          description: The class id this mod belongs to
          format: int32
        authors:
          type: array
          description: List of the mod's authors
          items:
            $ref: '#/components/schemas/ModAuthor'
        logo:
          description: The mod's logo asset
          $ref: '#/components/schemas/ModAsset'
        screenshots:
          type: array
          description: List of screenshots assets
          items:
            $ref: '#/components/schemas/ModAsset'
        videos:
          type: array
          description: List of videos assets
          items:
            $ref: '#/components/schemas/ModAsset'
        mainFileId:
          type: integer
          description: The id of the main file of the mod
          format: int32
        latestFiles:
          type: array
          description: List of latest files of the mod
          items:
            $ref: '#/components/schemas/File'
        latestFilesIndexes:
          type: array
          description: List of file related details for the latest files of the mod
          items:
            $ref: '#/components/schemas/FileIndex'
        latestEarlyAccessFilesIndexes:
          type: array
          description: List of file related details for the latest early access files of the mod
          items:
            $ref: '#/components/schemas/FileIndex'
        dateCreated:
          type: string
          description: The creation date of the mod
          format: date-time
        dateModified:
          type: string
          description: The last time the mod was modified
          format: date-time
        dateReleased:
          type: string
          description: The release date of the mod
          format: date-time
        dateLastReleasedFile:
          type:
          - string
          - 'null'
          description: The last file release date
          format: date-time
        allowModDistribution:
          type:
          - boolean
          - 'null'
          description: Is mod allowed to be distributed
        gamePopularityRank:
          type: integer
          description: The mod popularity rank for the game
          format: int32
        isAvailable:
          type: boolean
          description: Is the mod available for search. This can be false when a mod is experimental, in a deleted state or has only alpha files
        hasCommentsEnabled:
          type:
          - boolean
          - 'null'
          description: Does the mod enable comments
        thumbsUpCount:
          type: integer
          description: The mod's thumbs up count
          format: int32
        ratingDetails:
          description: The mod's Rating Details
          $ref: '#/components/schemas/RatingDetails'
        serverAffiliation:
          description: The mod's server affiliation details
          $ref: '#/components/schemas/ServerAffiliation'
        socialLinks:
          type: array
          description: The mod's social links
          items:
            $ref: '#/components/schemas/SocialLink'
        galleryItems:
          type: array
          description: The mod's gallery items
          items:
            $ref: '#/components/schemas/GalleryItem'
        featuredProjectTag:
          $ref: '#/components/schemas/ClientFeaturedProjectTag'
    ModAsset:
      type: object
      additionalProperties: false
      properties:
        id:
          type: integer
          format: int32
        modId:
          type: integer
          format: int32
        title:
          type: string
        description:
          type: string
        thumbnailUrl:
          type: string
        url:
          type: string
    AppCarouselItem:
      type: object
      additionalProperties: false
      properties:
        title:
          type: string
        youtubeVideoid:
          type: string
        description:
          type: string
        primaryButtonTitle:
          type: string
        primaryButtonUrl:
          type: string
          format: uri
        secondaryButtonTitle:
          type: string
        secondaryButtonUrl:
          type: string
        backgroundImage:
          type: string
          format: uri
    ModLoaderType:
      type: integer
      description: '0 = Any

        1 = Forge

        2 = Cauldron

        3 = LiteLoader

        4 = Fabric

        5 = Quilt

        6 = NeoForge'
      x-enumNames:
      - Any
      - Forge
      - Cauldron
      - LiteLoader
      - Fabric
      - Quilt
      - NeoForge
      enum:
      - 0
      - 1
      - 2
      - 3
      - 4
      - 5
      - 6
    ThemePage:
      type: object
      additionalProperties: false
      properties:
        id:
          type: integer
          format: int32
        mainTitle:
          type: string
        subTitle:
          type: string
        bannerUrl:
          type: string
        modIds:
          type: array
          items:
            type: integer
            format: int32
    DestinationType:
      type: integer
      description: '1 = Mod

        2 = Themepage'
      x-enumNames:
      - Mod
      - Themepage
      enum:
      - 1
      - 2
    ModAuthor:
      type: object
      additionalProperties: false
      properties:
        id:
          type: integer
          format: int32
        name:
          type: string
        url:
          type: string
        avatarUrl:
          type: string
    ApiResponseOfFeaturedModsResponseOfModDto2:
      type: object
      additionalProperties: false
      properties:
        data:
          description: The response data
          $ref: '#/components/schemas/FeaturedModsResponseOfModDto2'
    RatingScore:
      type: integer
      description: '0 = NotEnoughReviews

        1 = OverwhelminglyPositive

        2 = VeryPositive

        3 = Positive

        4 = MostlyPositive

        5 = Mixed

        6 = MostlyNegative

        7 = Negative

        8 = VeryNegative

        9 = OverwhelminglyNegative'
      x-enumNames:
      - NotEnoughReviews
      - OverwhelminglyPositive
      - VeryPositive
      - Positive
      - MostlyPo

# --- truncated at 32 KB (65 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/curse/refs/heads/main/openapi/curse-mods-api-openapi.yml