openapi: 3.0.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: nullable: true $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 format: int32 nullable: true x-position: 12 - name: authorId in: query description: Filter only mods that the given authorId is a member of. schema: type: integer format: int32 nullable: true x-position: 13 - name: primaryAuthorId in: query description: Filter only mods that the given primaryAuthorId is the owner of. schema: type: integer format: int32 nullable: true 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: nullable: true $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 format: int32 nullable: true x-position: 12 - name: authorId in: query description: Filter only mods that the given authorId is a member of. schema: type: integer format: int32 nullable: true x-position: 13 - name: primaryAuthorId in: query description: Filter only mods that the given primaryAuthorId is the owner of. schema: type: integer format: int32 nullable: true 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: File: type: object additionalProperties: false properties: id: type: integer description: The file id format: int32 gameId: type: integer description: The game id related to the mod that this file belongs to format: int32 modId: type: integer description: The mod id format: int32 isAvailable: type: boolean description: Whether the file is available to download displayName: type: string description: Display name of the file fileName: type: string description: Exact file name releaseType: description: The file release type $ref: '#/components/schemas/FileReleaseType' fileStatus: description: Status of the file $ref: '#/components/schemas/FileStatus' hashes: type: array description: The file hash (i.e. md5 or sha1) items: $ref: '#/components/schemas/FileHash' fileDate: type: string description: The file timestamp format: date-time fileLength: type: integer description: The file length in bytes format: int64 downloadCount: type: integer description: The number of downloads for the file format: int64 fileSizeOnDisk: type: integer description: The file's size on disk format: int64 nullable: true downloadUrl: type: string description: The file download URL gameVersions: type: array description: List of game versions this file is relevant for items: type: string sortableGameVersions: type: array description: Metadata used for sorting by game versions items: $ref: '#/components/schemas/SortableGameVersion' dependencies: type: array description: List of dependencies files items: $ref: '#/components/schemas/FileDependency' exposeAsAlternative: type: boolean nullable: true parentProjectFileId: type: integer format: int32 nullable: true alternateFileId: type: integer format: int32 nullable: true isServerPack: type: boolean nullable: true serverPackFileId: type: integer format: int32 nullable: true isEarlyAccessContent: type: boolean nullable: true earlyAccessEndDate: type: string format: date-time nullable: true fileFingerprint: type: integer format: int64 modules: type: array items: $ref: '#/components/schemas/FileModule' cookingInfo: $ref: '#/components/schemas/CookerInfo' ModLinks: type: object additionalProperties: false properties: websiteUrl: type: string wikiUrl: type: string issuesUrl: type: string sourceUrl: type: string ApiResponseOfHomepageHighlightsResponse3: type: object additionalProperties: false properties: data: description: The response data $ref: '#/components/schemas/HomepageHighlightsResponse3' 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 - MostlyPositive - Mixed - MostlyNegative - Negative - VeryNegative - OverwhelminglyNegative enum: - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 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 format: int64 nullable: true 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 description: The class id this mod belongs to format: int32 nullable: true 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 description: The last file release date format: date-time nullable: true allowModDistribution: type: boolean description: Is mod allowed to be distributed nullable: true 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 description: Does the mod enable comments nullable: true 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' ApiResponseWithPaginationOfListOfModDto: type: object additionalProperties: false properties: data: type: array description: The response data items: $ref: '#/components/schemas/ModDto' pagination: description: The response pagination information $ref: '#/components/schemas/Pagination' FileModule: type: object additionalProperties: false properties: name: type: string fingerprint: type: integer format: int64 HashAlgo: type: integer description: '1 = Sha1 2 = Md5' x-enumNames: - Sha1 - Md5 enum: - 1 - 2 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 SearchModsPostRequest: allOf: - $ref: '#/components/schemas/SearchModsParameters' - type: object additionalProperties: false properties: index: type: integer format: int32 pageSize: type: integer format: int32 FeaturedModsResponseOfModDto2: type: object additionalProperties: false properties: featured: type: array items: $ref: '#/components/schemas/ModDto2' popular: type: array items: $ref: '#/components/schemas/ModDto2' recentlyUpdated: type: array items: $ref: '#/components/schemas/ModDto2' AffiliationServiceType: type: integer description: 1 = Bisect x-enumNames: - Bisect enum: - 1 HomepageHighlightsResponse: type: object additionalProperties: false properties: categories: type: array items: $ref: '#/components/schemas/Category' carousel: type: array items: $ref: '#/components/schemas/Mod' premium: type: array items: $ref: '#/components/schemas/Mod' trending: type: array items: $ref: '#/components/schemas/Mod' mostDownloaded: type: array items: $ref: '#/components/schemas/Mod' latest: type: array items: $ref: '#/components/schemas/Mod' communityPicksMods: type: array items: $ref: '#/components/schemas/Mod' modSquadPicksMods: type: array items: $ref: '#/components/schemas/Mod' FileDependency: type: object additionalProperties: false properties: modId: type: integer format: int32 relationType: $ref: '#/components/schemas/FileRelationType' ApiResponseOfFeaturedModsResponseOfModDto2: type: object additionalProperties: false properties: data: description: The response data $ref: '#/components/schemas/FeaturedModsResponseOfModDto2' GetHighlightsFeaturedRequest: allOf: - $ref: '#/components/schemas/GetFeaturedModsRequestBase' - type: object additionalProperties: false properties: filters: $ref: '#/components/schemas/HighlightsFilters' QueryParams: type: object additionalProperties: false properties: classId: type: integer format: int32 nullable: true premiumStatus: $ref: '#/components/schemas/ModPremiumTypeEnum' categoryIds: type: array items: type: integer format: int32 sortingOption: $ref: '#/components/schemas/ModsSearchSortField' sortingOrder: $ref: '#/components/schemas/SortOrder' CarouselItem: type: object additionalProperties: false properties: mainTitle: type: string subTitle: type: string mainImageUrl: type: string tileImageUrl: type: string customTag: type: string destination: $ref: '#/components/schemas/Destination' ctaText: type: string layout: $ref: '#/components/schemas/ItemLayout' ApiResponseOfAppHighlightsResponse: type: object additionalProperties: false properties: data: description: The response data $ref: '#/components/schemas/AppHighlightsResponse' GetExpandedModsByIdsListRequestBody: allOf: - $ref: '#/components/schemas/GetModsByIdsListRequestBody' - type: object additionalProperties: false properties: devModIds: type: array items: type: integer format: int32 filterPcOnly: type: boolean nullable: true 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' AppHighlightsResponse2: allOf: - $ref: '#/components/schemas/AppHighlightsResponseBase' - type: object additionalProperties: false properties: shelves: type: array items: $ref: '#/components/schemas/GameShelf2' ShelfContent: type: object additionalProperties: false properties: mods: type: array items: $ref: '#/components/schemas/HighlightsModDto' categories: type: array items: $ref: '#/components/schemas/Category' banner: $ref: '#/components/schemas/CarouselItem' SearchModsParameters: type: object additionalProperties: false properties: gameId: type: integer description: Filter by game id. format: int32 classId: type: integer description: Filter by section id (discoverable via Categories) format: int32 categoryId: type: integer description: Filter by category id format: int32 categoryIds: type: string 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" gameVersion: type: string description: Filter by game version string gameVersions: type: string 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" searchFilter: type: string description: Filter by free text search in the mod name and author sortField: description: Filter by ModsSearchSortField enumeration $ref: '#/components/schemas/ModsSearchSortField' sortOrder: description: '''asc'' if sort is in ascending order, ''desc'' if sort is in descending order' $ref: '#/components/schemas/SortOrder' modLoaderType: description: Filter only mods associated to a given modloader (Forge, Fabric ...). Must be coupled with gameVersion. nullable: true $ref: '#/components/schemas/ModLoaderType' modLoaderTypes: type: string description: "Filter by a list of mod loader types - this will override modLoaderType\nmodLoaderTypes=[Forge, Fabric, ...]\n \nMax values = 5" gameVersionTypeId: type: integer description: Filter only mods that contain files tagged with versions of the given gameVersionTypeId format: int32 nullable: true authorId: type: integer description: Filter only mods that the given authorId is a member of. format: int32 nullable: true primaryAuthorId: type: integer description: Filter only mods that the given primaryAuthorId is the owner of. format: int32 nullable: true premiumType: description: Filter only mods that are Premium or not. $ref: '#/components/schemas/ModPremiumTypeEnum' slug: type: string description: Filter by slug (coupled with classId will result in a unique result). clientCompatible: type: boolean 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).' excludeModIds: type: array items: type: integer format: int32 modsSearchEnhancedFeatures: type: integer description: Bitwise number with values from ModsSearchEnhancedFeatures format: int64 CookerInfo: type: object additionalProperties: false properties: cookerVersion: type: string cookerRevision: type: string ModPremiumTypeEnum: type: integer description: '0 = All 1 = Premium 2 = Free' x-enumNames: - All - Premium - Free enum: - 0 - 1 - 2 FileStatus: type: integer description: '1 = Processing 2 = ChangesRequired 3 = UnderReview 4 = Approved 5 = Rejected 6 = MalwareDetected 7 = Deleted 8 = Archived 9 = Testing 10 = Released 11 = ReadyForReview 12 = Deprecated 13 = Baking 14 = AwaitingPublishing 15 = FailedPublishing' x-enumNames: - Processing - ChangesRequired - UnderReview - Approved - Rejected - MalwareDetected - Deleted - Archived - Testing - Released - ReadyForReview - Deprecated - Baking - AwaitingPublishing - FailedPublishing enum: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 Category: type: object additionalProperties: false properties: id: type: integer description: The category id format: int32 gameId: type: integer description: The game id related to the category format: int32 name: type: string description: Category name slug: type: string description: The category slug as it appear in the URL url: type: string description: The category URL iconUrl: type: string description: URL for the category icon dateModified: type: string description: Last modified date of the category format: date-time isClass: type: boolean description: A top level category for other categories nullable: true classId: type: integer description: The class id of the category, meaning - the class of which this category is under format: int32 nullable: true parentCategoryId: type: integer description: The parent category for this category format: int32 nullable: true displayIndex: type: integer description: The display index for this category format: int32 nullable: true HomepageHighlightsResponse2: type: object additionalProperties: false properties: carousel: type: array items: $ref: '#/components/schemas/CarouselItem' shelves: type: array items: $ref: '#/components/schemas/Shelf' themePages: type: array items: $ref: '#/components/schemas/ThemePage' FileReleaseType: type: integer description: '1 = Release 2 = Beta 3 = Alpha' x-enumNames: - Release - Beta - Alpha enum: - 1 - 2 - 3 GameShelf2: allOf: - $ref: '#/components/schemas/GameShelfBase' - type: object additionalProperties: false properties: projects: type: array items: $ref: '#/components/schemas/ModDto2' GameShelfBase: type: object additionalProperties: false properties: title: type: string type: type: string classId: type: integer format: int32 sortField: $ref: '#/components/schemas/ModsSearchSortField' ApiResponseOfHomepageHighlightsResponse: type: object additionalProperties: false properties: data: description: The response data $ref: '#/components/schemas/HomepageHighlightsResponse' ItemLayout: type: integer description: '0 = Default 1 = SaleView 2 = SmallSaleView' x-enumNames: - Default - SaleView - SmallSaleView enum: - 0 - 1 - 2 ShelfType: type: integer description: '0 = Category 1 = Generated 2 = Custom 3 = Banner' x-enumNames: - Category - Generated - Custom - Banner enum: - 0 - 1 - 2 - 3 SortOrder: type: string description: '' x-enumNames: - asc - desc enum: - asc - desc ModStatus: type: integer description: '1 = New 2 = ChangesRequired 3 = UnderSoftReview 4 = Approved 5 = Rejected 6 = ChangesMade 7 = Inactive 8 = Abandoned 9 = Deleted 10 = UnderReview' x-enumNames: - New - ChangesRequired - UnderSoftReview - Approved - Rejected - ChangesMade - Inactive - Abandoned - Deleted - UnderReview enum: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 ClientFeaturedProjectTag: type: integer description: '0 = None 1 = Sponsored 2 = HiddenGem 3 = Popular' x-enumNames: - None - Sponsored - HiddenGem - Popular enum: - 0 - 1 - 2 - 3 DestinationType: type: integer description: '1 = Mod 2 = Themepage' x-enumNames: - Mod - Themepage enum: - 1 - 2 GalleryItem: type: object additionalProperties: false properties: description: type: string isFeatured: type: boolean displayIndex: type: integer format: int32 nullable: true title: type: string url: type: string thumbnailUrl: type: string type: $ref: '#/components/schemas/GalleryItemType' Get Mod Response: type: object additionalProperties: false properties: data: description: The response data $ref: '#/components/schemas/Mod' ApiResponseOfAppHighlightsResponse2: type: object additionalProperties: false properties: data: description: The response data $ref: '#/components/schemas/AppHighlightsResponse2' Destination: type: object additionalProperties: false properties: type: $ref: '#/components/schemas/DestinationType' value: type: integer format: int32 BaseModDto: type: object x-abstract: true 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 description: The class id this mod belongs to format: int32 nullable: true 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' 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' supportsCrossPlatform: type: boolean nullable: true 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 allowModDistribution: type: boolean description: Is mod allowed to be distributed nullable: true 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 description: Does the mod enable comments nullable: true 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' featuredProjectTag: $ref: '#/components/schemas/ClientFeaturedProjectTag' SocialLinkType: type: integer description: '1 = Mastodon 2 = Discord 3 = Website 4 = Facebook 5 = Twitter 6 = Instagram 7 = Patreon 8 = Twitch 9 = Reddit 10 = Youtube 11 = TikTok 12 = Pinterest 13 = Github 14 = Bsky 15 = Paypal 16 = PaypalHosted 17 = GithubSponsors 18 = Kofi 19 = BuyMeACoffee' x-enumNames: - Mastodon - Discord - Website - Facebook - Twitter - Instagram - Patreon - Twitch - Reddit - Youtube - TikTok - Pinterest - Github - Bsky - Paypal - PaypalHosted - GithubSponsors - Kofi - BuyMeACoffee enum: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - 18 - 19 ApiResponseOfFeaturedModsResponseOfModDto: type: object additionalProperties: false properties: data: description: The response data $ref: '#/components/schemas/FeaturedModsResponseOfModDto' GameShelf: allOf: - $ref: '#/components/schemas/GameShelfBase' - type: object additionalProperties: false properties: projects: type: array items: $ref: '#/components/schemas/ModDto' 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' ModsSearchSortField: type: integer description: '1 = Featured 2 = Popularity 3 = LastUpdated 4 = Name 5 = Author 6 = TotalDownloads 7 = Category 8 = GameVersion 9 = EarlyAccess 10 = FeaturedReleased 11 = ReleasedDate 12 = Rating 13 = Relevancy' x-enumNames: - Featured - Popularity - LastUpdated - Name - Author - TotalDownloads - Category - GameVersion - EarlyAccess - FeaturedReleased - ReleasedDate - Rating - Relevancy enum: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 AppHighlightsResponse: allOf: - $ref: '#/components/schemas/AppHighlightsResponseBase' - type: object additionalProperties: false properties: shelves: type: array items: $ref: '#/components/schemas/GameShelf' GetFeaturedModsRequestBase: type: object additionalProperties: false properties: gameId: type: integer format: int32 excludedModIds: type: array items: type: integer format: int32 ApiResponseOfModDto: type: object additionalProperties: false properties: data: description: The response data $ref: '#/components/schemas/ModDto' ServerAffiliation: type: object additionalProperties: false properties: isEnabled: type: boolean isDefaultBanner: type: boolean hasDiscount: type: boolean affiliationService: $ref: '#/components/schemas/AffiliationServiceType' defaultBannerCustomTitle: type: string customImageUrl: type: string affiliationLink: type: string ApiResponseOfListOfModDto: type: object additionalProperties: false properties: data: type: array description: The response data items: $ref: '#/components/schemas/ModDto' Shelf: type: object additionalProperties: false properties: displayIndex: type: integer format: int32 type: $ref: '#/components/schemas/ShelfType' name: type: string queryParams: $ref: '#/components/schemas/QueryParams' content: $ref: '#/components/schemas/ShelfContent' destination: $ref: '#/components/schemas/Destination' seeAllButton: type: boolean 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 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 AppHighlightsResponseBase: type: object additionalProperties: false properties: carousel: type: array items: $ref: '#/components/schemas/AppCarouselItem' ApiResponseOfHomepageHighlightsResponse2: type: object additionalProperties: false properties: data: description: The response data $ref: '#/components/schemas/HomepageHighlightsResponse2' ApiResponseOfListOfModDto2: type: object additionalProperties: false properties: data: type: array description: The response data items: $ref: '#/components/schemas/ModDto2' RatingDetails: type: object additionalProperties: false properties: rating: type: number format: decimal nullable: true totalRatings: type: integer format: int32 nullable: true positiveRatings: type: integer format: int32 nullable: true score: $ref: '#/components/schemas/RatingScore' GetFeaturedModsRequestBody: allOf: - $ref: '#/components/schemas/GetFeaturedModsRequestBase' - type: object additionalProperties: false properties: gameVersionTypeId: type: integer format: int32 nullable: true clientCompatible: type: boolean 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 GetModsByIdsListRequestBody: type: object additionalProperties: false properties: modIds: type: array items: type: integer format: int32 FileHash: type: object additionalProperties: false properties: value: type: string algo: $ref: '#/components/schemas/HashAlgo' HighlightsFilters: type: object additionalProperties: false properties: carousel: type: boolean banners: type: boolean categories: type: boolean themePages: type: boolean latest: type: boolean mostDownloaded: type: boolean premium: type: boolean trending: type: boolean modSquadPicksModIds: type: boolean communityPicksModIds: type: boolean ModAuthor: type: object additionalProperties: false properties: id: type: integer format: int32 name: type: string url: type: string avatarUrl: type: string 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 ModDto: allOf: - $ref: '#/components/schemas/BaseModDto' - type: object additionalProperties: false properties: screenshots: type: array description: List of screenshots assets items: $ref: '#/components/schemas/ModAsset' FileIndex: type: object additionalProperties: false properties: gameVersion: type: string fileId: type: integer format: int32 filename: type: string releaseType: $ref: '#/components/schemas/FileReleaseType' gameVersionTypeId: type: integer format: int32 nullable: true modLoader: nullable: true $ref: '#/components/schemas/ModLoaderType' SortableGameVersion: type: object additionalProperties: false properties: gameVersionName: type: string description: Original version name (e.g. 1.5b) gameVersionPadded: type: string description: Used for sorting (e.g. 0000000001.0000000005) gameVersion: type: string description: game version clean name (e.g. 1.5) gameVersionReleaseDate: type: string description: Game version release date format: date-time gameVersionTypeId: type: integer description: Game version type id format: int32 nullable: true 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 GalleryItemType: type: integer description: '0 = None 1 = Screenshot 2 = EmbeddedVideo' x-enumNames: - None - Screenshot - EmbeddedVideo enum: - 0 - 1 - 2 CommunityPicksCandidatesRequests: type: object additionalProperties: false properties: gameId: type: integer format: int32 fromDate: type: string format: date-time toDate: type: string format: date-time HomepageHighlightsResponse3: type: object additionalProperties: false properties: categories: type: array items: $ref: '#/components/schemas/Category' carousel: type: array items: $ref: '#/components/schemas/CarouselItem' banners: type: array items: $ref: '#/components/schemas/CarouselItem' premium: type: array items: $ref: '#/components/schemas/Mod' trending: type: array items: $ref: '#/components/schemas/Mod' mostDownloaded: type: array items: $ref: '#/components/schemas/Mod' latest: type: array items: $ref: '#/components/schemas/Mod' communityPicksMods: type: array items: $ref: '#/components/schemas/Mod' modSquadPicksMods: type: array items: $ref: '#/components/schemas/Mod' themePages: type: array items: $ref: '#/components/schemas/ThemePage' SocialLink: type: object additionalProperties: false properties: type: $ref: '#/components/schemas/SocialLinkType' url: type: string ModDto2: allOf: - $ref: '#/components/schemas/BaseModDto' - type: object additionalProperties: false properties: galleryItems: type: array description: List of screenshots assets items: $ref: '#/components/schemas/GalleryItem' String Response: type: object additionalProperties: false properties: data: type: string description: The response data 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))