Nexus Mods API v2 Reference

Welcome to our GraphQL API documentation! This API allows you to interact with our platform programmatically, enabling you to access and manipulate data in a flexible and efficient manner.

🚧 Work in Progress

Warning, adventurer! This API is still in development, and the road ahead may shift beneath your feet. Here’s what you need to know before you charge in:

  • New features and endpoints are being added all the time
  • Existing stuff may change, evolve, or even disappear without warning
  • Data structures and behavior may not be final
  • Some features are half-built and may act a little weird
  • Expected features may be missing or incomplete
  • There may be dragons lurking in the shadows (or just some bugs)

We’re still building, testing, and tweaking things behind the scenes. So expect the unexpected, and if you use this in a user-facing app, make sure you have appropriate error handling. We’re not at the "final boss" stage β€” we will be providing full documentation and a way for users to register their own OAuth clients once the API is complete.

πŸ” Looking for the Stable Version?

The current V1 REST API remains available and will continue to be supported for the foreseeable future.

πŸ” Authentication Notes:

Most of GraphQL V2 is accessible without authentication, but some endpoints do require an OAuth token. If you're working on something that needs it, feel free to contact our support team for assistance.

API Endpoints
https://api.nexusmods.com/v2/graphql

Queries

categories

Description

Get a list of categories

Response

Returns [Category!]

Arguments
Name Description
gameId - Int Game ID
global - Boolean If true, include all global categories

Example

Query
query categories(
  $gameId: Int,
  $global: Boolean
) {
  categories(
    gameId: $gameId,
    global: $global
  ) {
    approved
    approvedBy
    categoryGames {
      ...GameFragment
    }
    createdAt
    description
    discardedAt
    id
    name
    parentId
    suggestedBy
    updatedAt
  }
}
Variables
{"gameId": 987, "global": false}
Response
{
  "data": {
    "categories": [
      {
        "approved": true,
        "approvedBy": 123,
        "categoryGames": [Game],
        "createdAt": "2007-12-03T10:15:30Z",
        "description": "abc123",
        "discardedAt": "2007-12-03T10:15:30Z",
        "id": 987,
        "name": "xyz789",
        "parentId": 987,
        "suggestedBy": 987,
        "updatedAt": "2007-12-03T10:15:30Z"
      }
    ]
  }
}

category

Description

Get a category by ID

Response

Returns a Category

Arguments
Name Description
id - ID! Category ID

Example

Query
query category($id: ID!) {
  category(id: $id) {
    approved
    approvedBy
    categoryGames {
      ...GameFragment
    }
    createdAt
    description
    discardedAt
    id
    name
    parentId
    suggestedBy
    updatedAt
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "category": {
      "approved": false,
      "approvedBy": 987,
      "categoryGames": [Game],
      "createdAt": "2007-12-03T10:15:30Z",
      "description": "xyz789",
      "discardedAt": "2007-12-03T10:15:30Z",
      "id": 123,
      "name": "xyz789",
      "parentId": 987,
      "suggestedBy": 987,
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

collection

Description

Get a collection by slug

Response

Returns a Collection!

Arguments
Name Description
slug - String Unique slug for a collection
viewAdultContent - Boolean Overrides adult content in user preferences
domainName - String Specifies game domain. Will return a NOT_FOUND response if invalid domain is passed.

Example

Query
query collection(
  $slug: String,
  $viewAdultContent: Boolean,
  $domainName: String
) {
  collection(
    slug: $slug,
    viewAdultContent: $viewAdultContent,
    domainName: $domainName
  ) {
    adultContent
    allowUserMedia
    bugReport {
      ...CollectionBugReportFragment
    }
    bugReports {
      ...CollectionBugReportConnectionFragment
    }
    category {
      ...CategoryFragment
    }
    collectionChangelogs {
      ...CollectionChangelogFragment
    }
    collectionStatus
    commentLink
    commentThread {
      ...CommentThreadFragment
    }
    createdAt
    currentRevision {
      ...CollectionRevisionFragment
    }
    description
    discardReason {
      ...CollectionDiscardReasonFragment
    }
    discardedAt
    downloadLink
    draftRevisionNumber
    endorsements
    firstPublishedAt
    forumTopic {
      ...ForumTopicFragment
    }
    game {
      ...GameFragment
    }
    gameId
    headerImage {
      ...CollectionImageFragment
    }
    id
    lastPublishedAt
    latestPublishedRevision {
      ...CollectionRevisionFragment
    }
    latestPublishedRevisionRating
    listedAt
    manuallyVerifyMedia
    media {
      ... on CollectionImage {
        ...CollectionImageFragment
      }
      ... on CollectionVideo {
        ...CollectionVideoFragment
      }
    }
    metadata {
      ...CollectionMetadataFragment
    }
    moderationJwt
    moderations {
      ...ModerationFragment
    }
    name
    overallRating
    overallRatingCount
    permissions {
      ...PermissionFragment
    }
    publicRevisions {
      ...PublicCollectionRevisionFragment
    }
    publishedAt
    recentRating
    recentRatingCount
    revisions {
      ...CollectionRevisionFragment
    }
    slug
    summary
    tags {
      ...TagFragment
    }
    tileImage {
      ...CollectionImageFragment
    }
    totalDownloads
    uniqueDownloads
    updatedAt
    user {
      ...UserFragment
    }
    userId
    viewerBlocked
  }
}
Variables
{
  "slug": "abc123",
  "viewAdultContent": false,
  "domainName": "abc123"
}
Response
{
  "data": {
    "collection": {
      "adultContent": false,
      "allowUserMedia": false,
      "bugReport": CollectionBugReport,
      "bugReports": CollectionBugReportConnection,
      "category": Category,
      "collectionChangelogs": [CollectionChangelog],
      "collectionStatus": "listed",
      "commentLink": "abc123",
      "commentThread": CommentThread,
      "createdAt": "2007-12-03T10:15:30Z",
      "currentRevision": CollectionRevision,
      "description": "abc123",
      "discardReason": CollectionDiscardReason,
      "discardedAt": "2007-12-03T10:15:30Z",
      "downloadLink": "abc123",
      "draftRevisionNumber": 987,
      "endorsements": 123,
      "firstPublishedAt": "2007-12-03T10:15:30Z",
      "forumTopic": ForumTopic,
      "game": Game,
      "gameId": 123,
      "headerImage": CollectionImage,
      "id": 123,
      "lastPublishedAt": "2007-12-03T10:15:30Z",
      "latestPublishedRevision": CollectionRevision,
      "latestPublishedRevisionRating": "abc123",
      "listedAt": "2007-12-03T10:15:30Z",
      "manuallyVerifyMedia": true,
      "media": [CollectionImage],
      "metadata": CollectionMetadata,
      "moderationJwt": "xyz789",
      "moderations": [Moderation],
      "name": "xyz789",
      "overallRating": "xyz789",
      "overallRatingCount": 987,
      "permissions": [Permission],
      "publicRevisions": [PublicCollectionRevision],
      "publishedAt": "2007-12-03T10:15:30Z",
      "recentRating": "abc123",
      "recentRatingCount": 123,
      "revisions": [CollectionRevision],
      "slug": "xyz789",
      "summary": "xyz789",
      "tags": [Tag],
      "tileImage": CollectionImage,
      "totalDownloads": 987,
      "uniqueDownloads": 987,
      "updatedAt": "2007-12-03T10:15:30Z",
      "user": User,
      "userId": 987,
      "viewerBlocked": false
    }
  }
}

collectionGames

Description

Get a list of Games containing 1 or more collections with the collection counts

Response

Returns [Game!]

Example

Query
query collectionGames {
  collectionGames {
    approvedAt
    availableTags {
      ...TagFragment
    }
    collectionCount
    domainName
    downloadCount
    forumUrl
    genre
    id
    imageCount
    mediaCount
    modCount
    name
    specificTags {
      ...TagFragment
    }
    supporterImageCount
    tileImageBlurredUrl
    tileImageUrl
    trendingPeriodDays
    uniqueDownloadCount
    videoCount
  }
}
Response
{
  "data": {
    "collectionGames": [
      {
        "approvedAt": "2007-12-03T10:15:30Z",
        "availableTags": [Tag],
        "collectionCount": 123,
        "domainName": "abc123",
        "downloadCount": {},
        "forumUrl": "abc123",
        "genre": "abc123",
        "id": 987,
        "imageCount": 987,
        "mediaCount": 987,
        "modCount": 123,
        "name": "xyz789",
        "specificTags": [Tag],
        "supporterImageCount": 987,
        "tileImageBlurredUrl": "abc123",
        "tileImageUrl": "xyz789",
        "trendingPeriodDays": 987,
        "uniqueDownloadCount": {},
        "videoCount": 123
      }
    ]
  }
}

collectionRevision

Description

Get a revision by collection slug and revision number

Response

Returns a CollectionRevision!

Arguments
Name Description
slug - String Unique slug for a collection
revision - Int Revision number for collection. If null, will return the latest published revision for this collection
viewAdultContent - Boolean Overrides adult content in user preferences
domainName - String Specifies game domain. Will return a NOT_FOUND response if invalid domain is passed.

Example

Query
query collectionRevision(
  $slug: String,
  $revision: Int,
  $viewAdultContent: Boolean,
  $domainName: String
) {
  collectionRevision(
    slug: $slug,
    revision: $revision,
    viewAdultContent: $viewAdultContent,
    domainName: $domainName
  ) {
    adultContent
    assetsSizeBytes
    collection {
      ...CollectionFragment
    }
    collectionChangelog {
      ...CollectionChangelogFragment
    }
    collectionId
    collectionSchema {
      ...CollectionSchemaFragment
    }
    collectionSchemaId
    contentPreviewLink
    createdAt
    discardedAt
    downloadLink
    externalResources {
      ...ExternalResourceFragment
    }
    fileSize
    gameVersions {
      ...GameVersionFragment
    }
    id
    installationInfo
    latest
    metadata {
      ...CollectionRevisionMetadataFragment
    }
    modAuthors {
      ...UserConnectionFragment
    }
    modCount
    modFiles {
      ...CollectionRevisionModFragment
    }
    overallRating
    overallRatingCount
    rating {
      ...AverageRatingFragment
    }
    retractionReason {
      ...RetractionReasonFragment
    }
    revision
    revisionNumber
    revisionStatus
    status
    totalDownloads
    totalSize
    uniqueDownloads
    updatedAt
  }
}
Variables
{
  "slug": "xyz789",
  "revision": 123,
  "viewAdultContent": false,
  "domainName": "xyz789"
}
Response
{
  "data": {
    "collectionRevision": {
      "adultContent": true,
      "assetsSizeBytes": {},
      "collection": Collection,
      "collectionChangelog": CollectionChangelog,
      "collectionId": 123,
      "collectionSchema": CollectionSchema,
      "collectionSchemaId": 987,
      "contentPreviewLink": "abc123",
      "createdAt": "2007-12-03T10:15:30Z",
      "discardedAt": "2007-12-03T10:15:30Z",
      "downloadLink": "abc123",
      "externalResources": [ExternalResource],
      "fileSize": {},
      "gameVersions": [GameVersion],
      "id": 987,
      "installationInfo": "abc123",
      "latest": true,
      "metadata": CollectionRevisionMetadata,
      "modAuthors": UserConnection,
      "modCount": 987,
      "modFiles": [CollectionRevisionMod],
      "overallRating": "abc123",
      "overallRatingCount": 123,
      "rating": AverageRating,
      "retractionReason": RetractionReason,
      "revision": 123,
      "revisionNumber": 987,
      "revisionStatus": "xyz789",
      "status": "xyz789",
      "totalDownloads": 987,
      "totalSize": {},
      "uniqueDownloads": 123,
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

collectionRevisionUploadUrl

Description

Get a pre-signed upload URL for B2

Response

Returns a PresignedUrl!

Example

Query
query collectionRevisionUploadUrl {
  collectionRevisionUploadUrl {
    url
    uuid
  }
}
Response
{
  "data": {
    "collectionRevisionUploadUrl": {
      "url": "abc123",
      "uuid": "xyz789"
    }
  }
}

collections

Description

Get a list of collections

Response

Returns a CollectionPage!

Arguments
Name Description
facets - CollectionsFacet Filter and aggregate by specified facets
sortBy - String Alters the sorting column used for this query. Available fields are: ['listed_at', 'endorsements_count', 'latest_published_revision_rating', 'total_downloads', 'listed_at', 'name', 'created_at', 'updated_at', 'recent_rating', 'overall_rating']
sortDirection - String Alters the sorting direction used for this query
viewAdultContent - Boolean Overrides adult content in user preferences
viewUnlisted - Boolean Shows unlisted collections (permission required)
viewListed - Boolean Shows listed collections
viewUnderModeration - Boolean Shows moderated collections (permission required)
viewDiscarded - Boolean Shows discarded collections (permission required)
gameDomain - String Filters the collections to a specific game. DEPRECATED: Prefer to use filter.
gameId - Int Filters the collections to a specific game. DEPRECATED: Prefer to use filter.
categoryId - Int Filters the collections to a specific category. DEPRECATED: Prefer to use filter.
userId - Int Filters the collections to a specific user. DEPRECATED: Prefer to use filter.
filter - CollectionsUserFilter Filter which restricts results and facets.
postFilter - CollectionsUserFilter Filter which restricts results but not facets.
offset - Int
count - Int

Example

Query
query collections(
  $facets: CollectionsFacet,
  $sortBy: String,
  $sortDirection: String,
  $viewAdultContent: Boolean,
  $viewUnlisted: Boolean,
  $viewListed: Boolean,
  $viewUnderModeration: Boolean,
  $viewDiscarded: Boolean,
  $gameDomain: String,
  $gameId: Int,
  $categoryId: Int,
  $userId: Int,
  $filter: CollectionsUserFilter,
  $postFilter: CollectionsUserFilter,
  $offset: Int,
  $count: Int
) {
  collections(
    facets: $facets,
    sortBy: $sortBy,
    sortDirection: $sortDirection,
    viewAdultContent: $viewAdultContent,
    viewUnlisted: $viewUnlisted,
    viewListed: $viewListed,
    viewUnderModeration: $viewUnderModeration,
    viewDiscarded: $viewDiscarded,
    gameDomain: $gameDomain,
    gameId: $gameId,
    categoryId: $categoryId,
    userId: $userId,
    filter: $filter,
    postFilter: $postFilter,
    offset: $offset,
    count: $count
  ) {
    facets {
      ...NodesFacetFragment
    }
    facetsData
    nodes {
      ...CollectionFragment
    }
    nodesCount
    nodesFacets {
      ...NodesFacetFragment
    }
    nodesFilter
    totalCount
  }
}
Variables
{
  "facets": CollectionsFacet,
  "sortBy": "abc123",
  "sortDirection": "xyz789",
  "viewAdultContent": false,
  "viewUnlisted": false,
  "viewListed": false,
  "viewUnderModeration": true,
  "viewDiscarded": false,
  "gameDomain": "xyz789",
  "gameId": 123,
  "categoryId": 987,
  "userId": 987,
  "filter": CollectionsUserFilter,
  "postFilter": CollectionsUserFilter,
  "offset": 123,
  "count": 987
}
Response
{
  "data": {
    "collections": {
      "facets": [NodesFacet],
      "facetsData": {},
      "nodes": [Collection],
      "nodesCount": 987,
      "nodesFacets": [NodesFacet],
      "nodesFilter": "xyz789",
      "totalCount": 987
    }
  }
}

collectionsV2

Description

Get a list of collections

Response

Returns a CollectionPage!

Arguments
Name Description
facets - CollectionsFacet Filter and aggregate by specified facets.
viewUserBlockedContent - Boolean View collections which you have blocked (e.g. via blocking authors)
filter - CollectionsSearchFilter Filter which restricts results and facets.
postFilter - CollectionsSearchFilter Filter which restricts results but not facets.
sort - [CollectionsSearchSort!]
offset - Int
count - Int

Example

Query
query collectionsV2(
  $facets: CollectionsFacet,
  $viewUserBlockedContent: Boolean,
  $filter: CollectionsSearchFilter,
  $postFilter: CollectionsSearchFilter,
  $sort: [CollectionsSearchSort!],
  $offset: Int,
  $count: Int
) {
  collectionsV2(
    facets: $facets,
    viewUserBlockedContent: $viewUserBlockedContent,
    filter: $filter,
    postFilter: $postFilter,
    sort: $sort,
    offset: $offset,
    count: $count
  ) {
    facets {
      ...NodesFacetFragment
    }
    facetsData
    nodes {
      ...CollectionFragment
    }
    nodesCount
    nodesFacets {
      ...NodesFacetFragment
    }
    nodesFilter
    totalCount
  }
}
Variables
{
  "facets": CollectionsFacet,
  "viewUserBlockedContent": true,
  "filter": CollectionsSearchFilter,
  "postFilter": CollectionsSearchFilter,
  "sort": [CollectionsSearchSort],
  "offset": 123,
  "count": 123
}
Response
{
  "data": {
    "collectionsV2": {
      "facets": [NodesFacet],
      "facetsData": {},
      "nodes": [Collection],
      "nodesCount": 123,
      "nodesFacets": [NodesFacet],
      "nodesFilter": "xyz789",
      "totalCount": 123
    }
  }
}

comment

Description

Get a comment by its ID.

Response

Returns a Comment!

Arguments
Name Description
commentId - ID! The database ID for this comment.

Example

Query
query comment($commentId: ID!) {
  comment(commentId: $commentId) {
    attachments {
      ...AttachmentFragment
    }
    body
    createdAt
    creator {
      ...UserFragment
    }
    cursor
    discardedAt
    discardedBy {
      ...UserFragment
    }
    hiddenAt
    hiddenBy {
      ...UserFragment
    }
    hiddenInternalReason
    hiddenReason
    id
    isDiscarded
    isPinned
    likesCount
    lockedAt
    lockedBy {
      ...UserFragment
    }
    moderatedByAdmin
    moderationJwt
    moderationStatus
    parent {
      ...CommentFragment
    }
    pinPriority
    pinnedBy {
      ...UserFragment
    }
    pinnedByAdmin
    replies {
      ...CommentConnectionFragment
    }
    revisions {
      ...CommentRevisionFragment
    }
    updatedAt
    viewerHasLiked
  }
}
Variables
{"commentId": "4"}
Response
{
  "data": {
    "comment": {
      "attachments": [Attachment],
      "body": "xyz789",
      "createdAt": "2007-12-03T10:15:30Z",
      "creator": User,
      "cursor": "abc123",
      "discardedAt": "2007-12-03T10:15:30Z",
      "discardedBy": User,
      "hiddenAt": "2007-12-03T10:15:30Z",
      "hiddenBy": User,
      "hiddenInternalReason": "abc123",
      "hiddenReason": "abc123",
      "id": "4",
      "isDiscarded": false,
      "isPinned": true,
      "likesCount": 987,
      "lockedAt": "2007-12-03T10:15:30Z",
      "lockedBy": User,
      "moderatedByAdmin": true,
      "moderationJwt": "xyz789",
      "moderationStatus": "none",
      "parent": Comment,
      "pinPriority": 123,
      "pinnedBy": User,
      "pinnedByAdmin": false,
      "replies": CommentConnection,
      "revisions": [CommentRevision],
      "updatedAt": "2007-12-03T10:15:30Z",
      "viewerHasLiked": true
    }
  }
}

commentThread

Description

Get a comment thread by its ID.

Response

Returns a CommentThread!

Arguments
Name Description
commentThreadId - ID! The database ID for this comment thread.

Example

Query
query commentThread($commentThreadId: ID!) {
  commentThread(commentThreadId: $commentThreadId) {
    comments {
      ...CommentConnectionFragment
    }
    id
    lockedAt
    lockedBy {
      ...UserFragment
    }
    moderatedByAdmin
    moderationStatus
    owner {
      ...UserFragment
    }
  }
}
Variables
{"commentThreadId": "4"}
Response
{
  "data": {
    "commentThread": {
      "comments": CommentConnection,
      "id": 4,
      "lockedAt": "2007-12-03T10:15:30Z",
      "lockedBy": User,
      "moderatedByAdmin": false,
      "moderationStatus": "none",
      "owner": User
    }
  }
}

externalVideo

Description

Gets an external video.

Response

Returns an ExternalVideo!

Arguments
Name Description
url - String! The external video URL.

Example

Query
query externalVideo($url: String!) {
  externalVideo(url: $url) {
    embedUrl
    id
    platform
    thumbnailUrl
    title
  }
}
Variables
{"url": "abc123"}
Response
{
  "data": {
    "externalVideo": {
      "embedUrl": "abc123",
      "id": 4,
      "platform": "youtube",
      "thumbnailUrl": "abc123",
      "title": "xyz789"
    }
  }
}

favouriteGames

Description

Gets a user's favourite games

Response

Returns [Game!]

Example

Query
query favouriteGames {
  favouriteGames {
    approvedAt
    availableTags {
      ...TagFragment
    }
    collectionCount
    domainName
    downloadCount
    forumUrl
    genre
    id
    imageCount
    mediaCount
    modCount
    name
    specificTags {
      ...TagFragment
    }
    supporterImageCount
    tileImageBlurredUrl
    tileImageUrl
    trendingPeriodDays
    uniqueDownloadCount
    videoCount
  }
}
Response
{
  "data": {
    "favouriteGames": [
      {
        "approvedAt": "2007-12-03T10:15:30Z",
        "availableTags": [Tag],
        "collectionCount": 987,
        "domainName": "abc123",
        "downloadCount": {},
        "forumUrl": "abc123",
        "genre": "abc123",
        "id": 123,
        "imageCount": 987,
        "mediaCount": 987,
        "modCount": 123,
        "name": "abc123",
        "specificTags": [Tag],
        "supporterImageCount": 123,
        "tileImageBlurredUrl": "abc123",
        "tileImageUrl": "xyz789",
        "trendingPeriodDays": 987,
        "uniqueDownloadCount": {},
        "videoCount": 987
      }
    ]
  }
}

fileHash

Description

Get Mod FileHash by md5

Response

Returns [FileHash!]!

Arguments
Name Description
md5 - String! MD5 file hashes for retrieving files

Example

Query
query fileHash($md5: String!) {
  fileHash(md5: $md5) {
    createdAt
    fileName
    fileSize
    fileType
    gameId
    md5
    modFile {
      ...ModFileFragment
    }
    modFileId
  }
}
Variables
{"md5": "xyz789"}
Response
{
  "data": {
    "fileHash": [
      {
        "createdAt": "2007-12-03T10:15:30Z",
        "fileName": "xyz789",
        "fileSize": {},
        "fileType": "abc123",
        "gameId": 987,
        "md5": "xyz789",
        "modFile": ModFile,
        "modFileId": 987
      }
    ]
  }
}

fileHashes

Description

Get a list of FileHashes

Response

Returns [FileHash!]

Arguments
Name Description
md5s - [String!]! Array of MD5 file hashes for retrieving files in bulk

Example

Query
query fileHashes($md5s: [String!]!) {
  fileHashes(md5s: $md5s) {
    createdAt
    fileName
    fileSize
    fileType
    gameId
    md5
    modFile {
      ...ModFileFragment
    }
    modFileId
  }
}
Variables
{"md5s": ["xyz789"]}
Response
{
  "data": {
    "fileHashes": [
      {
        "createdAt": "2007-12-03T10:15:30Z",
        "fileName": "abc123",
        "fileSize": {},
        "fileType": "xyz789",
        "gameId": 987,
        "md5": "abc123",
        "modFile": ModFile,
        "modFileId": 987
      }
    ]
  }
}

game

Description

Get a Game by ID or domain name

Response

Returns a Game

Arguments
Name Description
id - ID Game ID to retrieve game for
domainName - String Game domain name to retrieve game for

Example

Query
query game(
  $id: ID,
  $domainName: String
) {
  game(
    id: $id,
    domainName: $domainName
  ) {
    approvedAt
    availableTags {
      ...TagFragment
    }
    collectionCount
    domainName
    downloadCount
    forumUrl
    genre
    id
    imageCount
    mediaCount
    modCount
    name
    specificTags {
      ...TagFragment
    }
    supporterImageCount
    tileImageBlurredUrl
    tileImageUrl
    trendingPeriodDays
    uniqueDownloadCount
    videoCount
  }
}
Variables
{"id": 4, "domainName": "xyz789"}
Response
{
  "data": {
    "game": {
      "approvedAt": "2007-12-03T10:15:30Z",
      "availableTags": [Tag],
      "collectionCount": 123,
      "domainName": "xyz789",
      "downloadCount": {},
      "forumUrl": "abc123",
      "genre": "xyz789",
      "id": 123,
      "imageCount": 123,
      "mediaCount": 987,
      "modCount": 987,
      "name": "abc123",
      "specificTags": [Tag],
      "supporterImageCount": 987,
      "tileImageBlurredUrl": "abc123",
      "tileImageUrl": "abc123",
      "trendingPeriodDays": 123,
      "uniqueDownloadCount": {},
      "videoCount": 987
    }
  }
}

games

Description

Get a list of Games

Response

Returns a GamePage!

Arguments
Name Description
facets - GamesFacet Filter and aggregate by specified facets
filter - GamesSearchFilter Filter which restricts results and facets.
postFilter - GamesSearchFilter Filter which restricts results but not facets.
sort - [GamesSearchSort!]
offset - Int
count - Int

Example

Query
query games(
  $facets: GamesFacet,
  $filter: GamesSearchFilter,
  $postFilter: GamesSearchFilter,
  $sort: [GamesSearchSort!],
  $offset: Int,
  $count: Int
) {
  games(
    facets: $facets,
    filter: $filter,
    postFilter: $postFilter,
    sort: $sort,
    offset: $offset,
    count: $count
  ) {
    facets {
      ...NodesFacetFragment
    }
    facetsData
    nodes {
      ...GameFragment
    }
    nodesCount
    nodesFacets {
      ...NodesFacetFragment
    }
    nodesFilter
    totalCount
  }
}
Variables
{
  "facets": GamesFacet,
  "filter": GamesSearchFilter,
  "postFilter": GamesSearchFilter,
  "sort": [GamesSearchSort],
  "offset": 987,
  "count": 123
}
Response
{
  "data": {
    "games": {
      "facets": [NodesFacet],
      "facetsData": {},
      "nodes": [Game],
      "nodesCount": 123,
      "nodesFacets": [NodesFacet],
      "nodesFilter": "xyz789",
      "totalCount": 123
    }
  }
}

legacyBlockedAuthors

This is a legacy endpoint and should not be used.
Description

Get a list of the current user's blocked authors.

Response

Returns [User!]

Example

Query
query legacyBlockedAuthors {
  legacyBlockedAuthors {
    about
    avatar
    banned
    blockedFromOptingInModsAt
    collectionCount
    contributedModCount
    country
    deleted
    donationsEnabled
    dpOptedIn
    email
    endorsementsGiven
    fullPageNotificationCount
    hasGivenKudos
    imageCount
    ipAddress
    isBlocked
    isTracked
    joined
    kudos
    lastActive
    legacyRoles
    memberId
    membershipRoles
    modAnalyticsByMonth {
      ...ModAnalyticsByMonthPageFragment
    }
    modAnalyticsForMonth {
      ...ModAnalyticsForMonthPageFragment
    }
    modCount
    moderationHistoryCount
    moderationJwt
    modsBlockedFromEarningDp {
      ...BlockedModsPageFragment
    }
    name
    ownedModCount
    paypal
    posts
    recognizedAuthor
    roles
    showActivityFeed
    showLastActive
    uniqueModDownloads
    usernameLastChangedAt
    videoCount
    views
  }
}
Response
{
  "data": {
    "legacyBlockedAuthors": [
      {
        "about": "xyz789",
        "avatar": "abc123",
        "banned": true,
        "blockedFromOptingInModsAt": "2007-12-03T10:15:30Z",
        "collectionCount": 123,
        "contributedModCount": 123,
        "country": "abc123",
        "deleted": false,
        "donationsEnabled": true,
        "dpOptedIn": true,
        "email": "abc123",
        "endorsementsGiven": 987,
        "fullPageNotificationCount": 987,
        "hasGivenKudos": false,
        "imageCount": 123,
        "ipAddress": "xyz789",
        "isBlocked": true,
        "isTracked": false,
        "joined": "2007-12-03T10:15:30Z",
        "kudos": 123,
        "lastActive": "2007-12-03T10:15:30Z",
        "legacyRoles": ["abc123"],
        "memberId": 987,
        "membershipRoles": ["abc123"],
        "modAnalyticsByMonth": ModAnalyticsByMonthPage,
        "modAnalyticsForMonth": ModAnalyticsForMonthPage,
        "modCount": 123,
        "moderationHistoryCount": 123,
        "moderationJwt": "xyz789",
        "modsBlockedFromEarningDp": BlockedModsPage,
        "name": "xyz789",
        "ownedModCount": 987,
        "paypal": "abc123",
        "posts": 123,
        "recognizedAuthor": false,
        "roles": ["xyz789"],
        "showActivityFeed": true,
        "showLastActive": false,
        "uniqueModDownloads": 987,
        "usernameLastChangedAt": "2007-12-03T10:15:30Z",
        "videoCount": 123,
        "views": 123
      }
    ]
  }
}

legacyMods

Description

Get a list of mod using composite ids, with paging

Response

Returns a ModPage!

Arguments
Name Description
ids - [CompositeIdInput!]! Mod ID (Legacy format)
offset - Int
count - Int

Example

Query
query legacyMods(
  $ids: [CompositeIdInput!]!,
  $offset: Int,
  $count: Int
) {
  legacyMods(
    ids: $ids,
    offset: $offset,
    count: $count
  ) {
    facets {
      ...NodesFacetFragment
    }
    facetsData
    nodes {
      ...ModFragment
    }
    nodesCount
    nodesFacets {
      ...NodesFacetFragment
    }
    nodesFilter
    totalCount
  }
}
Variables
{"ids": [CompositeIdInput], "offset": 987, "count": 987}
Response
{
  "data": {
    "legacyMods": {
      "facets": [NodesFacet],
      "facetsData": {},
      "nodes": [Mod],
      "nodesCount": 123,
      "nodesFacets": [NodesFacet],
      "nodesFilter": "abc123",
      "totalCount": 123
    }
  }
}

legacyModsByDomain

Description

Get a list of mods by domain_name and id, with paging

Response

Returns a ModPage!

Arguments
Name Description
ids - [CompositeDomainWithIdInput!]! Get mod by legacy ID format
offset - Int
count - Int

Example

Query
query legacyModsByDomain(
  $ids: [CompositeDomainWithIdInput!]!,
  $offset: Int,
  $count: Int
) {
  legacyModsByDomain(
    ids: $ids,
    offset: $offset,
    count: $count
  ) {
    facets {
      ...NodesFacetFragment
    }
    facetsData
    nodes {
      ...ModFragment
    }
    nodesCount
    nodesFacets {
      ...NodesFacetFragment
    }
    nodesFilter
    totalCount
  }
}
Variables
{
  "ids": [CompositeDomainWithIdInput],
  "offset": 123,
  "count": 123
}
Response
{
  "data": {
    "legacyModsByDomain": {
      "facets": [NodesFacet],
      "facetsData": {},
      "nodes": [Mod],
      "nodesCount": 987,
      "nodesFacets": [NodesFacet],
      "nodesFilter": "xyz789",
      "totalCount": 123
    }
  }
}

media

Description

Get a list of media items (Images or Videos)

Response

Returns a MediaUnionPage!

Arguments
Name Description
facets - MediaFacet Filter and aggregate by specified facets
viewUserBlockedContent - Boolean View media items which you have blocked (e.g. via blocking authors)
filter - MediaSearchFilter
postFilter - MediaSearchFilter
sort - [MediaSearchSort!]
offset - Int
count - Int

Example

Query
query media(
  $facets: MediaFacet,
  $viewUserBlockedContent: Boolean,
  $filter: MediaSearchFilter,
  $postFilter: MediaSearchFilter,
  $sort: [MediaSearchSort!],
  $offset: Int,
  $count: Int
) {
  media(
    facets: $facets,
    viewUserBlockedContent: $viewUserBlockedContent,
    filter: $filter,
    postFilter: $postFilter,
    sort: $sort,
    offset: $offset,
    count: $count
  ) {
    facets {
      ...NodesFacetFragment
    }
    facetsData
    nodes {
      ... on Image {
        ...ImageFragment
      }
      ... on SupporterImage {
        ...SupporterImageFragment
      }
      ... on Video {
        ...VideoFragment
      }
    }
    nodesCount
    nodesFacets {
      ...NodesFacetFragment
    }
    nodesFilter
    totalCount
  }
}
Variables
{
  "facets": MediaFacet,
  "viewUserBlockedContent": true,
  "filter": MediaSearchFilter,
  "postFilter": MediaSearchFilter,
  "sort": [MediaSearchSort],
  "offset": 123,
  "count": 987
}
Response
{
  "data": {
    "media": {
      "facets": [NodesFacet],
      "facetsData": {},
      "nodes": [Image],
      "nodesCount": 123,
      "nodesFacets": [NodesFacet],
      "nodesFilter": "abc123",
      "totalCount": 123
    }
  }
}

modEndorsers

Description

Get a list of users that have endorsed a mod. Will return a maximum of 100 items per page.

Response

Returns a ModEndorserConnection!

Arguments
Name Description
modUid - ID! Mod UID to retrieve endorsers for
after - String Returns the elements in the list that come after the specified cursor.
before - String Returns the elements in the list that come before the specified cursor.
first - Int Returns the first n elements from the list.
last - Int Returns the last n elements from the list.

Example

Query
query modEndorsers(
  $modUid: ID!,
  $after: String,
  $before: String,
  $first: Int,
  $last: Int
) {
  modEndorsers(
    modUid: $modUid,
    after: $after,
    before: $before,
    first: $first,
    last: $last
  ) {
    edges {
      ...ModEndorserEdgeFragment
    }
    nodes {
      ...UserFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
  }
}
Variables
{
  "modUid": 4,
  "after": "xyz789",
  "before": "abc123",
  "first": 123,
  "last": 123
}
Response
{
  "data": {
    "modEndorsers": {
      "edges": [ModEndorserEdge],
      "nodes": [User],
      "pageInfo": PageInfo
    }
  }
}

modFiles

Description

Get a list of mod files

Response

Returns [ModFile!]!

Arguments
Name Description
modId - ID! Mod ID for retrieving mods in bulk
gameId - ID! Game ID for retrieving mods in bulk

Example

Query
query modFiles(
  $modId: ID!,
  $gameId: ID!
) {
  modFiles(
    modId: $modId,
    gameId: $gameId
  ) {
    category
    categoryId
    changelogText
    count
    date
    description
    fileId
    game {
      ...GameFragment
    }
    id
    manager
    mod {
      ...ModFragment
    }
    modId
    name
    owner {
      ...UserFragment
    }
    primary
    reportLink
    requirementsAlert
    scanned
    scannedV2
    size
    sizeInBytes
    totalDownloads
    uCount
    uid
    uniqueDownloads
    uri
    version
  }
}
Variables
{"modId": 4, "gameId": 4}
Response
{
  "data": {
    "modFiles": [
      {
        "category": "MAIN",
        "categoryId": "MAIN",
        "changelogText": ["xyz789"],
        "count": 987,
        "date": 123,
        "description": "abc123",
        "fileId": 123,
        "game": Game,
        "id": "4",
        "manager": 987,
        "mod": Mod,
        "modId": 123,
        "name": "abc123",
        "owner": User,
        "primary": 987,
        "reportLink": "abc123",
        "requirementsAlert": 123,
        "scanned": "NOT_SCANNED",
        "scannedV2": "NOT_SCANNED",
        "size": 987,
        "sizeInBytes": {},
        "totalDownloads": 123,
        "uCount": 123,
        "uid": "4",
        "uniqueDownloads": 987,
        "uri": "abc123",
        "version": "abc123"
      }
    ]
  }
}

modFilesByUid

Description

Get a list of mod files by uid

Response

Returns a ModFilePage!

Arguments
Name Description
uids - [ID!]! List of Mod File UIDs (Not IDs) for retreiving mods in bulk
offset - Int
count - Int

Example

Query
query modFilesByUid(
  $uids: [ID!]!,
  $offset: Int,
  $count: Int
) {
  modFilesByUid(
    uids: $uids,
    offset: $offset,
    count: $count
  ) {
    facets {
      ...NodesFacetFragment
    }
    facetsData
    nodes {
      ...ModFileFragment
    }
    nodesCount
    nodesFacets {
      ...NodesFacetFragment
    }
    nodesFilter
    totalCount
  }
}
Variables
{"uids": [4], "offset": 123, "count": 987}
Response
{
  "data": {
    "modFilesByUid": {
      "facets": [NodesFacet],
      "facetsData": {},
      "nodes": [ModFile],
      "nodesCount": 987,
      "nodesFacets": [NodesFacet],
      "nodesFilter": "abc123",
      "totalCount": 123
    }
  }
}

moderationReason

Description

Get a Moderation Reason by ID

Response

Returns a ModerationReason

Arguments
Name Description
id - ID! The database ID for this moderation reason.

Example

Query
query moderationReason($id: ID!) {
  moderationReason(id: $id) {
    createdAt
    id
    reason
    resolution
    updatedAt
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "moderationReason": {
      "createdAt": "2007-12-03T10:15:30Z",
      "id": "4",
      "reason": "xyz789",
      "resolution": "xyz789",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

moderationReasons

Description

Get a list of Moderation Reasons

Response

Returns [ModerationReason!]

Example

Query
query moderationReasons {
  moderationReasons {
    createdAt
    id
    reason
    resolution
    updatedAt
  }
}
Response
{
  "data": {
    "moderationReasons": [
      {
        "createdAt": "2007-12-03T10:15:30Z",
        "id": "4",
        "reason": "xyz789",
        "resolution": "abc123",
        "updatedAt": "2007-12-03T10:15:30Z"
      }
    ]
  }
}

mods

Description

Get a list of mods, with paging

Response

Returns a ModPage!

Arguments
Name Description
viewUploaderHidden - Boolean View hidden mods that you are the uploader for (default: true)
viewUserBlockedContent - Boolean View mods which you have blocked (e.g. via blocking tags or authors)
facets - ModsFacet Filter and aggregate by specified facets
filter - ModsFilter
postFilter - ModsFilter
sort - [ModsSort!]
offset - Int
count - Int

Example

Query
query mods(
  $viewUploaderHidden: Boolean,
  $viewUserBlockedContent: Boolean,
  $facets: ModsFacet,
  $filter: ModsFilter,
  $postFilter: ModsFilter,
  $sort: [ModsSort!],
  $offset: Int,
  $count: Int
) {
  mods(
    viewUploaderHidden: $viewUploaderHidden,
    viewUserBlockedContent: $viewUserBlockedContent,
    facets: $facets,
    filter: $filter,
    postFilter: $postFilter,
    sort: $sort,
    offset: $offset,
    count: $count
  ) {
    facets {
      ...NodesFacetFragment
    }
    facetsData
    nodes {
      ...ModFragment
    }
    nodesCount
    nodesFacets {
      ...NodesFacetFragment
    }
    nodesFilter
    totalCount
  }
}
Variables
{
  "viewUploaderHidden": false,
  "viewUserBlockedContent": true,
  "facets": ModsFacet,
  "filter": ModsFilter,
  "postFilter": ModsFilter,
  "sort": [ModsSort],
  "offset": 123,
  "count": 123
}
Response
{
  "data": {
    "mods": {
      "facets": [NodesFacet],
      "facetsData": {},
      "nodes": [Mod],
      "nodesCount": 123,
      "nodesFacets": [NodesFacet],
      "nodesFilter": "xyz789",
      "totalCount": 123
    }
  }
}

modsByUid

Description

Get a list of mods by uid, with paging

Response

Returns a ModPage!

Arguments
Name Description
uids - [ID!]! List of Mod UIDs (Not IDs) for retreiving mods in bulk
offset - Int
count - Int

Example

Query
query modsByUid(
  $uids: [ID!]!,
  $offset: Int,
  $count: Int
) {
  modsByUid(
    uids: $uids,
    offset: $offset,
    count: $count
  ) {
    facets {
      ...NodesFacetFragment
    }
    facetsData
    nodes {
      ...ModFragment
    }
    nodesCount
    nodesFacets {
      ...NodesFacetFragment
    }
    nodesFilter
    totalCount
  }
}
Variables
{"uids": ["4"], "offset": 123, "count": 123}
Response
{
  "data": {
    "modsByUid": {
      "facets": [NodesFacet],
      "facetsData": {},
      "nodes": [Mod],
      "nodesCount": 123,
      "nodesFacets": [NodesFacet],
      "nodesFilter": "xyz789",
      "totalCount": 123
    }
  }
}

myCollections

Description

Get a list of collections that the current user has access to view

Response

Returns a CollectionPage!

Arguments
Name Description
facets - CollectionsFacet Filter and aggregate by specified facets
sortBy - String Alters the sorting column used for this query
sortDirection - String Alters the sorting direction used for this query
viewAdultContent - Boolean Overrides adult content in user preferences
viewUnlisted - Boolean Shows unlisted collections (permission required)
viewUnderModeration - Boolean Shows moderated collections (permission required)
filter - CollectionsFilter Filter which restricts results and facets.
postFilter - CollectionsFilter Filter which restricts results but not facets.
offset - Int
count - Int

Example

Query
query myCollections(
  $facets: CollectionsFacet,
  $sortBy: String,
  $sortDirection: String,
  $viewAdultContent: Boolean,
  $viewUnlisted: Boolean,
  $viewUnderModeration: Boolean,
  $filter: CollectionsFilter,
  $postFilter: CollectionsFilter,
  $offset: Int,
  $count: Int
) {
  myCollections(
    facets: $facets,
    sortBy: $sortBy,
    sortDirection: $sortDirection,
    viewAdultContent: $viewAdultContent,
    viewUnlisted: $viewUnlisted,
    viewUnderModeration: $viewUnderModeration,
    filter: $filter,
    postFilter: $postFilter,
    offset: $offset,
    count: $count
  ) {
    facets {
      ...NodesFacetFragment
    }
    facetsData
    nodes {
      ...CollectionFragment
    }
    nodesCount
    nodesFacets {
      ...NodesFacetFragment
    }
    nodesFilter
    totalCount
  }
}
Variables
{
  "facets": CollectionsFacet,
  "sortBy": "xyz789",
  "sortDirection": "abc123",
  "viewAdultContent": false,
  "viewUnlisted": true,
  "viewUnderModeration": false,
  "filter": CollectionsFilter,
  "postFilter": CollectionsFilter,
  "offset": 987,
  "count": 987
}
Response
{
  "data": {
    "myCollections": {
      "facets": [NodesFacet],
      "facetsData": {},
      "nodes": [Collection],
      "nodesCount": 123,
      "nodesFacets": [NodesFacet],
      "nodesFilter": "abc123",
      "totalCount": 987
    }
  }
}

news

Description

retrieves all news articles.

Response

Returns a NewsPage!

Arguments
Name Description
newsCategory - NewsCategoryEnum Filters the News to a specific news category.
gameId - Int Filters the News to a specific game.
offset - Int
count - Int

Example

Query
query news(
  $newsCategory: NewsCategoryEnum,
  $gameId: Int,
  $offset: Int,
  $count: Int
) {
  news(
    newsCategory: $newsCategory,
    gameId: $gameId,
    offset: $offset,
    count: $count
  ) {
    facets {
      ...NodesFacetFragment
    }
    facetsData
    nodes {
      ...NewsFragment
    }
    nodesCount
    nodesFacets {
      ...NodesFacetFragment
    }
    nodesFilter
    totalCount
  }
}
Variables
{"newsCategory": "SITE_NEWS", "gameId": 987, "offset": 123, "count": 123}
Response
{
  "data": {
    "news": {
      "facets": [NodesFacet],
      "facetsData": {},
      "nodes": [News],
      "nodesCount": 123,
      "nodesFacets": [NodesFacet],
      "nodesFilter": "abc123",
      "totalCount": 987
    }
  }
}

optedInMods

Description

Get a list of opted in mods for this user

Response

Returns an OptedInMods!

Arguments
Name Description
accountId - Int! ID of account for filtering

Example

Query
query optedInMods($accountId: Int!) {
  optedInMods(accountId: $accountId) {
    count
    entries {
      ...OptedInModFragment
    }
    user {
      ...UserFragment
    }
    userId
  }
}
Variables
{"accountId": 123}
Response
{
  "data": {
    "optedInMods": {
      "count": 987,
      "entries": [OptedInMod],
      "user": User,
      "userId": 123
    }
  }
}

preferences

Description

Get a list of user preferences for the current user

Response

Returns a Preference

Example

Query
query preferences {
  preferences {
    adult
    adultBlurImages
    bubbleReply
    comments
    defaultMediaTab
    defaultModsTab
    defaultNewsTab
    defaultOrder
    defaultSearchType
    defaultSearchView
    disableProfileActivity
    displayLastActivity
    dlLocation
    download
    id
    imageShowcase
    isBlockingContent
    membersAutoDst
    notificationsActive
    notificationsGameSpecific
    reminder
    results
    subfeedsActivityTracked
    subfeedsActivityYour
    subfeedsAuthorTracked
    subfeedsCommentsTracked
    subfeedsCommentsYour
    timeOffset
  }
}
Response
{
  "data": {
    "preferences": {
      "adult": true,
      "adultBlurImages": true,
      "bubbleReply": true,
      "comments": "COMMENTS_10",
      "defaultMediaTab": "NEW_TODAY",
      "defaultModsTab": "NEW_TODAY",
      "defaultNewsTab": "ALL_NEWS",
      "defaultOrder": "BY_RECENT_FILES",
      "defaultSearchType": "ALL_CONTENT",
      "defaultSearchView": "SMALL_TILES",
      "disableProfileActivity": false,
      "displayLastActivity": true,
      "dlLocation": "NEXUS_CDN",
      "download": "POP_UP_BOX",
      "id": "4",
      "imageShowcase": "NOT_SET",
      "isBlockingContent": true,
      "membersAutoDst": false,
      "notificationsActive": true,
      "notificationsGameSpecific": true,
      "reminder": "NEVER",
      "results": "RESULTS_20",
      "subfeedsActivityTracked": false,
      "subfeedsActivityYour": true,
      "subfeedsAuthorTracked": true,
      "subfeedsCommentsTracked": false,
      "subfeedsCommentsYour": false,
      "timeOffset": "abc123"
    }
  }
}

privateMessageUrl

Description

Get a private message URL

Response

Returns a String

Arguments
Name Description
id - ID! Nexusmods ID of user to message

Example

Query
query privateMessageUrl($id: ID!) {
  privateMessageUrl(id: $id)
}
Variables
{"id": "4"}
Response
{"data": {"privateMessageUrl": "xyz789"}}

requestMediaUploadUrl

Description

Get a pre-signed upload URL. You must supply EITHER mimeType (preferred) or filename.

Response

Returns a PresignedUrl!

Arguments
Name Description
filename - String Local filename of the file to be uploaded. DEPRECATED- prefer mimeType.
mimeType - String MIME type of the file to be uploaded.

Example

Query
query requestMediaUploadUrl(
  $filename: String,
  $mimeType: String
) {
  requestMediaUploadUrl(
    filename: $filename,
    mimeType: $mimeType
  ) {
    url
    uuid
  }
}
Variables
{
  "filename": "xyz789",
  "mimeType": "xyz789"
}
Response
{
  "data": {
    "requestMediaUploadUrl": {
      "url": "xyz789",
      "uuid": "abc123"
    }
  }
}

searchComments

Description

Search comments by filter and sort criteria

Response

Returns a CommentSearchResultConnection!

Arguments
Name Description
filter - CommentsSearchFilter
sort - [CommentsSearchSort!]
after - String Returns the elements in the list that come after the specified cursor.
before - String Returns the elements in the list that come before the specified cursor.
first - Int Returns the first n elements from the list.
last - Int Returns the last n elements from the list.

Example

Query
query searchComments(
  $filter: CommentsSearchFilter,
  $sort: [CommentsSearchSort!],
  $after: String,
  $before: String,
  $first: Int,
  $last: Int
) {
  searchComments(
    filter: $filter,
    sort: $sort,
    after: $after,
    before: $before,
    first: $first,
    last: $last
  ) {
    edges {
      ...CommentSearchResultEdgeFragment
    }
    nodes {
      ...CommentFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
    timeTaken
    totalCount
  }
}
Variables
{
  "filter": CommentsSearchFilter,
  "sort": [CommentsSearchSort],
  "after": "xyz789",
  "before": "xyz789",
  "first": 123,
  "last": 987
}
Response
{
  "data": {
    "searchComments": {
      "edges": [CommentSearchResultEdge],
      "nodes": [Comment],
      "pageInfo": PageInfo,
      "timeTaken": 123,
      "totalCount": 123
    }
  }
}

speedtestUrls

Description

Get the urls for running a speedtest to diagnose download issues

Response

Returns [SpeedtestUrl!]!

Example

Query
query speedtestUrls {
  speedtestUrls {
    description
    location
    tag
    title
  }
}
Response
{
  "data": {
    "speedtestUrls": [
      {
        "description": "abc123",
        "location": "abc123",
        "tag": "abc123",
        "title": "abc123"
      }
    ]
  }
}

tag

Description

Get a tag by ID

Response

Returns a Tag

Arguments
Name Description
id - ID! ID of Tag Category to find

Example

Query
query tag($id: ID!) {
  tag(id: $id) {
    adult
    category {
      ...TagCategoryFragment
    }
    createdAt
    discardedAt
    games {
      ...GameFragment
    }
    global
    id
    name
    taggablesCount
    updatedAt
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "tag": {
      "adult": true,
      "category": TagCategory,
      "createdAt": "2007-12-03T10:15:30Z",
      "discardedAt": "2007-12-03T10:15:30Z",
      "games": [Game],
      "global": false,
      "id": 4,
      "name": "abc123",
      "taggablesCount": 123,
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

tagCategories

Description

Get all tag categories

Response

Returns [TagCategory!]

Example

Query
query tagCategories {
  tagCategories {
    createdAt
    discardedAt
    id
    name
    tags {
      ...TagFragment
    }
    updatedAt
  }
}
Response
{
  "data": {
    "tagCategories": [
      {
        "createdAt": "2007-12-03T10:15:30Z",
        "discardedAt": "2007-12-03T10:15:30Z",
        "id": 4,
        "name": "xyz789",
        "tags": [Tag],
        "updatedAt": "2007-12-03T10:15:30Z"
      }
    ]
  }
}

tagCategory

Description

Get a tag category by ID

Response

Returns a TagCategory

Arguments
Name Description
id - ID! ID of Tag Category to find

Example

Query
query tagCategory($id: ID!) {
  tagCategory(id: $id) {
    createdAt
    discardedAt
    id
    name
    tags {
      ...TagFragment
    }
    updatedAt
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "tagCategory": {
      "createdAt": "2007-12-03T10:15:30Z",
      "discardedAt": "2007-12-03T10:15:30Z",
      "id": "4",
      "name": "xyz789",
      "tags": [Tag],
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

tags

Description

Get a list of tags

Response

Returns [Tag!]

Arguments
Name Description
gameId - Int Filter tags by a specific game ID
categoryId - Int Filter tags by a specific category ID
includeGlobal - Boolean If true, will include all global tags
includeDiscarded - Boolean If true, will includes discarded tags

Example

Query
query tags(
  $gameId: Int,
  $categoryId: Int,
  $includeGlobal: Boolean,
  $includeDiscarded: Boolean
) {
  tags(
    gameId: $gameId,
    categoryId: $categoryId,
    includeGlobal: $includeGlobal,
    includeDiscarded: $includeDiscarded
  ) {
    adult
    category {
      ...TagCategoryFragment
    }
    createdAt
    discardedAt
    games {
      ...GameFragment
    }
    global
    id
    name
    taggablesCount
    updatedAt
  }
}
Variables
{
  "gameId": 987,
  "categoryId": 987,
  "includeGlobal": false,
  "includeDiscarded": false
}
Response
{
  "data": {
    "tags": [
      {
        "adult": false,
        "category": TagCategory,
        "createdAt": "2007-12-03T10:15:30Z",
        "discardedAt": "2007-12-03T10:15:30Z",
        "games": [Game],
        "global": true,
        "id": "4",
        "name": "xyz789",
        "taggablesCount": 987,
        "updatedAt": "2007-12-03T10:15:30Z"
      }
    ]
  }
}

transactions

Description

Get a list of transactions, with paging and filtering

Response

Returns a TransactionList!

Arguments
Name Description
start - Int Offset for pagination
perPage - Int Number of elements to return per page
orderDir - String Direction for sorting. 'asc' or 'desc' are the only valid options
orderColumn - String Column used for sorting
accountId - Int Includes transactions involving this Account's ID
bankId - Int Includes transactions involving this Bank's ID
search - String Filter transactions to return

Example

Query
query transactions(
  $start: Int,
  $perPage: Int,
  $orderDir: String,
  $orderColumn: String,
  $accountId: Int,
  $bankId: Int,
  $search: String
) {
  transactions(
    start: $start,
    perPage: $perPage,
    orderDir: $orderDir,
    orderColumn: $orderColumn,
    accountId: $accountId,
    bankId: $bankId,
    search: $search
  ) {
    filteredCount
    totalCount
    transactions {
      ...TransactionFragment
    }
  }
}
Variables
{
  "start": 123,
  "perPage": 123,
  "orderDir": "abc123",
  "orderColumn": "abc123",
  "accountId": 123,
  "bankId": 123,
  "search": "abc123"
}
Response
{
  "data": {
    "transactions": {
      "filteredCount": 123,
      "totalCount": 987,
      "transactions": [Transaction]
    }
  }
}

uploads

Description

Get a list of uploads

Response

Returns an UploadList!

Arguments
Name Description
start - Int! For offset-based pagination. Indicates the first element to start returning values from
perPage - Int! Number of elements to return per page
orderDir - String! Direction for sorting. 'asc' or 'desc' are the only valid options
orderColumn - String! Column used for sorting
id - String The database ID for this ModUpload.
search - String Filter uploads
filter - String Filter uploads
uploadType - String Only return specific types of uploads
gameId - Int The database ID for this Game.
userId - Int The database ID for this User.
fileId - Int The database ID for this ModFile.
modId - Int The database ID for this Mod.

Example

Query
query uploads(
  $start: Int!,
  $perPage: Int!,
  $orderDir: String!,
  $orderColumn: String!,
  $id: String,
  $search: String,
  $filter: String,
  $uploadType: String,
  $gameId: Int,
  $userId: Int,
  $fileId: Int,
  $modId: Int
) {
  uploads(
    start: $start,
    perPage: $perPage,
    orderDir: $orderDir,
    orderColumn: $orderColumn,
    id: $id,
    search: $search,
    filter: $filter,
    uploadType: $uploadType,
    gameId: $gameId,
    userId: $userId,
    fileId: $fileId,
    modId: $modId
  ) {
    filteredCount
    totalCount
    uploads {
      ...ModUploadFragment
    }
  }
}
Variables
{
  "start": 987,
  "perPage": 123,
  "orderDir": "abc123",
  "orderColumn": "abc123",
  "id": "abc123",
  "search": "xyz789",
  "filter": "xyz789",
  "uploadType": "xyz789",
  "gameId": 987,
  "userId": 123,
  "fileId": 987,
  "modId": 987
}
Response
{
  "data": {
    "uploads": {
      "filteredCount": 987,
      "totalCount": 123,
      "uploads": [ModUpload]
    }
  }
}

user

Description

Get user by id

Response

Returns a User

Arguments
Name Description
id - Int! User ID of user to find

Example

Query
query user($id: Int!) {
  user(id: $id) {
    about
    avatar
    banned
    blockedFromOptingInModsAt
    collectionCount
    contributedModCount
    country
    deleted
    donationsEnabled
    dpOptedIn
    email
    endorsementsGiven
    fullPageNotificationCount
    hasGivenKudos
    imageCount
    ipAddress
    isBlocked
    isTracked
    joined
    kudos
    lastActive
    legacyRoles
    memberId
    membershipRoles
    modAnalyticsByMonth {
      ...ModAnalyticsByMonthPageFragment
    }
    modAnalyticsForMonth {
      ...ModAnalyticsForMonthPageFragment
    }
    modCount
    moderationHistoryCount
    moderationJwt
    modsBlockedFromEarningDp {
      ...BlockedModsPageFragment
    }
    name
    ownedModCount
    paypal
    posts
    recognizedAuthor
    roles
    showActivityFeed
    showLastActive
    uniqueModDownloads
    usernameLastChangedAt
    videoCount
    views
  }
}
Variables
{"id": 987}
Response
{
  "data": {
    "user": {
      "about": "abc123",
      "avatar": "abc123",
      "banned": true,
      "blockedFromOptingInModsAt": "2007-12-03T10:15:30Z",
      "collectionCount": 123,
      "contributedModCount": 123,
      "country": "abc123",
      "deleted": true,
      "donationsEnabled": false,
      "dpOptedIn": true,
      "email": "xyz789",
      "endorsementsGiven": 123,
      "fullPageNotificationCount": 123,
      "hasGivenKudos": false,
      "imageCount": 123,
      "ipAddress": "xyz789",
      "isBlocked": false,
      "isTracked": false,
      "joined": "2007-12-03T10:15:30Z",
      "kudos": 123,
      "lastActive": "2007-12-03T10:15:30Z",
      "legacyRoles": ["abc123"],
      "memberId": 123,
      "membershipRoles": ["xyz789"],
      "modAnalyticsByMonth": ModAnalyticsByMonthPage,
      "modAnalyticsForMonth": ModAnalyticsForMonthPage,
      "modCount": 123,
      "moderationHistoryCount": 987,
      "moderationJwt": "xyz789",
      "modsBlockedFromEarningDp": BlockedModsPage,
      "name": "xyz789",
      "ownedModCount": 123,
      "paypal": "xyz789",
      "posts": 123,
      "recognizedAuthor": false,
      "roles": ["abc123"],
      "showActivityFeed": false,
      "showLastActive": true,
      "uniqueModDownloads": 987,
      "usernameLastChangedAt": "2007-12-03T10:15:30Z",
      "videoCount": 123,
      "views": 123
    }
  }
}

userByName

Description

Get user by username

Response

Returns a User

Arguments
Name Description
name - String! Username of user to find

Example

Query
query userByName($name: String!) {
  userByName(name: $name) {
    about
    avatar
    banned
    blockedFromOptingInModsAt
    collectionCount
    contributedModCount
    country
    deleted
    donationsEnabled
    dpOptedIn
    email
    endorsementsGiven
    fullPageNotificationCount
    hasGivenKudos
    imageCount
    ipAddress
    isBlocked
    isTracked
    joined
    kudos
    lastActive
    legacyRoles
    memberId
    membershipRoles
    modAnalyticsByMonth {
      ...ModAnalyticsByMonthPageFragment
    }
    modAnalyticsForMonth {
      ...ModAnalyticsForMonthPageFragment
    }
    modCount
    moderationHistoryCount
    moderationJwt
    modsBlockedFromEarningDp {
      ...BlockedModsPageFragment
    }
    name
    ownedModCount
    paypal
    posts
    recognizedAuthor
    roles
    showActivityFeed
    showLastActive
    uniqueModDownloads
    usernameLastChangedAt
    videoCount
    views
  }
}
Variables
{"name": "abc123"}
Response
{
  "data": {
    "userByName": {
      "about": "abc123",
      "avatar": "abc123",
      "banned": true,
      "blockedFromOptingInModsAt": "2007-12-03T10:15:30Z",
      "collectionCount": 123,
      "contributedModCount": 123,
      "country": "abc123",
      "deleted": true,
      "donationsEnabled": true,
      "dpOptedIn": false,
      "email": "xyz789",
      "endorsementsGiven": 987,
      "fullPageNotificationCount": 123,
      "hasGivenKudos": false,
      "imageCount": 987,
      "ipAddress": "abc123",
      "isBlocked": true,
      "isTracked": false,
      "joined": "2007-12-03T10:15:30Z",
      "kudos": 987,
      "lastActive": "2007-12-03T10:15:30Z",
      "legacyRoles": ["xyz789"],
      "memberId": 123,
      "membershipRoles": ["abc123"],
      "modAnalyticsByMonth": ModAnalyticsByMonthPage,
      "modAnalyticsForMonth": ModAnalyticsForMonthPage,
      "modCount": 987,
      "moderationHistoryCount": 123,
      "moderationJwt": "xyz789",
      "modsBlockedFromEarningDp": BlockedModsPage,
      "name": "abc123",
      "ownedModCount": 123,
      "paypal": "abc123",
      "posts": 123,
      "recognizedAuthor": false,
      "roles": ["abc123"],
      "showActivityFeed": true,
      "showLastActive": false,
      "uniqueModDownloads": 987,
      "usernameLastChangedAt": "2007-12-03T10:15:30Z",
      "videoCount": 987,
      "views": 123
    }
  }
}

userMonthlyReport

Description

Get monthly summary report for a specific user

Response

Returns a UserMonthlyReport!

Arguments
Name Description
accountId - Int! Account ID
year - Int! Year report was generated
month - Int! Month report was generated

Example

Query
query userMonthlyReport(
  $accountId: Int!,
  $year: Int!,
  $month: Int!
) {
  userMonthlyReport(
    accountId: $accountId,
    year: $year,
    month: $month
  ) {
    entries {
      ...UserMonthlyReportEntryFragment
    }
    reportType
    user {
      ...UserFragment
    }
    userId
  }
}
Variables
{"accountId": 123, "year": 987, "month": 987}
Response
{
  "data": {
    "userMonthlyReport": {
      "entries": [UserMonthlyReportEntry],
      "reportType": "UNIQUE_DOWNLOADS",
      "user": User,
      "userId": 987
    }
  }
}

userMonthlyReportById

Description

Get a specific report for a specific user

Response

Returns a UserMonthlyReport!

Arguments
Name Description
accountId - Int! Account ID
reportId - Int! Donation Report ID

Example

Query
query userMonthlyReportById(
  $accountId: Int!,
  $reportId: Int!
) {
  userMonthlyReportById(
    accountId: $accountId,
    reportId: $reportId
  ) {
    entries {
      ...UserMonthlyReportEntryFragment
    }
    reportType
    user {
      ...UserFragment
    }
    userId
  }
}
Variables
{"accountId": 987, "reportId": 987}
Response
{
  "data": {
    "userMonthlyReportById": {
      "entries": [UserMonthlyReportEntry],
      "reportType": "UNIQUE_DOWNLOADS",
      "user": User,
      "userId": 987
    }
  }
}

userMonthlySummary

Description

Get monthly summary report for a specific user

Response

Returns a UserMonthlySummary!

Arguments
Name Description
accountId - Int! Account ID

Example

Query
query userMonthlySummary($accountId: Int!) {
  userMonthlySummary(accountId: $accountId) {
    entries {
      ...UserMonthlySummaryEntryFragment
    }
    user {
      ...UserFragment
    }
    userId
  }
}
Variables
{"accountId": 987}
Response
{
  "data": {
    "userMonthlySummary": {
      "entries": [UserMonthlySummaryEntry],
      "user": User,
      "userId": 123
    }
  }
}

users

Description

Get a list of Users

Response

Returns a UserPage!

Arguments
Name Description
filter - UsersSearchFilter Filter which restricts results.
sort - [UsersSearchSort!]
offset - Int
count - Int

Example

Query
query users(
  $filter: UsersSearchFilter,
  $sort: [UsersSearchSort!],
  $offset: Int,
  $count: Int
) {
  users(
    filter: $filter,
    sort: $sort,
    offset: $offset,
    count: $count
  ) {
    facets {
      ...NodesFacetFragment
    }
    facetsData
    nodes {
      ...UserFragment
    }
    nodesCount
    nodesFacets {
      ...NodesFacetFragment
    }
    nodesFilter
    totalCount
  }
}
Variables
{
  "filter": UsersSearchFilter,
  "sort": [UsersSearchSort],
  "offset": 123,
  "count": 123
}
Response
{
  "data": {
    "users": {
      "facets": [NodesFacet],
      "facetsData": {},
      "nodes": [User],
      "nodesCount": 987,
      "nodesFacets": [NodesFacet],
      "nodesFilter": "xyz789",
      "totalCount": 987
    }
  }
}

wallets

Legacy Query. This endpoint may change or become unstable in future updates.
Description

Get a list of wallets, with paging and filtering

Response

Returns a WalletList!

Arguments
Name Description
start - Int For offset-based pagination. Indicates the first element to start returning values from
perPage - Int Number of elements to return per page
orderDir - String Direction for sorting. 'asc' or 'desc' are the only valid options
orderColumn - String Column used for sorting
search - String Used to filter specific accounts

Example

Query
query wallets(
  $start: Int,
  $perPage: Int,
  $orderDir: String,
  $orderColumn: String,
  $search: String
) {
  wallets(
    start: $start,
    perPage: $perPage,
    orderDir: $orderDir,
    orderColumn: $orderColumn,
    search: $search
  ) {
    filteredCount
    totalCount
  }
}
Variables
{
  "start": 123,
  "perPage": 123,
  "orderDir": "xyz789",
  "orderColumn": "xyz789",
  "search": "abc123"
}
Response
{"data": {"wallets": {"filteredCount": 123, "totalCount": 123}}}

Mutations

abstainFromModEndorsement

Description

Abstains from mod endorsement.

Arguments
Name Description
modUid - String! ID of the mod the endorsement is for.

Example

Query
mutation abstainFromModEndorsement($modUid: String!) {
  abstainFromModEndorsement(modUid: $modUid) {
    endorsement {
      ...ModEndorsementFragment
    }
    success
  }
}
Variables
{"modUid": "abc123"}
Response
{
  "data": {
    "abstainFromModEndorsement": {
      "endorsement": ModEndorsement,
      "success": true
    }
  }
}

acceptModerationFix

Description

Marks the fix as accepted and takes the collection out of moderation. Only collection moderators can call this mutation

Arguments
Name Description
moderationFixId - ID! The database ID for this moderation fix.

Example

Query
mutation acceptModerationFix($moderationFixId: ID!) {
  acceptModerationFix(moderationFixId: $moderationFixId) {
    moderationFix {
      ...ModerationFixFragment
    }
    success
  }
}
Variables
{"moderationFixId": "4"}
Response
{
  "data": {
    "acceptModerationFix": {
      "moderationFix": ModerationFix,
      "success": false
    }
  }
}

addFavouriteGame

Description

Adds a game to a user's favourites

Response

Returns an AddFavouriteGameMutationPayload

Arguments
Name Description
gameId - ID! The game to add

Example

Query
mutation addFavouriteGame($gameId: ID!) {
  addFavouriteGame(gameId: $gameId) {
    success
  }
}
Variables
{"gameId": 4}
Response
{"data": {"addFavouriteGame": {"success": true}}}

addHeaderImageToCollection

This mutation will be replaced using Interfaces and Global IDs
Description

Adds a new header image to a collection

Arguments
Name Description
image - UploadImageInput! Image to be added
collectionId - ID! ID of collection to add image to

Example

Query
mutation addHeaderImageToCollection(
  $image: UploadImageInput!,
  $collectionId: ID!
) {
  addHeaderImageToCollection(
    image: $image,
    collectionId: $collectionId
  ) {
    image {
      ...CollectionImageFragment
    }
  }
}
Variables
{"image": UploadImageInput, "collectionId": 4}
Response
{
  "data": {
    "addHeaderImageToCollection": {
      "image": CollectionImage
    }
  }
}

addImageToCollection

This mutation will be replaced using Interfaces and Global IDs
Description

Adds a new image to a collection

Arguments
Name Description
image - UploadImageInput! Image to be added
collectionId - ID! ID of collection to add image to
collectionRevisionId - ID ID of collection revision to add image to

Example

Query
mutation addImageToCollection(
  $image: UploadImageInput!,
  $collectionId: ID!,
  $collectionRevisionId: ID
) {
  addImageToCollection(
    image: $image,
    collectionId: $collectionId,
    collectionRevisionId: $collectionRevisionId
  ) {
    image {
      ...CollectionImageFragment
    }
  }
}
Variables
{
  "image": UploadImageInput,
  "collectionId": 4,
  "collectionRevisionId": "4"
}
Response
{
  "data": {
    "addImageToCollection": {"image": CollectionImage}
  }
}

addTagToCollection

This mutation will be replaced using Interfaces and Global IDs
Description

Adds a tag to a collection. User must have the collection:add_tag permission

Response

Returns an AddTagToCollectionMutationPayload

Arguments
Name Description
tagIds - [ID!]! IDs of tags to add to the collection
collectionId - Int! ID of collection to add tags to

Example

Query
mutation addTagToCollection(
  $tagIds: [ID!]!,
  $collectionId: Int!
) {
  addTagToCollection(
    tagIds: $tagIds,
    collectionId: $collectionId
  ) {
    success
  }
}
Variables
{"tagIds": [4], "collectionId": 987}
Response
{"data": {"addTagToCollection": {"success": false}}}

addTileImageToCollection

This mutation will be replaced using Interfaces and Global IDs
Description

Adds a new tile image to a collection

Arguments
Name Description
image - UploadImageInput! Image to be added
collectionId - ID! ID of collection to add image to

Example

Query
mutation addTileImageToCollection(
  $image: UploadImageInput!,
  $collectionId: ID!
) {
  addTileImageToCollection(
    image: $image,
    collectionId: $collectionId
  ) {
    image {
      ...CollectionImageFragment
    }
  }
}
Variables
{"image": UploadImageInput, "collectionId": 4}
Response
{
  "data": {
    "addTileImageToCollection": {"image": CollectionImage}
  }
}

addVideoToCollection

This mutation will be replaced using Interfaces and Global IDs
Description

Adds a new image to a collection

Arguments
Name Description
video - UploadVideoInput! Video to be added
collectionId - ID! ID of collection to add video to
collectionRevisionId - ID ID of collection revision to add video to

Example

Query
mutation addVideoToCollection(
  $video: UploadVideoInput!,
  $collectionId: ID!,
  $collectionRevisionId: ID
) {
  addVideoToCollection(
    video: $video,
    collectionId: $collectionId,
    collectionRevisionId: $collectionRevisionId
  ) {
    video {
      ...CollectionVideoFragment
    }
  }
}
Variables
{
  "video": UploadVideoInput,
  "collectionId": "4",
  "collectionRevisionId": "4"
}
Response
{
  "data": {
    "addVideoToCollection": {"video": CollectionVideo}
  }
}

amendModeration

This mutation will be replaced using Interfaces and Global IDs
Description

Updates existing Moderation entity. Used to update details about the moderation or to unlock it.

Response

Returns an AmendModerationMutationPayload

Arguments
Name Description
id - ID! ID of the Moderation entity
userNote - String Note displayed to the end user.
staffNote - String Note displayed to internally to staff members.
editable - Boolean Enable or disable editing of the entity.
unlocked - Boolean When TRUE, the entity will no longer be moderated.
unlockedNote - String Note for the end user when moderation is unlocked
collectionStatus - CollectionStatus Change collection status upon amending the moderation.
moderationReasonId - ID Change moderation reason.

Example

Query
mutation amendModeration(
  $id: ID!,
  $userNote: String,
  $staffNote: String,
  $editable: Boolean,
  $unlocked: Boolean,
  $unlockedNote: String,
  $collectionStatus: CollectionStatus,
  $moderationReasonId: ID
) {
  amendModeration(
    id: $id,
    userNote: $userNote,
    staffNote: $staffNote,
    editable: $editable,
    unlocked: $unlocked,
    unlockedNote: $unlockedNote,
    collectionStatus: $collectionStatus,
    moderationReasonId: $moderationReasonId
  ) {
    moderation {
      ...ModerationFragment
    }
    success
  }
}
Variables
{
  "id": 4,
  "userNote": "abc123",
  "staffNote": "abc123",
  "editable": false,
  "unlocked": true,
  "unlockedNote": "abc123",
  "collectionStatus": "listed",
  "moderationReasonId": "4"
}
Response
{
  "data": {
    "amendModeration": {
      "moderation": Moderation,
      "success": true
    }
  }
}

blockModsFromEarningDp

Description

Allows the current user to block all of a user's existing mods from earning DP.

Arguments
Name Description
userId - ID The ID of the user for whom to block mods.

Example

Query
mutation blockModsFromEarningDp($userId: ID) {
  blockModsFromEarningDp(userId: $userId) {
    success
  }
}
Variables
{"userId": "4"}
Response
{"data": {"blockModsFromEarningDp": {"success": true}}}

changeCollectionOwner

Description

Changes a collection owner.

Response

Returns a ChangeCollectionOwnerPayload

Arguments
Name Description
collectionId - ID! Collection ID
ownerId - ID! New owner ID

Example

Query
mutation changeCollectionOwner(
  $collectionId: ID!,
  $ownerId: ID!
) {
  changeCollectionOwner(
    collectionId: $collectionId,
    ownerId: $ownerId
  ) {
    collection {
      ...CollectionFragment
    }
    success
  }
}
Variables
{"collectionId": 4, "ownerId": 4}
Response
{
  "data": {
    "changeCollectionOwner": {
      "collection": Collection,
      "success": false
    }
  }
}

clearCollectionBugReportModerationStatus

This mutation will be replaced using Interfaces and Global IDs
Description

Clears the status of an existing bug report on a collection

Arguments
Name Description
bugReportId - ID! ID of the collection bug report to clear status of

Example

Query
mutation clearCollectionBugReportModerationStatus($bugReportId: ID!) {
  clearCollectionBugReportModerationStatus(bugReportId: $bugReportId) {
    collectionBugReport {
      ...CollectionBugReportFragment
    }
  }
}
Variables
{"bugReportId": "4"}
Response
{
  "data": {
    "clearCollectionBugReportModerationStatus": {
      "collectionBugReport": CollectionBugReport
    }
  }
}

clearCommentModerationStatus

Description

Clears the moderation status of a comment.

Arguments
Name Description
commentId - ID! The database ID for this comment.

Example

Query
mutation clearCommentModerationStatus($commentId: ID!) {
  clearCommentModerationStatus(commentId: $commentId) {
    comment {
      ...CommentFragment
    }
  }
}
Variables
{"commentId": 4}
Response
{
  "data": {
    "clearCommentModerationStatus": {"comment": Comment}
  }
}

clearCommentThreadModerationStatus

Description

Clears the moderation status of a comment thread.

Arguments
Name Description
commentThreadId - ID! The database ID for this comment thread.

Example

Query
mutation clearCommentThreadModerationStatus($commentThreadId: ID!) {
  clearCommentThreadModerationStatus(commentThreadId: $commentThreadId) {
    commentThread {
      ...CommentThreadFragment
    }
  }
}
Variables
{"commentThreadId": "4"}
Response
{
  "data": {
    "clearCommentThreadModerationStatus": {
      "commentThread": CommentThread
    }
  }
}

closeCollectionBugReport

Description

Marks a collection bug report as closed. Can be called by the reporter or the collection curator, but only the curator can specify a closure_reason

Arguments
Name Description
bugReportId - ID! ID of the collection bug report to close
closureReason - BugReportClosureReason! The status of the bug report, e.g. Resolved, Won't fix

Example

Query
mutation closeCollectionBugReport(
  $bugReportId: ID!,
  $closureReason: BugReportClosureReason!
) {
  closeCollectionBugReport(
    bugReportId: $bugReportId,
    closureReason: $closureReason
  ) {
    collectionBugReport {
      ...CollectionBugReportFragment
    }
  }
}
Variables
{"bugReportId": 4, "closureReason": "none"}
Response
{
  "data": {
    "closeCollectionBugReport": {
      "collectionBugReport": CollectionBugReport
    }
  }
}

createChangelog

Description

Creates a revision changelog entry

Response

Returns a CreateChangelogMutationPayload

Arguments
Name Description
revisionId - ID! Revision ID
description - String! Changelog description

Example

Query
mutation createChangelog(
  $revisionId: ID!,
  $description: String!
) {
  createChangelog(
    revisionId: $revisionId,
    description: $description
  ) {
    changelogId
    success
  }
}
Variables
{
  "revisionId": "4",
  "description": "xyz789"
}
Response
{"data": {"createChangelog": {"changelogId": 987, "success": false}}}

createCollection

Description

Create a new Collection. Must be passed the collection data from the manifest containing the manifest schema.

Response

Returns a CreateCollectionMutationPayload

Arguments
Name Description
collectionData - CollectionPayload! Collection payload required for the collection creation.
uuid - String! UUID of the temporary collection file. Once the creation process is completed, the file will be moved to a permanent storage space.

Example

Query
mutation createCollection(
  $collectionData: CollectionPayload!,
  $uuid: String!
) {
  createCollection(
    collectionData: $collectionData,
    uuid: $uuid
  ) {
    collection {
      ...CollectionFragment
    }
    collectionId
    revision {
      ...CollectionRevisionFragment
    }
    revisionId
    success
  }
}
Variables
{
  "collectionData": CollectionPayload,
  "uuid": "abc123"
}
Response
{
  "data": {
    "createCollection": {
      "collection": Collection,
      "collectionId": 987,
      "revision": CollectionRevision,
      "revisionId": 987,
      "success": true
    }
  }
}

createCollectionBugReport

This mutation will be replaced using Interfaces and Global IDs
Description

Creates a new bug report for a collection

Arguments
Name Description
collectionId - ID! ID of collection to add bug report to
collectionRevisionNumber - Int! Number of collection revision to add bug report to
title - String! Title of the new bug report
description - String Description for the new bug report
attachmentIds - [ID!] Array of attachment ids of uploaded files

Example

Query
mutation createCollectionBugReport(
  $collectionId: ID!,
  $collectionRevisionNumber: Int!,
  $title: String!,
  $description: String,
  $attachmentIds: [ID!]
) {
  createCollectionBugReport(
    collectionId: $collectionId,
    collectionRevisionNumber: $collectionRevisionNumber,
    title: $title,
    description: $description,
    attachmentIds: $attachmentIds
  ) {
    collectionBugReport {
      ...CollectionBugReportFragment
    }
  }
}
Variables
{
  "collectionId": "4",
  "collectionRevisionNumber": 123,
  "title": "xyz789",
  "description": "abc123",
  "attachmentIds": [4]
}
Response
{
  "data": {
    "createCollectionBugReport": {
      "collectionBugReport": CollectionBugReport
    }
  }
}

createComment

Description

Creates a comment.

Response

Returns a CreateCommentMutationPayload

Arguments
Name Description
commentThreadId - ID! The database ID for this comment thread.
body - String! The comment body.
replyToId - ID An optional comment ID to reply to.
attachmentIds - [ID!] An optional array of attachment_ids from uploaded files to attach.

Example

Query
mutation createComment(
  $commentThreadId: ID!,
  $body: String!,
  $replyToId: ID,
  $attachmentIds: [ID!]
) {
  createComment(
    commentThreadId: $commentThreadId,
    body: $body,
    replyToId: $replyToId,
    attachmentIds: $attachmentIds
  ) {
    comment {
      ...CommentFragment
    }
  }
}
Variables
{
  "commentThreadId": "4",
  "body": "abc123",
  "replyToId": "4",
  "attachmentIds": ["4"]
}
Response
{"data": {"createComment": {"comment": Comment}}}

createMessage

Description

Create a new message

Response

Returns a CreateMessagePayload

Arguments
Name Description
to - [Int!]! User IDs of recipients
title - String! Title of message
body - String! Body of message

Example

Query
mutation createMessage(
  $to: [Int!]!,
  $title: String!,
  $body: String!
) {
  createMessage(
    to: $to,
    title: $title,
    body: $body
  ) {
    success
  }
}
Variables
{
  "to": [123],
  "title": "abc123",
  "body": "xyz789"
}
Response
{"data": {"createMessage": {"success": false}}}

createModEndorsement

Description

Creates an endorsement for a mod.

Arguments
Name Description
modUid - String! ID of the mod the endorsement is for.

Example

Query
mutation createModEndorsement($modUid: String!) {
  createModEndorsement(modUid: $modUid) {
    endorsement {
      ...ModEndorsementFragment
    }
    success
  }
}
Variables
{"modUid": "xyz789"}
Response
{
  "data": {
    "createModEndorsement": {
      "endorsement": ModEndorsement,
      "success": true
    }
  }
}

createNoteAboutUser

Description

Creates a moderation note about a user

Arguments
Name Description
userId - ID! The database ID for this user.
note - String! The moderation note

Example

Query
mutation createNoteAboutUser(
  $userId: ID!,
  $note: String!
) {
  createNoteAboutUser(
    userId: $userId,
    note: $note
  ) {
    success
  }
}
Variables
{
  "userId": "4",
  "note": "abc123"
}
Response
{"data": {"createNoteAboutUser": {"success": true}}}

createOrUpdateRevision

Description

Creates a new Collection Revision, or updates an existing Collection Revision (if a draft already exists )

Arguments
Name Description
collectionData - CollectionPayload! The data payload used to create a collection revision
collectionId - Int! The database ID for this collection.
uuid - String! TODO

Example

Query
mutation createOrUpdateRevision(
  $collectionData: CollectionPayload!,
  $collectionId: Int!,
  $uuid: String!
) {
  createOrUpdateRevision(
    collectionData: $collectionData,
    collectionId: $collectionId,
    uuid: $uuid
  ) {
    collection {
      ...CollectionFragment
    }
    collectionId
    revision {
      ...CollectionRevisionFragment
    }
    revisionId
    revisionNumber
    success
  }
}
Variables
{
  "collectionData": CollectionPayload,
  "collectionId": 987,
  "uuid": "abc123"
}
Response
{
  "data": {
    "createOrUpdateRevision": {
      "collection": Collection,
      "collectionId": 987,
      "revision": CollectionRevision,
      "revisionId": 123,
      "revisionNumber": 987,
      "success": false
    }
  }
}

createTag

Description

Creates a new collection Tag

Response

Returns a CreateTagMutationPayload

Arguments
Name Description
name - String! Tag name
categoryId - ID Tag category ID
gameIds - [ID!] Array containing Game IDs to be associated with the tag
global - Boolean Is the tag global (not game specific)
adult - Boolean Is this an adult content tag

Example

Query
mutation createTag(
  $name: String!,
  $categoryId: ID,
  $gameIds: [ID!],
  $global: Boolean,
  $adult: Boolean
) {
  createTag(
    name: $name,
    categoryId: $categoryId,
    gameIds: $gameIds,
    global: $global,
    adult: $adult
  ) {
    success
    tag {
      ...TagFragment
    }
  }
}
Variables
{
  "name": "xyz789",
  "categoryId": "4",
  "gameIds": ["4"],
  "global": true,
  "adult": false
}
Response
{"data": {"createTag": {"success": false, "tag": Tag}}}

discardCollection

Description

Discards an entire Collection and its associated entities

Arguments
Name Description
collectionId - ID! Collection ID
reason - String! Discard reason

Example

Query
mutation discardCollection(
  $collectionId: ID!,
  $reason: String!
) {
  discardCollection(
    collectionId: $collectionId,
    reason: $reason
  ) {
    success
  }
}
Variables
{
  "collectionId": "4",
  "reason": "xyz789"
}
Response
{"data": {"discardCollection": {"success": true}}}

discardComment

Description

Discards a comment.

Response

Returns a DiscardCommentMutationPayload

Arguments
Name Description
commentId - ID! The database ID for this comment.

Example

Query
mutation discardComment($commentId: ID!) {
  discardComment(commentId: $commentId) {
    comment {
      ...CommentFragment
    }
  }
}
Variables
{"commentId": 4}
Response
{"data": {"discardComment": {"comment": Comment}}}

discardRevision

Description

Discards a Collection Revision. Revision can only be discarded if it is a DRAFT or is not older than 24 hours and has no more than a 100 unique downloads.

Response

Returns a DiscardRevisionMutationPayload

Arguments
Name Description
collectionId - ID! Collection ID
revisionNumber - Int! Revision number
reason - String Discard Reason

Example

Query
mutation discardRevision(
  $collectionId: ID!,
  $revisionNumber: Int!,
  $reason: String
) {
  discardRevision(
    collectionId: $collectionId,
    revisionNumber: $revisionNumber,
    reason: $reason
  ) {
    success
  }
}
Variables
{
  "collectionId": 4,
  "revisionNumber": 987,
  "reason": "xyz789"
}
Response
{"data": {"discardRevision": {"success": true}}}

discardTag

Description

Removed an existing tag. User must have the tag:discard permission

Response

Returns a DiscardTagMutationPayload

Arguments
Name Description
id - ID! The database ID for this category.

Example

Query
mutation discardTag($id: ID!) {
  discardTag(id: $id) {
    success
  }
}
Variables
{"id": "4"}
Response
{"data": {"discardTag": {"success": true}}}

editCollection

Description

Updates the core details for a collection such as the name, description and category

Response

Returns an EditCollectionMutationPayload

Arguments
Name Description
collectionId - Int! The database ID for this collection.
name - String Name of this collection
summary - String Collection summary
description - String Description of this collection
categoryId - ID ID of the parent category
allowUserMedia - Boolean If true, allow user-uploaded content
manuallyVerifyMedia - Boolean If true, media needs to be verified

Example

Query
mutation editCollection(
  $collectionId: Int!,
  $name: String,
  $summary: String,
  $description: String,
  $categoryId: ID,
  $allowUserMedia: Boolean,
  $manuallyVerifyMedia: Boolean
) {
  editCollection(
    collectionId: $collectionId,
    name: $name,
    summary: $summary,
    description: $description,
    categoryId: $categoryId,
    allowUserMedia: $allowUserMedia,
    manuallyVerifyMedia: $manuallyVerifyMedia
  ) {
    collection {
      ...CollectionFragment
    }
    success
  }
}
Variables
{
  "collectionId": 987,
  "name": "abc123",
  "summary": "abc123",
  "description": "abc123",
  "categoryId": "4",
  "allowUserMedia": true,
  "manuallyVerifyMedia": false
}
Response
{
  "data": {
    "editCollection": {
      "collection": Collection,
      "success": false
    }
  }
}

endorse

This mutation will be replaced using Interfaces and Global IDs
Description

Creates an endorsement for a generic Endorsable model. TODO: This will be moving to a model-specific mutation

Arguments
Name Description
abstain - Boolean Used to determine whether the endorsement entry is used for abstaining. Users that abstain from endorsing a file will not get send future endorsement reminders.
modelId - Int! ID of an entity the endorsement is for.
modelType - String! Type of an entity the endorsement is for.

Example

Query
mutation endorse(
  $abstain: Boolean,
  $modelId: Int!,
  $modelType: String!
) {
  endorse(
    abstain: $abstain,
    modelId: $modelId,
    modelType: $modelType
  ) {
    endorsement {
      ...EndorsementFragment
    }
    success
  }
}
Variables
{
  "abstain": true,
  "modelId": 987,
  "modelType": "abc123"
}
Response
{
  "data": {
    "endorse": {
      "endorsement": Endorsement,
      "success": true
    }
  }
}

giveKudos

Description

Allows the current user to give kudos to another user

Response

Returns a GiveKudosMutationPayload

Arguments
Name Description
kudosUserId - ID The ID of the user to give kudos to.

Example

Query
mutation giveKudos($kudosUserId: ID) {
  giveKudos(kudosUserId: $kudosUserId) {
    success
  }
}
Variables
{"kudosUserId": 4}
Response
{"data": {"giveKudos": {"success": false}}}

hideCollectionBugReport

This mutation will be replaced using Interfaces and Global IDs
Description

Hides a bug report on a collection from public view

Arguments
Name Description
bugReportId - ID! ID of the collection bug report to hide
reason - String Public reason to hide the bug report
internalReason - String Company internal reason to hide the bug report

Example

Query
mutation hideCollectionBugReport(
  $bugReportId: ID!,
  $reason: String,
  $internalReason: String
) {
  hideCollectionBugReport(
    bugReportId: $bugReportId,
    reason: $reason,
    internalReason: $internalReason
  ) {
    collectionBugReport {
      ...CollectionBugReportFragment
    }
  }
}
Variables
{
  "bugReportId": 4,
  "reason": "abc123",
  "internalReason": "abc123"
}
Response
{
  "data": {
    "hideCollectionBugReport": {
      "collectionBugReport": CollectionBugReport
    }
  }
}

hideComment

Description

Hides a comment.

Response

Returns a HideCommentMutationPayload

Arguments
Name Description
commentId - ID! The database ID for this comment.
reason - String! The reason for hiding the comment.
internalReason - String The internal reason for hiding the comment. Only visible to admins and moderators.

Example

Query
mutation hideComment(
  $commentId: ID!,
  $reason: String!,
  $internalReason: String
) {
  hideComment(
    commentId: $commentId,
    reason: $reason,
    internalReason: $internalReason
  ) {
    comment {
      ...CommentFragment
    }
  }
}
Variables
{
  "commentId": "4",
  "reason": "xyz789",
  "internalReason": "xyz789"
}
Response
{"data": {"hideComment": {"comment": Comment}}}

issueWarningToUser

Description

Issues a moderation warning to a user

Response

Returns an IssueWarningToUserMutationPayload

Arguments
Name Description
userId - ID! The database ID for this user.
warning - FormalOrInformalWarning! Whether the warning is informal or formal
reason - String! The reason for the warning
publicReason - String The public reason for the warning
referenceLinks - [String!] Reference links for the warning
commentId - ID The database ID for this comment.
restrictions - [ModerationRestriction!] Restrictions to apply to the user

Example

Query
mutation issueWarningToUser(
  $userId: ID!,
  $warning: FormalOrInformalWarning!,
  $reason: String!,
  $publicReason: String,
  $referenceLinks: [String!],
  $commentId: ID,
  $restrictions: [ModerationRestriction!]
) {
  issueWarningToUser(
    userId: $userId,
    warning: $warning,
    reason: $reason,
    publicReason: $publicReason,
    referenceLinks: $referenceLinks,
    commentId: $commentId,
    restrictions: $restrictions
  ) {
    success
  }
}
Variables
{
  "userId": "4",
  "warning": "INFORMAL_WARNING",
  "reason": "xyz789",
  "publicReason": "xyz789",
  "referenceLinks": ["xyz789"],
  "commentId": "4",
  "restrictions": [ModerationRestriction]
}
Response
{"data": {"issueWarningToUser": {"success": true}}}

likeComment

Description

Likes a comment.

Response

Returns a LikeCommentMutationPayload

Arguments
Name Description
commentId - ID! The database ID for this comment.

Example

Query
mutation likeComment($commentId: ID!) {
  likeComment(commentId: $commentId) {
    comment {
      ...CommentFragment
    }
  }
}
Variables
{"commentId": 4}
Response
{"data": {"likeComment": {"comment": Comment}}}

listCollection

Description

Sets a collection as listed. A collection can only be listed if there are published revisions. User must have the collection:set_status permission

Response

Returns a ListCollectionMutationPayload

Arguments
Name Description
collectionId - Int! The database ID for this collection.

Example

Query
mutation listCollection($collectionId: Int!) {
  listCollection(collectionId: $collectionId) {
    success
  }
}
Variables
{"collectionId": 123}
Response
{"data": {"listCollection": {"success": true}}}

lockComment

Description

Locks a comment.

Response

Returns a LockCommentMutationPayload

Arguments
Name Description
commentId - ID! The database ID for this comment.

Example

Query
mutation lockComment($commentId: ID!) {
  lockComment(commentId: $commentId) {
    comment {
      ...CommentFragment
    }
  }
}
Variables
{"commentId": "4"}
Response
{"data": {"lockComment": {"comment": Comment}}}

lockCommentThread

Description

Locks a comment thread.

Response

Returns a LockThreadMutationPayload

Arguments
Name Description
commentThreadId - ID! The database ID for this comment thread.

Example

Query
mutation lockCommentThread($commentThreadId: ID!) {
  lockCommentThread(commentThreadId: $commentThreadId) {
    commentThread {
      ...CommentThreadFragment
    }
  }
}
Variables
{"commentThreadId": 4}
Response
{
  "data": {
    "lockCommentThread": {"commentThread": CommentThread}
  }
}

moderate

This mutation will be replaced using Interfaces and Global IDs
Description

Sets a collection as under_moderation, allowing the user to provide a reason and the ability to 'lock' the collection against future editing. User must have the collection:moderate permission.

Response

Returns a ModerateMutationPayload

Arguments
Name Description
id - ID! Moderatable ID - ID of the object intended to be moderated
type - Moderatable! Moderatable type
userNote - String Moderation note visible to the user
staffNote - String Moderation note only visible to staff
editable - Boolean If true, this entity cannot be edited by the author
moderationReasonId - ID! The database ID for this moderation reason.

Example

Query
mutation moderate(
  $id: ID!,
  $type: Moderatable!,
  $userNote: String,
  $staffNote: String,
  $editable: Boolean,
  $moderationReasonId: ID!
) {
  moderate(
    id: $id,
    type: $type,
    userNote: $userNote,
    staffNote: $staffNote,
    editable: $editable,
    moderationReasonId: $moderationReasonId
  ) {
    moderation {
      ...ModerationFragment
    }
    success
  }
}
Variables
{
  "id": "4",
  "type": "Collection",
  "userNote": "abc123",
  "staffNote": "abc123",
  "editable": false,
  "moderationReasonId": 4
}
Response
{
  "data": {
    "moderate": {
      "moderation": Moderation,
      "success": true
    }
  }
}

modifyImageForCollection

This mutation will be replaced using Interfaces and Global IDs
Description

Updates an image on a collection

Arguments
Name Description
image - UpdateImageInput! Image to be updated
collectionId - ID! ID of collection to update image on

Example

Query
mutation modifyImageForCollection(
  $image: UpdateImageInput!,
  $collectionId: ID!
) {
  modifyImageForCollection(
    image: $image,
    collectionId: $collectionId
  ) {
    image {
      ...CollectionImageFragment
    }
    updated
  }
}
Variables
{
  "image": UpdateImageInput,
  "collectionId": "4"
}
Response
{
  "data": {
    "modifyImageForCollection": {
      "image": CollectionImage,
      "updated": true
    }
  }
}

openCollectionBugReport

This mutation will be replaced using Interfaces and Global IDs
Description

Re-opens a previously closed bug report. Can be called by the report or the collection curator

Arguments
Name Description
bugReportId - ID! ID of the collection bug report to open

Example

Query
mutation openCollectionBugReport($bugReportId: ID!) {
  openCollectionBugReport(bugReportId: $bugReportId) {
    collectionBugReport {
      ...CollectionBugReportFragment
    }
  }
}
Variables
{"bugReportId": 4}
Response
{
  "data": {
    "openCollectionBugReport": {
      "collectionBugReport": CollectionBugReport
    }
  }
}

pinComment

Description

Pins a comment. User must have the comment:pin? permission

Response

Returns a PinCommentMutationPayload

Arguments
Name Description
commentId - ID! The database ID for this comment.

Example

Query
mutation pinComment($commentId: ID!) {
  pinComment(commentId: $commentId) {
    comment {
      ...CommentFragment
    }
  }
}
Variables
{"commentId": "4"}
Response
{"data": {"pinComment": {"comment": Comment}}}

publishRevision

Description

Publishes a Collection Revision

Response

Returns a PublishRevisionMutationPayload

Arguments
Name Description
revisionId - ID! Collection Revision ID
collectionStatus - CollectionStatus Allows a curator to set the collection status when this revision is published
hasAdultResources - Boolean Does this revision contain adult content resources

Example

Query
mutation publishRevision(
  $revisionId: ID!,
  $collectionStatus: CollectionStatus,
  $hasAdultResources: Boolean
) {
  publishRevision(
    revisionId: $revisionId,
    collectionStatus: $collectionStatus,
    hasAdultResources: $hasAdultResources
  ) {
    success
  }
}
Variables
{
  "revisionId": "4",
  "collectionStatus": "listed",
  "hasAdultResources": false
}
Response
{"data": {"publishRevision": {"success": false}}}

rate

This mutation will be replaced using Interfaces and Global IDs
Description

Votes for a generic Rateable model. TODO: This will be moved to model-specific mutations

Response

Returns a CreateRatingMutationPayload

Arguments
Name Description
id - ID! ID of the entity the rating is for
type - Ratable! Type of the entity the rating is for
rating - RatingOptions! Rating value

Example

Query
mutation rate(
  $id: ID!,
  $type: Ratable!,
  $rating: RatingOptions!
) {
  rate(
    id: $id,
    type: $type,
    rating: $rating
  ) {
    averageRating {
      ...AverageRatingFragment
    }
    rating {
      ...RatingFragment
    }
    success
  }
}
Variables
{
  "id": "4",
  "type": "CollectionRevision",
  "rating": "positive"
}
Response
{
  "data": {
    "rate": {
      "averageRating": AverageRating,
      "rating": Rating,
      "success": false
    }
  }
}

rejectModerationFix

Description

Marks the moderation fix as rejected. The collection status is not changed. Only collection moderators can call this mutation

Arguments
Name Description
moderationFixId - ID! The database ID for this moderation fix.

Example

Query
mutation rejectModerationFix($moderationFixId: ID!) {
  rejectModerationFix(moderationFixId: $moderationFixId) {
    moderationFix {
      ...ModerationFixFragment
    }
    success
  }
}
Variables
{"moderationFixId": 4}
Response
{
  "data": {
    "rejectModerationFix": {
      "moderationFix": ModerationFix,
      "success": true
    }
  }
}

removeCommentLike

Description

Removes the current user's like from a comment.

Arguments
Name Description
commentId - ID! The database ID for this comment.

Example

Query
mutation removeCommentLike($commentId: ID!) {
  removeCommentLike(commentId: $commentId) {
    comment {
      ...CommentFragment
    }
  }
}
Variables
{"commentId": 4}
Response
{"data": {"removeCommentLike": {"comment": Comment}}}

removeFavouriteGame

Description

Removes a game from a user's favourites

Arguments
Name Description
gameId - ID! The game to remove

Example

Query
mutation removeFavouriteGame($gameId: ID!) {
  removeFavouriteGame(gameId: $gameId) {
    success
  }
}
Variables
{"gameId": "4"}
Response
{"data": {"removeFavouriteGame": {"success": true}}}

removeHeaderImageFromCollection

This mutation will be replaced using Interfaces and Global IDs
Description

Removes a header image from a Collection

Arguments
Name Description
collectionId - ID! The database ID for this collection.

Example

Query
mutation removeHeaderImageFromCollection($collectionId: ID!) {
  removeHeaderImageFromCollection(collectionId: $collectionId) {
    success
  }
}
Variables
{"collectionId": "4"}
Response
{"data": {"removeHeaderImageFromCollection": {"success": false}}}

removeImageFromCollection

This mutation will be replaced using Interfaces and Global IDs
Description

Removes an image from a Collection

Arguments
Name Description
imageId - ID! The database ID for this image.
collectionId - ID! The database ID for this collection.

Example

Query
mutation removeImageFromCollection(
  $imageId: ID!,
  $collectionId: ID!
) {
  removeImageFromCollection(
    imageId: $imageId,
    collectionId: $collectionId
  ) {
    success
  }
}
Variables
{
  "imageId": "4",
  "collectionId": "4"
}
Response
{"data": {"removeImageFromCollection": {"success": false}}}

removeKudos

Description

Allows the current user to remove kudos from another user

Response

Returns a RemoveKudosMutationPayload

Arguments
Name Description
kudosUserId - ID The ID of the user to remove kudos from.

Example

Query
mutation removeKudos($kudosUserId: ID) {
  removeKudos(kudosUserId: $kudosUserId) {
    success
  }
}
Variables
{"kudosUserId": 4}
Response
{"data": {"removeKudos": {"success": true}}}

removeTagFromCollection

This mutation will be replaced using Interfaces and Global IDs
Description

Removes tags from a collection

Arguments
Name Description
tagIds - [ID!]! Array containing Tag IDs
collectionId - ID! Collection ID

Example

Query
mutation removeTagFromCollection(
  $tagIds: [ID!]!,
  $collectionId: ID!
) {
  removeTagFromCollection(
    tagIds: $tagIds,
    collectionId: $collectionId
  ) {
    success
  }
}
Variables
{"tagIds": ["4"], "collectionId": 4}
Response
{"data": {"removeTagFromCollection": {"success": false}}}

removeTileImageFromCollection

This mutation will be replaced using Interfaces and Global IDs
Description

Removes a tile image from a Collection

Arguments
Name Description
collectionId - ID! The database ID for this collection.

Example

Query
mutation removeTileImageFromCollection($collectionId: ID!) {
  removeTileImageFromCollection(collectionId: $collectionId) {
    success
  }
}
Variables
{"collectionId": 4}
Response
{"data": {"removeTileImageFromCollection": {"success": true}}}

removeVideoFromCollection

This mutation will be replaced using Interfaces and Global IDs
Description

Removes a video from a Collection

Arguments
Name Description
videoId - ID! The database ID for this video.
collectionId - ID! The database ID for this collection.

Example

Query
mutation removeVideoFromCollection(
  $videoId: ID!,
  $collectionId: ID!
) {
  removeVideoFromCollection(
    videoId: $videoId,
    collectionId: $collectionId
  ) {
    success
  }
}
Variables
{"videoId": 4, "collectionId": "4"}
Response
{"data": {"removeVideoFromCollection": {"success": false}}}

reorderItem

Description

Moves an item to a new position in a list.

Response

Returns a ReorderItemPayload

Arguments
Name Description
id - ID! The global ID of the item to move.
targetId - ID! The global ID of the item to move towards.
location - ReorderLocation! The new location of the item, in relation to the target item.

Example

Query
mutation reorderItem(
  $id: ID!,
  $targetId: ID!,
  $location: ReorderLocation!
) {
  reorderItem(
    id: $id,
    targetId: $targetId,
    location: $location
  ) {
    item {
      ...ReorderableFragment
    }
  }
}
Variables
{
  "id": "4",
  "targetId": "4",
  "location": "BEFORE"
}
Response
{"data": {"reorderItem": {"item": Reorderable}}}

reorderPinnedComments

Description

Reorders pinned comments. User must have the comment:pin? permission

Arguments
Name Description
commentIds - [ID!]! The database ID for this comment.

Example

Query
mutation reorderPinnedComments($commentIds: [ID!]!) {
  reorderPinnedComments(commentIds: $commentIds) {
    comments {
      ...CommentFragment
    }
  }
}
Variables
{"commentIds": [4]}
Response
{
  "data": {
    "reorderPinnedComments": {"comments": [Comment]}
  }
}

restoreComment

Description

Restores a discarded comment.

Response

Returns a RestoreCommentMutationPayload

Arguments
Name Description
commentId - ID! The database ID for this comment.

Example

Query
mutation restoreComment($commentId: ID!) {
  restoreComment(commentId: $commentId) {
    comment {
      ...CommentFragment
    }
  }
}
Variables
{"commentId": 4}
Response
{"data": {"restoreComment": {"comment": Comment}}}

retractRevision

Description

Retracts a Collection Revision. This keeps the revision listed and downloadable but marks it as a revision that should not be used anymore.

Response

Returns a RetractRevisionMutationPayload

Arguments
Name Description
revisionId - ID! Collection Revision ID
reason - String! Retraction Reason

Example

Query
mutation retractRevision(
  $revisionId: ID!,
  $reason: String!
) {
  retractRevision(
    revisionId: $revisionId,
    reason: $reason
  ) {
    success
  }
}
Variables
{"revisionId": 4, "reason": "abc123"}
Response
{"data": {"retractRevision": {"success": false}}}

submitModerationFix

Description

Submits a moderation fix against a moderation that is pending acceptance

Arguments
Name Description
moderationId - ID! The database ID for this moderation fix.
description - String Additional information from the curation for this fix

Example

Query
mutation submitModerationFix(
  $moderationId: ID!,
  $description: String
) {
  submitModerationFix(
    moderationId: $moderationId,
    description: $description
  ) {
    moderationFix {
      ...ModerationFixFragment
    }
    success
  }
}
Variables
{
  "moderationId": "4",
  "description": "xyz789"
}
Response
{
  "data": {
    "submitModerationFix": {
      "moderationFix": ModerationFix,
      "success": false
    }
  }
}

trackMod

Description

Allows the current user to track a mod

Response

Returns a TrackModMutationPayload

Arguments
Name Description
modUid - ID! The ID of the mod to be tracked.

Example

Query
mutation trackMod($modUid: ID!) {
  trackMod(modUid: $modUid) {
    success
    trackedMod {
      ...TrackedModFragment
    }
  }
}
Variables
{"modUid": "4"}
Response
{
  "data": {
    "trackMod": {
      "success": true,
      "trackedMod": TrackedMod
    }
  }
}

trackUser

Description

Allows the current user to track another user

Response

Returns a TrackUserMutationPayload

Arguments
Name Description
trackedUserId - ID The ID of the user to be tracked.

Example

Query
mutation trackUser($trackedUserId: ID) {
  trackUser(trackedUserId: $trackedUserId) {
    success
  }
}
Variables
{"trackedUserId": 4}
Response
{"data": {"trackUser": {"success": true}}}

unblockModsFromEarningDp

Description

Allows the current user to unblock all of a user's existing mods from earning DP.

Arguments
Name Description
userId - ID The ID of the user for whom to unblock mods.

Example

Query
mutation unblockModsFromEarningDp($userId: ID) {
  unblockModsFromEarningDp(userId: $userId) {
    success
  }
}
Variables
{"userId": 4}
Response
{"data": {"unblockModsFromEarningDp": {"success": false}}}

unlistCollection

Description

Unlists a Collection Revision from the public Nexus Mods pages.

Response

Returns an UnlistCollectionMutationPayload

Arguments
Name Description
collectionId - ID! Collection ID

Example

Query
mutation unlistCollection($collectionId: ID!) {
  unlistCollection(collectionId: $collectionId) {
    success
  }
}
Variables
{"collectionId": "4"}
Response
{"data": {"unlistCollection": {"success": false}}}

unpinComment

Description

Unpins a comment. User must have the comment:unpin? permission

Response

Returns an UnpinCommentMutationPayload

Arguments
Name Description
commentId - ID! The database ID for this comment.

Example

Query
mutation unpinComment($commentId: ID!) {
  unpinComment(commentId: $commentId) {
    comment {
      ...CommentFragment
    }
  }
}
Variables
{"commentId": 4}
Response
{"data": {"unpinComment": {"comment": Comment}}}

unpublishRevision

Legacy Field - this will be removed in a future update.
Description

Retracts a Collection Revision. This keeps the revision listed and downloadable but marks it as a revision that should not be used anymore.

Response

Returns a RetractRevisionMutationPayload

Arguments
Name Description
revisionId - ID! Collection Revision ID
reason - String! Retraction Reason

Example

Query
mutation unpublishRevision(
  $revisionId: ID!,
  $reason: String!
) {
  unpublishRevision(
    revisionId: $revisionId,
    reason: $reason
  ) {
    success
  }
}
Variables
{
  "revisionId": "4",
  "reason": "xyz789"
}
Response
{"data": {"unpublishRevision": {"success": true}}}

untrackMod

Description

Allows the current user to untrack a mod

Response

Returns an UntrackModMutationPayload

Arguments
Name Description
modUid - ID! The ID of the mod to be un-tracked.

Example

Query
mutation untrackMod($modUid: ID!) {
  untrackMod(modUid: $modUid) {
    success
  }
}
Variables
{"modUid": 4}
Response
{"data": {"untrackMod": {"success": false}}}

untrackUser

Description

Makes the current user stop tracking another user

Response

Returns an UntrackUserMutationPayload

Arguments
Name Description
trackedUserId - ID The ID of the user to stop tracking.

Example

Query
mutation untrackUser($trackedUserId: ID) {
  untrackUser(trackedUserId: $trackedUserId) {
    success
  }
}
Variables
{"trackedUserId": 4}
Response
{"data": {"untrackUser": {"success": true}}}

updateAboutMe

Description

Updates a user's bio (About Me) on their profile

Response

Returns an UpdateAboutMeMutationPayload

Arguments
Name Description
userId - ID The user whose bio we are updating (or current user if nil).
about - String! The new text for the about me section in bio.

Example

Query
mutation updateAboutMe(
  $userId: ID,
  $about: String!
) {
  updateAboutMe(
    userId: $userId,
    about: $about
  ) {
    success
  }
}
Variables
{"userId": 4, "about": "xyz789"}
Response
{"data": {"updateAboutMe": {"success": true}}}

updateChangelog

Description

Updates existing revision changelog

Response

Returns an UpdateChangelogMutationPayload

Arguments
Name Description
changelogId - ID! Changelog ID
description - String! Changelog description

Example

Query
mutation updateChangelog(
  $changelogId: ID!,
  $description: String!
) {
  updateChangelog(
    changelogId: $changelogId,
    description: $description
  ) {
    changelogId
    success
  }
}
Variables
{
  "changelogId": "4",
  "description": "xyz789"
}
Response
{"data": {"updateChangelog": {"changelogId": 123, "success": true}}}

updateCollectionBugReport

This mutation will be replaced using Interfaces and Global IDs
Description

Updates a bug report on a collection

Arguments
Name Description
bugReportId - ID! ID of the collection bug report to update
collectionRevisionNumber - Int Number of collection revision to update bug report on
title - String! Title of the new bug report
description - String Description of the new bug report
attachmentIds - [ID!] Array of attachment ids

Example

Query
mutation updateCollectionBugReport(
  $bugReportId: ID!,
  $collectionRevisionNumber: Int,
  $title: String!,
  $description: String,
  $attachmentIds: [ID!]
) {
  updateCollectionBugReport(
    bugReportId: $bugReportId,
    collectionRevisionNumber: $collectionRevisionNumber,
    title: $title,
    description: $description,
    attachmentIds: $attachmentIds
  ) {
    collectionBugReport {
      ...CollectionBugReportFragment
    }
  }
}
Variables
{
  "bugReportId": 4,
  "collectionRevisionNumber": 987,
  "title": "xyz789",
  "description": "xyz789",
  "attachmentIds": [4]
}
Response
{
  "data": {
    "updateCollectionBugReport": {
      "collectionBugReport": CollectionBugReport
    }
  }
}

updateComment

Description

Updates a comment.

Response

Returns an UpdateCommentMutationPayload

Arguments
Name Description
commentId - ID! The database ID for this comment.
body - String! The comment body.
attachmentIds - [ID!] An array of attachment_ids of uploaded files to attach to the new revision.Include all the previous ids or they won't be present on the updated revision.If you don't send an array the previous revisions attachments will be maintained

Example

Query
mutation updateComment(
  $commentId: ID!,
  $body: String!,
  $attachmentIds: [ID!]
) {
  updateComment(
    commentId: $commentId,
    body: $body,
    attachmentIds: $attachmentIds
  ) {
    comment {
      ...CommentFragment
    }
  }
}
Variables
{
  "commentId": "4",
  "body": "xyz789",
  "attachmentIds": [4]
}
Response
{"data": {"updateComment": {"comment": Comment}}}

updateCountry

Description

Updates a user's country on their profile

Response

Returns an UpdateCountryMutationPayload

Arguments
Name Description
userId - ID The user whose country to update (current user if omitted).
country - String ISO Country Code (can also be null)

Example

Query
mutation updateCountry(
  $userId: ID,
  $country: String
) {
  updateCountry(
    userId: $userId,
    country: $country
  ) {
    success
  }
}
Variables
{
  "userId": "4",
  "country": "abc123"
}
Response
{"data": {"updateCountry": {"success": false}}}

updatePreferences

Description

Updates a users preferences

Arguments
Name Description
defaultModsTab - PreferencesDefaultModsTabEnum Default mods tab
defaultMediaTab - PreferencesDefaultMediaTabEnum Default media tab
defaultNewsTab - PreferencesDefaultNewsTabEnum Default news tab
subfeedsCommentsYour - Boolean Comments about a users files, images and videos
subfeedsActivityYour - Boolean Activity about a users files, images and videos
subfeedsCommentsTracked - Boolean Comments about tracked files, images and videos
subfeedsActivityTracked - Boolean Activity about tracked files, images and videos
subfeedsAuthorTracked - Boolean Author tracked files, images and videos
defaultOrder - PreferencesDefaultSortEnum Default sorting option
defaultSearchView - PreferencesDefaultSearchViewEnum Default search view
results - PreferencesResultsEnum Number of items to show per page
comments - PreferencesCommentsEnum Number of comments to show per page
dlLocation - PreferencesDlLocationEnum Preferred download location
timeOffset - String Member timezone
membersAutoDst - Boolean Automatically detect when timezone in DST
reminder - PreferencesReminderEnum User reminder for file ratings
imageShowcase - PreferencesImageShowcaseEnum Images added by author in image description
bubbleReply - Boolean Replies to posts bump original post
disableProfileActivity - Boolean Display user activity
displayLastActivity - Boolean Display when user was last active
adult - Boolean Show adult content
adultBlurImages - Boolean Blur adult images
download - PreferencesDownloadMethodEnum Preferred download method
notificationsActive - Boolean Display notifications
notificationsGameSpecific - Boolean Display game specific notifications when on game pages
defaultSearchType - PreferencesSearchTypeEnum Default search type

Example

Query
mutation updatePreferences(
  $defaultModsTab: PreferencesDefaultModsTabEnum,
  $defaultMediaTab: PreferencesDefaultMediaTabEnum,
  $defaultNewsTab: PreferencesDefaultNewsTabEnum,
  $subfeedsCommentsYour: Boolean,
  $subfeedsActivityYour: Boolean,
  $subfeedsCommentsTracked: Boolean,
  $subfeedsActivityTracked: Boolean,
  $subfeedsAuthorTracked: Boolean,
  $defaultOrder: PreferencesDefaultSortEnum,
  $defaultSearchView: PreferencesDefaultSearchViewEnum,
  $results: PreferencesResultsEnum,
  $comments: PreferencesCommentsEnum,
  $dlLocation: PreferencesDlLocationEnum,
  $timeOffset: String,
  $membersAutoDst: Boolean,
  $reminder: PreferencesReminderEnum,
  $imageShowcase: PreferencesImageShowcaseEnum,
  $bubbleReply: Boolean,
  $disableProfileActivity: Boolean,
  $displayLastActivity: Boolean,
  $adult: Boolean,
  $adultBlurImages: Boolean,
  $download: PreferencesDownloadMethodEnum,
  $notificationsActive: Boolean,
  $notificationsGameSpecific: Boolean,
  $defaultSearchType: PreferencesSearchTypeEnum
) {
  updatePreferences(
    defaultModsTab: $defaultModsTab,
    defaultMediaTab: $defaultMediaTab,
    defaultNewsTab: $defaultNewsTab,
    subfeedsCommentsYour: $subfeedsCommentsYour,
    subfeedsActivityYour: $subfeedsActivityYour,
    subfeedsCommentsTracked: $subfeedsCommentsTracked,
    subfeedsActivityTracked: $subfeedsActivityTracked,
    subfeedsAuthorTracked: $subfeedsAuthorTracked,
    defaultOrder: $defaultOrder,
    defaultSearchView: $defaultSearchView,
    results: $results,
    comments: $comments,
    dlLocation: $dlLocation,
    timeOffset: $timeOffset,
    membersAutoDst: $membersAutoDst,
    reminder: $reminder,
    imageShowcase: $imageShowcase,
    bubbleReply: $bubbleReply,
    disableProfileActivity: $disableProfileActivity,
    displayLastActivity: $displayLastActivity,
    adult: $adult,
    adultBlurImages: $adultBlurImages,
    download: $download,
    notificationsActive: $notificationsActive,
    notificationsGameSpecific: $notificationsGameSpecific,
    defaultSearchType: $defaultSearchType
  ) {
    success
  }
}
Variables
{
  "defaultModsTab": "NEW_TODAY",
  "defaultMediaTab": "NEW_TODAY",
  "defaultNewsTab": "ALL_NEWS",
  "subfeedsCommentsYour": true,
  "subfeedsActivityYour": false,
  "subfeedsCommentsTracked": false,
  "subfeedsActivityTracked": false,
  "subfeedsAuthorTracked": true,
  "defaultOrder": "BY_RECENT_FILES",
  "defaultSearchView": "SMALL_TILES",
  "results": "RESULTS_20",
  "comments": "COMMENTS_10",
  "dlLocation": "NEXUS_CDN",
  "timeOffset": "xyz789",
  "membersAutoDst": false,
  "reminder": "NEVER",
  "imageShowcase": "NOT_SET",
  "bubbleReply": true,
  "disableProfileActivity": false,
  "displayLastActivity": false,
  "adult": false,
  "adultBlurImages": false,
  "download": "POP_UP_BOX",
  "notificationsActive": false,
  "notificationsGameSpecific": false,
  "defaultSearchType": "ALL_CONTENT"
}
Response
{"data": {"updatePreferences": {"success": false}}}

updateRevision

Description

Updates a specific Collection Revision with new installation information and adult content flags

Response

Returns an UpdateRevisionMutationPayload

Arguments
Name Description
revisionId - Int! ID of the collection revision to update
installationInfo - String User-provided installation information
adultContent - Boolean Whether this revision has adult content

Example

Query
mutation updateRevision(
  $revisionId: Int!,
  $installationInfo: String,
  $adultContent: Boolean
) {
  updateRevision(
    revisionId: $revisionId,
    installationInfo: $installationInfo,
    adultContent: $adultContent
  ) {
    revisionId
    success
  }
}
Variables
{
  "revisionId": 123,
  "installationInfo": "xyz789",
  "adultContent": true
}
Response
{"data": {"updateRevision": {"revisionId": 123, "success": true}}}

updateTag

Description

Updates a collection Tag

Response

Returns an UpdateTagMutationPayload

Arguments
Name Description
id - ID! Collection Tag ID
name - String Tag name
categoryId - ID Tag category ID
gameIds - [ID!] Games IDs to be associated with the Tag
global - Boolean Is the tag global (non game specific)
adult - Boolean Is this an adult content Tag

Example

Query
mutation updateTag(
  $id: ID!,
  $name: String,
  $categoryId: ID,
  $gameIds: [ID!],
  $global: Boolean,
  $adult: Boolean
) {
  updateTag(
    id: $id,
    name: $name,
    categoryId: $categoryId,
    gameIds: $gameIds,
    global: $global,
    adult: $adult
  ) {
    success
    tag {
      ...TagFragment
    }
  }
}
Variables
{
  "id": "4",
  "name": "abc123",
  "categoryId": 4,
  "gameIds": [4],
  "global": true,
  "adult": true
}
Response
{"data": {"updateTag": {"success": false, "tag": Tag}}}

uploadAttachment

Description

Uploads a file to later be attached to an Attachable entity

Response

Returns an UploadAttachmentMutationPayload

Arguments
Name Description
file - Upload! A file to upload that will be later attached to an entity

Example

Query
mutation uploadAttachment($file: Upload!) {
  uploadAttachment(file: $file) {
    attachment {
      ...AttachmentFragment
    }
  }
}
Variables
{"file": Upload}
Response
{"data": {"uploadAttachment": {"attachment": Attachment}}}

writeFullPageNotificationToUser

Description

Writes a full page notification to a user

Arguments
Name Description
userId - ID! The database ID for this user.
title - String! The full page notification title
message - String! The full page notification message
referenceLinks - [String!] The full page notification reference links

Example

Query
mutation writeFullPageNotificationToUser(
  $userId: ID!,
  $title: String!,
  $message: String!,
  $referenceLinks: [String!]
) {
  writeFullPageNotificationToUser(
    userId: $userId,
    title: $title,
    message: $message,
    referenceLinks: $referenceLinks
  ) {
    success
  }
}
Variables
{
  "userId": "4",
  "title": "xyz789",
  "message": "abc123",
  "referenceLinks": ["xyz789"]
}
Response
{"data": {"writeFullPageNotificationToUser": {"success": false}}}

Types

AbstainFromModEndorsementMutationPayload

Description

Autogenerated return type of AbstainFromModEndorsementMutation.

Fields
Field Name Description
endorsement - ModEndorsement! Endorsement entry.
success - Boolean! Returns true when abstaining was successful.
Example
{"endorsement": ModEndorsement, "success": true}

AcceptModerationFixMutationPayload

Description

Autogenerated return type of AcceptModerationFixMutation.

Fields
Field Name Description
moderationFix - ModerationFix! Return the moderation fix
success - Boolean! Returns true if the fix was accepted successfully
Example
{"moderationFix": ModerationFix, "success": true}

AddFavouriteGameMutationPayload

Description

Autogenerated return type of AddFavouriteGameMutation.

Fields
Field Name Description
success - Boolean! True if the favourite was successfully created
Example
{"success": false}

AddHeaderImageToCollectionMutationPayload

Description

Autogenerated return type of AddHeaderImageToCollectionMutation.

Fields
Field Name Description
image - CollectionImage! Header image that was added to the collection
Example
{"image": CollectionImage}

AddImageToCollectionMutationPayload

Description

Autogenerated return type of AddImageToCollectionMutation.

Fields
Field Name Description
image - CollectionImage! Image that was added to the collection
Example
{"image": CollectionImage}

AddTagToCollectionMutationPayload

Description

Autogenerated return type of AddTagToCollectionMutation.

Fields
Field Name Description
success - Boolean! True if all tags were added to the collection
Example
{"success": false}

AddTileImageToCollectionMutationPayload

Description

Autogenerated return type of AddTileImageToCollectionMutation.

Fields
Field Name Description
image - CollectionImage! Tile image that was added to the collection
Example
{"image": CollectionImage}

AddVideoToCollectionMutationPayload

Description

Autogenerated return type of AddVideoToCollectionMutation.

Fields
Field Name Description
video - CollectionVideo! Video that was added to the collection
Example
{"video": CollectionVideo}

AmendModerationMutationPayload

Description

Autogenerated return type of AmendModerationMutation.

Fields
Field Name Description
moderation - Moderation! Return Types::ModerationType
success - Boolean! Boolean determining success or failure of the request.
Example
{"moderation": Moderation, "success": true}

Attachable

Description

Something that can have files attached to it

Fields
Field Name Description
attachments - [Attachment!] The attachment filename and IDs
Possible Types
Attachable Types

CollectionBugReport

Comment

Example
{"attachments": [Attachment]}

Attachment

Description

Type that exposes the attachment urls

Fields
Field Name Description
filename - String! The attachment filename
id - ID! A unique ID for this attachment. This is a signed ID that will change between requests. This is expected behaviour and is to avoid tampering.
url - String! The attachment URL
Example
{
  "filename": "abc123",
  "id": "4",
  "url": "abc123"
}

AverageRating

Description

Average rating for a single revision and total number of votes

Fields
Field Name Description
average - Float! Average rating for this revision
positive - Int! Number of positive votes
total - Int! Total number of votes
Example
{"average": 123.45, "positive": 987, "total": 123}

BaseFilterValue

Fields
Input Field Description
value - String! Value
op - FilterComparisonOperator Comparison operator for value.
Example
{"value": "xyz789", "op": "EQUALS"}

BaseFilterValueEqualsMatches

Fields
Input Field Description
value - String! Value
op - FilterComparisonOperatorEqualsMatches Comparison operator for value.
Example
{"value": "abc123", "op": "EQUALS"}

BaseFilterValueEqualsWildcard

Fields
Input Field Description
value - String! Value
op - FilterComparisonOperatorEqualsWildcard Comparison operator for value.
Example
{"value": "xyz789", "op": "EQUALS"}

BaseSortValue

Fields
Input Field Description
direction - SortDirection! Direction of sort.
Example
{"direction": "ASC"}

BigInt

Description

Represents non-fractional signed whole numeric values. Since the value may exceed the size of a 32-bit integer, it's encoded as a string.

Example
{}

BlockModsFromEarningDpMutationPayload

Description

Autogenerated return type of BlockModsFromEarningDpMutation.

Fields
Field Name Description
success - Boolean! True if the mods were successfully blocked
Example
{"success": true}

BlockedMod

Description

A mod blocked from earning donation points

Fields
Field Name Description
id - String! The database ID for this blocked_mod.
isBlocked - Boolean! True if the mod is blocked from earning donation points
Example
{"id": "xyz789", "isBlocked": false}

BlockedModsPage

Description

A page of data

Fields
Field Name Description
nodes - [BlockedMod!]! A list of entries
pageInfo - BlockedModsPageInfo! Information about the page
Example
{
  "nodes": [BlockedMod],
  "pageInfo": BlockedModsPageInfo
}

BlockedModsPageInfo

Description

Information about a page

Fields
Field Name Description
totalCount - Int! The total number of entries
Example
{"totalCount": 123}

Boolean

Description

Represents true or false values.

BooleanFilterValue

Description

A boolean value E.g. true or false

Fields
Input Field Description
value - Boolean! Boolean Value
op - FilterComparisonOperator Comparison operator for value.
Example
{"value": true, "op": "EQUALS"}

BugReportClosureReason

Description

Acceptable bug report closure reasons

Values
Enum Value Description

none

None

resolved

Resolved

not_a_bug

Not a bug

wont_fix

Wont fix
Example
"none"

BugReportModerationStatus

Description

Moderation Status of a Bug Report

Values
Enum Value Description

none

None

hidden

Hidden
Example
"none"

BugReportStatus

Description

Acceptable bug report statuses

Values
Enum Value Description

open

Open

closed

Closed
Example
"open"

Category

Description

A category into which related entities may fall

Fields
Field Name Description
approved - Boolean! Whether the category has been approved
approvedBy - Int The id of the user who approved the category
categoryGames - [Game!] A list of games for which this category is used
createdAt - DateTime! Time of when this category was first created.
description - String! A brief description of the category's purpose
discardedAt - DateTime Time of when this category was discarded.
id - Int! The database ID for this category.
name - String! The name of the category
parentId - Int! The id of the parent category
suggestedBy - Int! The id of the user who suggested the category
updatedAt - DateTime! Time of when this category was last updated.
Example
{
  "approved": true,
  "approvedBy": 123,
  "categoryGames": [Game],
  "createdAt": "2007-12-03T10:15:30Z",
  "description": "abc123",
  "discardedAt": "2007-12-03T10:15:30Z",
  "id": 123,
  "name": "xyz789",
  "parentId": 123,
  "suggestedBy": 987,
  "updatedAt": "2007-12-03T10:15:30Z"
}

ChangeCollectionOwnerPayload

Description

Autogenerated return type of ChangeCollectionOwner.

Fields
Field Name Description
collection - Collection! Updated collection
success - Boolean! Success Boolean
Example
{"collection": Collection, "success": false}

ClearCollectionBugReportModerationStatusMutationPayload

Description

Autogenerated return type of ClearCollectionBugReportModerationStatusMutation.

Fields
Field Name Description
collectionBugReport - CollectionBugReport! Collection bug report whose status was cleared
Example
{"collectionBugReport": CollectionBugReport}

ClearCommentModerationStatusMutationPayload

Description

Autogenerated return type of ClearCommentModerationStatusMutation.

Fields
Field Name Description
comment - Comment! The comment that had its moderation status cleared.
Example
{"comment": Comment}

ClearThreadModerationStatusMutationPayload

Description

Autogenerated return type of ClearThreadModerationStatusMutation.

Fields
Field Name Description
commentThread - CommentThread! The comment thread that had its moderation status cleared.
Example
{"commentThread": CommentThread}

CloseCollectionBugReportMutationPayload

Description

Autogenerated return type of CloseCollectionBugReportMutation.

Fields
Field Name Description
collectionBugReport - CollectionBugReport! Collection bug report which was closed
Example
{"collectionBugReport": CollectionBugReport}

Collection

Description

A curated collection of mods

Fields
Field Name Description
adultContent - Boolean Indicates whether the collection contains adult content Adult content is now indicated at the revision level
allowUserMedia - Boolean Whether to allow non-curator users to upload media
bugReport - CollectionBugReport! Fetch a bug report for this collection by its id
Arguments
bugReportId - ID!

The database ID for this bug report.

bugReports - CollectionBugReportConnection! A list of bug reports raised for the collection
Arguments
status - BugReportStatus!

Filter bug reports by status. Possible opens are "Open" or "Closed"

sortBy - String

Column for sorting bug reports

sortDirection - String

Direction for sorting bug reports

after - String

Returns the elements in the list that come after the specified cursor.

before - String

Returns the elements in the list that come before the specified cursor.

first - Int

Returns the first n elements from the list.

last - Int

Returns the last n elements from the list.

category - Category A category into which related entities may fall
collectionChangelogs - [CollectionChangelog!] A list of changelogs created for the revisions of this collection
collectionStatus - CollectionStatus Available collection statuses
commentLink - String A link to the forum thread containing comments
commentThread - CommentThread! The comment thread for this collection.
createdAt - DateTime! Time of when this collection was first created.
currentRevision - CollectionRevision! Latest published revision Deprecated in favour of using a 'collectionRevision' query
Arguments
revision - Int

Revision number

description - String! A description of the collection in Markdown format
discardReason - CollectionDiscardReason A reason why the collection was discarded
discardedAt - DateTime Time of when this collection was discarded.
downloadLink - String! A link to download the collection
draftRevisionNumber - Int If there is a draft revision in this collection, this will return the revisionNumber for that revision. If there are no draft revisions, this will simply be null
endorsements - Int! The number of endorsements given to the collection
firstPublishedAt - DateTime Time of when the first of this collection's revisions was first published
forumTopic - ForumTopic The forum topic created to hold comments for this collection Use commentThread instead.
game - Game! The game for which the collection was created
gameId - Int! The id of the game for which the collection was created
headerImage - CollectionImage The image used as the background of the header on the collection's page
id - Int! The database ID for this collection.
lastPublishedAt - DateTime Time of when one of this collection's revisions was last published
latestPublishedRevision - CollectionRevision The latest published revision for this collection. This will be null for collections with no published revisions
latestPublishedRevisionRating - String Rating of the latest published revision
listedAt - DateTime Time of when this collection was first listed
manuallyVerifyMedia - Boolean Whether uploaded media requires verification before being displayed
media - [CollectionMediaUnion!]! A list of media uploaded to the collection, including images and videos
metadata - CollectionMetadata Metadata information about a collection
moderationJwt - String! JWT token for submitting moderation reports
moderations - [Moderation!] A list of moderation actions taken against this collection
name - String! The collection name
overallRating - String An average taken from all revision ratings
overallRatingCount - Int Total number of ratings given across all revisions
permissions - [Permission!] The list of permissions granted to the requesting user against this collection.
publicRevisions - [PublicCollectionRevision!] Returns "sanitized" collection revisions. Safe to use with discarded revisions.
publishedAt - DateTime Time of when one of this collection's revisions was last published Use last_published_at instead.
recentRating - String A 30 day average of all revision ratings
recentRatingCount - Int Total number of ratings given in the last 30 days
revisions - [CollectionRevision!]! A list of revisions for the collection
slug - String! A random string of characters identifying the collection. This is the identifier used in a collection page url.
summary - String! A brief summary of the collection
tags - [Tag!]! A list of tags attached to the collection, used to surface the collection in search results
tileImage - CollectionImage The image used to identify the collection in list views
totalDownloads - Int! The total number of times this collection has been downloaded
uniqueDownloads - Int! The total number of unique users who have downloaded this collection
updatedAt - DateTime! Time of when this collection was last updated.
user - User! The curating user
userId - Int! The id of the collection curator
viewerBlocked - Boolean! True if the viewer (current user) has blocked this collection's author
Example
{
  "adultContent": true,
  "allowUserMedia": true,
  "bugReport": CollectionBugReport,
  "bugReports": CollectionBugReportConnection,
  "category": Category,
  "collectionChangelogs": [CollectionChangelog],
  "collectionStatus": "listed",
  "commentLink": "abc123",
  "commentThread": CommentThread,
  "createdAt": "2007-12-03T10:15:30Z",
  "currentRevision": CollectionRevision,
  "description": "abc123",
  "discardReason": CollectionDiscardReason,
  "discardedAt": "2007-12-03T10:15:30Z",
  "downloadLink": "abc123",
  "draftRevisionNumber": 123,
  "endorsements": 987,
  "firstPublishedAt": "2007-12-03T10:15:30Z",
  "forumTopic": ForumTopic,
  "game": Game,
  "gameId": 987,
  "headerImage": CollectionImage,
  "id": 987,
  "lastPublishedAt": "2007-12-03T10:15:30Z",
  "latestPublishedRevision": CollectionRevision,
  "latestPublishedRevisionRating": "abc123",
  "listedAt": "2007-12-03T10:15:30Z",
  "manuallyVerifyMedia": false,
  "media": [CollectionImage],
  "metadata": CollectionMetadata,
  "moderationJwt": "abc123",
  "moderations": [Moderation],
  "name": "xyz789",
  "overallRating": "abc123",
  "overallRatingCount": 123,
  "permissions": [Permission],
  "publicRevisions": [PublicCollectionRevision],
  "publishedAt": "2007-12-03T10:15:30Z",
  "recentRating": "abc123",
  "recentRatingCount": 123,
  "revisions": [CollectionRevision],
  "slug": "abc123",
  "summary": "xyz789",
  "tags": [Tag],
  "tileImage": CollectionImage,
  "totalDownloads": 987,
  "uniqueDownloads": 987,
  "updatedAt": "2007-12-03T10:15:30Z",
  "user": User,
  "userId": 123,
  "viewerBlocked": false
}

CollectionBugReport

Description

A collection bug report.

Fields
Field Name Description
attachments - [Attachment!] The attachment filename and IDs
closedAt - DateTime Date that this report was changed to closed
closureReason - BugReportClosureReason If closed, what was the reason for closing the report
collection - Collection! A curated collection of mods
collectionRevisionNumber - Int! The collection revision number.
commentThread - CommentThread! The comment thread for this collection bug report.
createdAt - DateTime! Date that this report was created
description - String User-provided summary of the Bug Report
hiddenBy - User User that hid this Bug Report from public view
hiddenInternalReason - String If hidden, this will provide a reason. This is intended for moderators, admins and collection curators
hiddenReason - String If hidden, this will provide the reason
id - ID! The database ID for this collection bug report.
moderationJwt - String! JWT token for submitting moderation reports
moderationStatus - BugReportModerationStatus! If under moderation, can be none or hidden
openedAt - DateTime Date that this report was changed to open
permissions - [Permission!] Provides a list of all permissions for this report, using the context of the current user
reporter - User! User that reported this Bug Report
status - BugReportStatus! Status, can be Open or Closed
title - String! Title of the bug report
updatedAt - DateTime! Date that this report was last updated
Example
{
  "attachments": [Attachment],
  "closedAt": "2007-12-03T10:15:30Z",
  "closureReason": "none",
  "collection": Collection,
  "collectionRevisionNumber": 987,
  "commentThread": CommentThread,
  "createdAt": "2007-12-03T10:15:30Z",
  "description": "abc123",
  "hiddenBy": User,
  "hiddenInternalReason": "xyz789",
  "hiddenReason": "xyz789",
  "id": 4,
  "moderationJwt": "xyz789",
  "moderationStatus": "none",
  "openedAt": "2007-12-03T10:15:30Z",
  "permissions": [Permission],
  "reporter": User,
  "status": "open",
  "title": "abc123",
  "updatedAt": "2007-12-03T10:15:30Z"
}

CollectionBugReportConnection

Description

The connection type for CollectionBugReport.

Fields
Field Name Description
edges - [CollectionBugReportEdge] A list of edges.
nodes - [CollectionBugReport] A list of nodes.
pageInfo - PageInfo! Information to aid in pagination.
totalCount - Int! Total # of objects returned from this Plural Query
Example
{
  "edges": [CollectionBugReportEdge],
  "nodes": [CollectionBugReport],
  "pageInfo": PageInfo,
  "totalCount": 987
}

CollectionBugReportEdge

Description

An edge in a connection.

Fields
Field Name Description
cursor - String! A cursor for use in pagination.
node - CollectionBugReport The item at the end of the edge.
Example
{
  "cursor": "abc123",
  "node": CollectionBugReport
}

CollectionChangelog

Description

A changelog attached to a collection revision

Fields
Field Name Description
collectionRevisionId - Int! The id of the collection revision for which this changelog was created
createdAt - DateTime! Time of when this collection changelog was first created.
description - String! The content of the collection changelog, in Markdown format
id - Int! The database ID for this collection changelog.
revisionNumber - Int! The revision number of the collection revision for which this changelog was created
updatedAt - DateTime! Time of when this collection changelog was last updated.
Example
{
  "collectionRevisionId": 987,
  "createdAt": "2007-12-03T10:15:30Z",
  "description": "abc123",
  "id": 123,
  "revisionNumber": 987,
  "updatedAt": "2007-12-03T10:15:30Z"
}

CollectionDiscardReason

Description

A reason for which a revision has been retracted.

Fields
Field Name Description
collectionId - Int! The id of the collection which was discarded
createdAt - DateTime! Time of when this collection discard reason was first created.
id - Int! The database ID for this collection discard reason.
reason - String! The reason why the collection was discarded
updatedAt - DateTime! Time of when this collection discard reason was last updated.
Example
{
  "collectionId": 123,
  "createdAt": "2007-12-03T10:15:30Z",
  "id": 987,
  "reason": "xyz789",
  "updatedAt": "2007-12-03T10:15:30Z"
}

CollectionGeneralSearchFilterValue

Fields
Input Field Description
value - String! Value
op - FilterComparisonOperator Comparison operator for value.
Example
{"value": "abc123", "op": "EQUALS"}

CollectionImage

Description

Images related to a collection

Fields
Field Name Description
altText - String The alt text describing the image for screen readers
collection - Collection! The collection for which the image was uploaded
createdAt - DateTime! Time of when this collection image was first created.
discardedAt - DateTime Time of when this collection image was discarded.
globalId - ID The global ID for this entity.
id - ID! The database ID for this collection image.
imageType - ImageTypes! Determines where the image is displayed
order - String! The order of this entity in the list.
revision - CollectionRevision The collection revision for which the image was uploaded
thumbnailUrl - String! Can be used to select a scaled down/compressed version of the image
Arguments
size - ThumbnailSize!

The thumbnail size

title - String The image title
updatedAt - DateTime! Time of when this collection image was last updated.
url - String! The image resource url
user - User! The user who uploaded the image
Example
{
  "altText": "xyz789",
  "collection": Collection,
  "createdAt": "2007-12-03T10:15:30Z",
  "discardedAt": "2007-12-03T10:15:30Z",
  "globalId": "4",
  "id": "4",
  "imageType": "gallery",
  "order": "abc123",
  "revision": CollectionRevision,
  "thumbnailUrl": "xyz789",
  "title": "abc123",
  "updatedAt": "2007-12-03T10:15:30Z",
  "url": "xyz789",
  "user": User
}

CollectionManifest

Description

The JSON manifest that defines a collection

Fields
Input Field Description
info - CollectionManifestInfo! Manifest information
mods - [CollectionManifestMod!]! List of mod resources for the manifest
Example
{
  "info": CollectionManifestInfo,
  "mods": [CollectionManifestMod]
}

CollectionManifestInfo

Description

The info section of the JSON manifest

Fields
Input Field Description
author - String! The collection author's name
authorUrl - String The url of the author's profile
name - String! The name of the collection
description - String A description of the collection
summary - String A short summary of the collection
domainName - String! The domain name of the game
gameVersions - [String!] A list of game versions that this revision has been tested with
Example
{
  "author": "abc123",
  "authorUrl": "xyz789",
  "name": "xyz789",
  "description": "xyz789",
  "summary": "abc123",
  "domainName": "abc123",
  "gameVersions": ["abc123"]
}

CollectionManifestMod

Description

Defines a mod to be used in a collection as part of the manifest

Fields
Input Field Description
name - String! The name of the mod
version - String! The mod version
optional - Boolean! Whether the mod is required for this collection
domainName - String! The domain name of the game for the mod
source - CollectionManifestModSource! Mod source details
author - String The name of the mod author
Example
{
  "name": "abc123",
  "version": "xyz789",
  "optional": false,
  "domainName": "xyz789",
  "source": CollectionManifestModSource,
  "author": "abc123"
}

CollectionManifestModSource

Description

Source information for a mod (nexus or other) as part of the manifest

Fields
Input Field Description
type - ModSource! Type of the mod source
modId - Int Mod id
fileId - Int File ID
md5 - String An MD5 hash of the file for verification
fileSize - Int The file size in kb
updatePolicy - UpdatePolicy Update policy type
logicalFilename - String Logical file name of the mod resource
fileExpression - String File expression of the mod resource
url - String The direct url of the file
adultContent - Boolean Does the mod includes adult content
Example
{
  "type": "nexus",
  "modId": 123,
  "fileId": 987,
  "md5": "xyz789",
  "fileSize": 987,
  "updatePolicy": "exact",
  "logicalFilename": "xyz789",
  "fileExpression": "abc123",
  "url": "abc123",
  "adultContent": false
}

CollectionMediaUnion

Description

Collection Media

Types
Union Types

CollectionImage

CollectionVideo

Example
CollectionImage

CollectionMetadata

Description

Metadata information about a collection

Fields
Field Name Description
downloadedAt - DateTime A timestamp indicating the first time the user downloaded this collection
endorsementValue - Int A positive value indicates an endorsement by the user, while a negative value indicates abstention (will be null if the user has not endorsed the collection)
latestDownloadedRevisionNumber - Int The latest revision number downloaded by the user for this collection
Example
{
  "downloadedAt": "2007-12-03T10:15:30Z",
  "endorsementValue": 987,
  "latestDownloadedRevisionNumber": 123
}

CollectionPage

Fields
Field Name Description
facets - [NodesFacet!] Facets available, if supported for this query and requested.
facetsData - JSON Facets available, if supported for this query and requested. Schema is {"facetName":{"facetValue":count}}
nodes - [Collection!]! Nodes for pagination
nodesCount - Int! Number of nodes returned by this query
nodesFacets - [NodesFacet!] Facets available, if supported for this query and requested.
nodesFilter - String String representation of the filter query used to locate the nodes.
totalCount - Int! Total number of collections found.
Example
{
  "facets": [NodesFacet],
  "facetsData": {},
  "nodes": [Collection],
  "nodesCount": 123,
  "nodesFacets": [NodesFacet],
  "nodesFilter": "xyz789",
  "totalCount": 123
}

CollectionPayload

Description

The data payload used to create a collection revision

Fields
Input Field Description
adultContent - Boolean! Whether the collection includes adult content
collectionManifest - CollectionManifest! Collection manifest
collectionSchemaId - Int! Collection schema ID (Default: 1)
Example
{
  "adultContent": false,
  "collectionManifest": CollectionManifest,
  "collectionSchemaId": 987
}

CollectionRevision

Description

An immutable revision of a collection

Fields
Field Name Description
adultContent - Boolean! If true, this revision could contain adult content and needs to be treated accordingly
assetsSizeBytes - BigInt! The size of bundled assets within the revision in bytes
collection - Collection! Gets the collection that this revision belongs to. This will ignore adult_content flags.
collectionChangelog - CollectionChangelog A changelog attached to a collection revision
collectionId - Int! The database ID for this collection.
collectionSchema - CollectionSchema! A model of the expected structure for a collection manifest
collectionSchemaId - Int! The database ID for this collection schema.
contentPreviewLink - String! The link to generate a content preview for the revision
createdAt - DateTime! Time of when this revision was first created.
discardedAt - DateTime Time of when this revision was discarded.
downloadLink - String! The download link for the revision
externalResources - [ExternalResource!]! Array of external resources referenced by this revision
fileSize - BigInt! The total size of the revision in bytes Use "totalSize" instead.
gameVersions - [GameVersion!] A list of game versions for which the revision has been confirmed to work (usually the game version for which the revision was created)
id - Int! The database ID for this revision.
installationInfo - String Additional information about the installation process of this revision
latest - Boolean! Will be true if the revision is the latest published for the collection
metadata - CollectionRevisionMetadata Metadata information about a collection revision
modAuthors - UserConnection! List of authors of the mods included in this revision ordered (DESC) by the number of mods in the revision.
Arguments
after - String

Returns the elements in the list that come after the specified cursor.

before - String

Returns the elements in the list that come before the specified cursor.

first - Int

Returns the first n elements from the list.

last - Int

Returns the last n elements from the list.

modCount - Int! The number of mods and external resources in this collection
modFiles - [CollectionRevisionMod!]! A list of mod files included in the revision
overallRating - String An average taken from all ratings for this revision
overallRatingCount - Int A count of all ratings for this revision
rating - AverageRating! Average rating for a single revision and total number of votes Deprecated in favour of 'overallRating' and 'overallRatingCount'
retractionReason - RetractionReason A reason for which a revision has been retracted.
revision - Int! The revision number Use "revisionNumber" instead.
revisionNumber - Int! The revision number
revisionStatus - String! The status of this revision. Possible values are 'draft', 'published' or 'retracted'
status - String! The status of this revision. Possible values are 'draft', 'published' or 'retracted'
totalDownloads - Int! The total number of times the revision has been downloaded
totalSize - BigInt! The total size of the revision in bytes
uniqueDownloads - Int! The number of unique users who have download the revision
updatedAt - DateTime! Time of when this revision was last updated.
Example
{
  "adultContent": true,
  "assetsSizeBytes": {},
  "collection": Collection,
  "collectionChangelog": CollectionChangelog,
  "collectionId": 123,
  "collectionSchema": CollectionSchema,
  "collectionSchemaId": 987,
  "contentPreviewLink": "abc123",
  "createdAt": "2007-12-03T10:15:30Z",
  "discardedAt": "2007-12-03T10:15:30Z",
  "downloadLink": "xyz789",
  "externalResources": [ExternalResource],
  "fileSize": {},
  "gameVersions": [GameVersion],
  "id": 123,
  "installationInfo": "abc123",
  "latest": true,
  "metadata": CollectionRevisionMetadata,
  "modAuthors": UserConnection,
  "modCount": 123,
  "modFiles": [CollectionRevisionMod],
  "overallRating": "xyz789",
  "overallRatingCount": 123,
  "rating": AverageRating,
  "retractionReason": RetractionReason,
  "revision": 987,
  "revisionNumber": 987,
  "revisionStatus": "xyz789",
  "status": "abc123",
  "totalDownloads": 123,
  "totalSize": {},
  "uniqueDownloads": 987,
  "updatedAt": "2007-12-03T10:15:30Z"
}

CollectionRevisionMetadata

Description

Metadata information about a collection revision

Fields
Field Name Description
downloadedAt - DateTime A timestamp indicating the first time the user downloaded this revision
ratingValue - RatingOptions Indicates the rating given by the user to a revision
Example
{
  "downloadedAt": "2007-12-03T10:15:30Z",
  "ratingValue": "positive"
}

CollectionRevisionMod

Description

A mod file included in a collection

Fields
Field Name Description
collectionRevisionId - Int! The id of the collection revision including the mod file
file - ModFile The mod file
fileId - Int! The mod file's id
gameId - Int! The game id for the mod file
id - ID! The database ID for this collection revision mod.
optional - Boolean! Whether the mod file is required for the collection
updatePolicy - String! Indicates to mod managers how they should handle automatic updates
version - String! The mod file version
Example
{
  "collectionRevisionId": 987,
  "file": ModFile,
  "fileId": 123,
  "gameId": 123,
  "id": "4",
  "optional": true,
  "updatePolicy": "abc123",
  "version": "abc123"
}

CollectionSchema

Description

A model of the expected structure for a collection manifest

Fields
Field Name Description
createdAt - DateTime! Time of when this collection schema was first created.
id - Int! The database ID for this collection schema.
updatedAt - DateTime! Time of when this collection schema was last updated.
version - String! Schema version for the collection manifest format
Example
{
  "createdAt": "2007-12-03T10:15:30Z",
  "id": 987,
  "updatedAt": "2007-12-03T10:15:30Z",
  "version": "abc123"
}

CollectionStatus

Description

Available collection statuses

Values
Enum Value Description

listed

Publicly visible

unlisted

Does not appear in lists

under_moderation

Under moderation

discarded

Discarded
Example
"listed"

CollectionVideo

Description

Videos related to a collection

Fields
Field Name Description
collection - Collection! Collection that this video belongs to
createdAt - DateTime! Time of when this collection video was first created.
discardedAt - DateTime Time of when this collection video was discarded.
globalId - ID The global ID for this entity.
id - ID! The database ID for this collection video.
order - String! The order of this entity in the list.
revision - CollectionRevision Revision that this video belongs to
thumbnailUrl - String! The thumbnail URL for the video.
title - String! The title of the video.
updatedAt - DateTime! Time of when this collection video was last updated.
url - String! URL of this video
user - User! Uploader of this video
Example
{
  "collection": Collection,
  "createdAt": "2007-12-03T10:15:30Z",
  "discardedAt": "2007-12-03T10:15:30Z",
  "globalId": "4",
  "id": 4,
  "order": "abc123",
  "revision": CollectionRevision,
  "thumbnailUrl": "xyz789",
  "title": "abc123",
  "updatedAt": "2007-12-03T10:15:30Z",
  "url": "abc123",
  "user": User
}

CollectionsFacet

Description

Facet fields specific to the Collections query.

Fields
Input Field Description
adultContent - [String!] Facet on adult content.
categoryName - [String!] Facet on category.
collectionRating - [String!] Facet on ratings.
collectionStatus - [String!] Facet on status.
gameName - [String!] Facet on game name.
gameIds - [String!] Facet on game ID.
gameVersion - [String!] Facet on game versions.
tag - [String!] Facet on collection tags.
Example
{
  "adultContent": ["xyz789"],
  "categoryName": ["abc123"],
  "collectionRating": ["xyz789"],
  "collectionStatus": ["xyz789"],
  "gameName": ["xyz789"],
  "gameIds": ["xyz789"],
  "gameVersion": ["xyz789"],
  "tag": ["xyz789"]
}

CollectionsFilter

Description

Common filter fields specific to the Collections query

Fields
Input Field Description
filter - [CollectionsFilter!] Nested filters.
op - FilterLogicalOperator Logical operator for clauses.
name - [BaseFilterValue!] Collection Name
collectionRating - [BaseFilterValue!] Collection Rating
collectionStatus - [BaseFilterValue!] Status of the collection. Valid values are: "unlisted", "under_moderation" (moderators/admins only), "discarded" (moderators/admins only).
gameId - [BaseFilterValue!] Game ID
gameDomain - [BaseFilterValue!] Game domain name E.g. skyrim
gameName - [BaseFilterValue!] Game name E.g. Skyrim
categoryId - [BaseFilterValue!] Category ID
categoryName - [BaseFilterValue!] Category name
gameVersion - [BaseFilterValue!] Filter collections for specific game versions
modUid - [BaseFilterValue!] The mod unique identifier.
tag - [BaseFilterValue!] The tag name, exact match.
adultContent - [BooleanFilterValue!] Whether to show adult content in search results
hasDraftRevision - [BooleanFilterValue!] Only show collections that have a draft revision
hasPublishedRevision - [BooleanFilterValue!] Only show collections that have a published revision
generalSearch - [CollectionGeneralSearchFilterValue!] Text search on name, summary and description, partial match.
Example
{
  "filter": [CollectionsFilter],
  "op": "AND",
  "name": [BaseFilterValue],
  "collectionRating": [BaseFilterValue],
  "collectionStatus": [BaseFilterValue],
  "gameId": [BaseFilterValue],
  "gameDomain": [BaseFilterValue],
  "gameName": [BaseFilterValue],
  "categoryId": [BaseFilterValue],
  "categoryName": [BaseFilterValue],
  "gameVersion": [BaseFilterValue],
  "modUid": [BaseFilterValue],
  "tag": [BaseFilterValue],
  "adultContent": [BooleanFilterValue],
  "hasDraftRevision": [BooleanFilterValue],
  "hasPublishedRevision": [BooleanFilterValue],
  "generalSearch": [CollectionGeneralSearchFilterValue]
}

CollectionsSearchFilter

Description

Common filter fields specific to the Collections query

Fields
Input Field Description
filter - [CollectionsSearchFilter!] Nested filters.
op - FilterLogicalOperator Logical operator for clauses.
userId - [BaseFilterValue!] Author ID
name - [BaseFilterValue!] Collection Name
collectionRating - [BaseFilterValue!] Collection Rating
recentRating - [FloatFilterValue!] A 30 day average of all revision ratings
recentRatingCount - [IntFilterValue!] Total number of ratings given in the last 30 days
createdAt - [BaseFilterValue!] Created at date
updatedAt - [BaseFilterValue!] Updated at date
collectionStatus - [BaseFilterValue!] Collection Status
gameId - [BaseFilterValue!] Game ID
gameDomain - [BaseFilterValue!] Game domain name E.g. skyrim
gameName - [BaseFilterValue!] Game name E.g. Skyrim
categoryId - [BaseFilterValue!] Category ID
categoryName - [BaseFilterValue!] Category name
gameVersion - [BaseFilterValue!] Filter collections for specific game versions
modUid - [BaseFilterValue!] The mod unique identifier.
tag - [BaseFilterValue!] The tag name, exact match.
adultContent - [BooleanFilterValue!] Whether to show adult content in search results
hasDraftRevision - [BooleanFilterValue!] Only show collections that have a draft revision
hasPublishedRevision - [BooleanFilterValue!] Only show collections that have a published revision
generalSearch - [CollectionGeneralSearchFilterValue!] Text search on name, summary and description, partial match.
Example
{
  "filter": [CollectionsSearchFilter],
  "op": "AND",
  "userId": [BaseFilterValue],
  "name": [BaseFilterValue],
  "collectionRating": [BaseFilterValue],
  "recentRating": [FloatFilterValue],
  "recentRatingCount": [IntFilterValue],
  "createdAt": [BaseFilterValue],
  "updatedAt": [BaseFilterValue],
  "collectionStatus": [BaseFilterValue],
  "gameId": [BaseFilterValue],
  "gameDomain": [BaseFilterValue],
  "gameName": [BaseFilterValue],
  "categoryId": [BaseFilterValue],
  "categoryName": [BaseFilterValue],
  "gameVersion": [BaseFilterValue],
  "modUid": [BaseFilterValue],
  "tag": [BaseFilterValue],
  "adultContent": [BooleanFilterValue],
  "hasDraftRevision": [BooleanFilterValue],
  "hasPublishedRevision": [BooleanFilterValue],
  "generalSearch": [CollectionGeneralSearchFilterValue]
}

CollectionsSearchSort

Description

Sort fields specific to a Collections query.

Fields
Input Field Description
relevance - BaseSortValue Filter query relevance, works best with non wildcard queries.
createdAt - BaseSortValue Created at date
updatedAt - BaseSortValue Updated at date
endorsements - BaseSortValue Endorsements count
downloads - BaseSortValue Downloads count
rating - BaseSortValue Overall rating
Example
{
  "relevance": BaseSortValue,
  "createdAt": BaseSortValue,
  "updatedAt": BaseSortValue,
  "endorsements": BaseSortValue,
  "downloads": BaseSortValue,
  "rating": BaseSortValue
}

CollectionsUserFilter

Description

Allows filtering collections by user

Fields
Input Field Description
filter - [CollectionsFilter!] Nested filters.
op - FilterLogicalOperator Logical operator for clauses.
name - [BaseFilterValue!] Collection Name
collectionRating - [BaseFilterValue!] Collection Rating
collectionStatus - [BaseFilterValue!] Status of the collection. Valid values are: "unlisted", "under_moderation" (moderators/admins only), "discarded" (moderators/admins only).
gameId - [BaseFilterValue!] Game ID
gameDomain - [BaseFilterValue!] Game domain name E.g. skyrim
gameName - [BaseFilterValue!] Game name E.g. Skyrim
categoryId - [BaseFilterValue!] Category ID
categoryName - [BaseFilterValue!] Category name
gameVersion - [BaseFilterValue!] Filter collections for specific game versions
modUid - [BaseFilterValue!] The mod unique identifier.
tag - [BaseFilterValue!] The tag name, exact match.
adultContent - [BooleanFilterValue!] Whether to show adult content in search results
hasDraftRevision - [BooleanFilterValue!] Only show collections that have a draft revision
hasPublishedRevision - [BooleanFilterValue!] Only show collections that have a published revision
generalSearch - [CollectionGeneralSearchFilterValue!] Text search on name, summary and description, partial match.
userId - [BaseFilterValue!] User ID
Example
{
  "filter": [CollectionsFilter],
  "op": "AND",
  "name": [BaseFilterValue],
  "collectionRating": [BaseFilterValue],
  "collectionStatus": [BaseFilterValue],
  "gameId": [BaseFilterValue],
  "gameDomain": [BaseFilterValue],
  "gameName": [BaseFilterValue],
  "categoryId": [BaseFilterValue],
  "categoryName": [BaseFilterValue],
  "gameVersion": [BaseFilterValue],
  "modUid": [BaseFilterValue],
  "tag": [BaseFilterValue],
  "adultContent": [BooleanFilterValue],
  "hasDraftRevision": [BooleanFilterValue],
  "hasPublishedRevision": [BooleanFilterValue],
  "generalSearch": [CollectionGeneralSearchFilterValue],
  "userId": [BaseFilterValue]
}

Comment

Description

A comment.

Fields
Field Name Description
attachments - [Attachment!] The attachment filename and IDs
body - String! The content of the latest revision for this comment.
createdAt - DateTime! Time of when this comment was first created.
creator - User! The user that created this comment.
cursor - String! The pagination cursor for this comment.
discardedAt - DateTime Time of when this comment was discarded.
discardedBy - User The user that discarded this comment.
hiddenAt - DateTime Time of when this comment was hidden.
hiddenBy - User The user that hid this comment.
hiddenInternalReason - String The internal reason why this comment was hidden. Only accessible to admins and moderators.
hiddenReason - String The public reason why this comment was hidden.
id - ID! The database ID for this comment.
isDiscarded - Boolean! Returns a boolean indicating whether this comment is discarded.
isPinned - Boolean! Is this a pinned comment
likesCount - Int! Comment likes count.
lockedAt - DateTime Time of when this comment was locked.
lockedBy - User The user that locked this comment.
moderatedByAdmin - Boolean! Returns a boolean indicating whether this comment was moderated by an admin.
moderationJwt - String! JWT token for submitting moderation reports
moderationStatus - CommentModerationStatus! The moderation status of this comment.
parent - Comment The parent comment.
pinPriority - Int The user that pinned this comment.
pinnedBy - User User which pinned the comment
pinnedByAdmin - Boolean! Returns a boolean indicating whether this comment was pinned by an admin.
replies - CommentConnection! A list of replies to this comment.
Arguments
after - String

Returns the elements in the list that come after the specified cursor.

before - String

Returns the elements in the list that come before the specified cursor.

first - Int

Returns the first n elements from the list.

last - Int

Returns the last n elements from the list.

revisions - [CommentRevision!]! The revisions of this comment.
updatedAt - DateTime! Time of when this comment was last updated.
viewerHasLiked - Boolean! Returns a boolean indicating whether the viewing user has liked this comment.
Example
{
  "attachments": [Attachment],
  "body": "xyz789",
  "createdAt": "2007-12-03T10:15:30Z",
  "creator": User,
  "cursor": "abc123",
  "discardedAt": "2007-12-03T10:15:30Z",
  "discardedBy": User,
  "hiddenAt": "2007-12-03T10:15:30Z",
  "hiddenBy": User,
  "hiddenInternalReason": "abc123",
  "hiddenReason": "abc123",
  "id": "4",
  "isDiscarded": false,
  "isPinned": false,
  "likesCount": 987,
  "lockedAt": "2007-12-03T10:15:30Z",
  "lockedBy": User,
  "moderatedByAdmin": false,
  "moderationJwt": "abc123",
  "moderationStatus": "none",
  "parent": Comment,
  "pinPriority": 987,
  "pinnedBy": User,
  "pinnedByAdmin": false,
  "replies": CommentConnection,
  "revisions": [CommentRevision],
  "updatedAt": "2007-12-03T10:15:30Z",
  "viewerHasLiked": false
}

CommentConnection

Description

The connection type for Comment.

Fields
Field Name Description
edges - [CommentEdge] A list of edges.
nodes - [Comment] A list of nodes.
pageInfo - PageInfo! Information to aid in pagination.
totalCount - Int! Total # of objects returned from this Plural Query
Example
{
  "edges": [CommentEdge],
  "nodes": [Comment],
  "pageInfo": PageInfo,
  "totalCount": 987
}

CommentEdge

Description

An edge in a connection.

Fields
Field Name Description
cursor - String! A cursor for use in pagination.
node - Comment The item at the end of the edge.
Example
{
  "cursor": "xyz789",
  "node": Comment
}

CommentModerationStatus

Description

Enum for available moderation states: "none", "hidden", "locked"

Values
Enum Value Description

none

The comment is not under moderation.

hidden

The comment cannot be viewed.

locked

The comment cannot be interacted with.
Example
"none"

CommentRevision

Description

A comment revision.

Fields
Field Name Description
body - String! The content of this revision.
createdAt - DateTime! Time of when this revision was first created.
id - ID! ID of the object.
updatedAt - DateTime! Time of when this revision was last updated.
Example
{
  "body": "abc123",
  "createdAt": "2007-12-03T10:15:30Z",
  "id": 4,
  "updatedAt": "2007-12-03T10:15:30Z"
}

CommentSearchResultConnection

Description

The connection type for Comment.

Fields
Field Name Description
edges - [CommentSearchResultEdge] A list of edges.
nodes - [Comment] A list of nodes.
pageInfo - PageInfo! Information to aid in pagination.
timeTaken - Int! Time taken to complete the search in milliseconds.
totalCount - Int! Total number of results.
Example
{
  "edges": [CommentSearchResultEdge],
  "nodes": [Comment],
  "pageInfo": PageInfo,
  "timeTaken": 987,
  "totalCount": 987
}

CommentSearchResultEdge

Description

A comment search result edge.

Fields
Field Name Description
cursor - String! A cursor for use in pagination.
node - Comment The item at the end of the edge.
relevance - Float! The relevancy score of the result. Higher scores mean more relevance.
Example
{
  "cursor": "xyz789",
  "node": Comment,
  "relevance": 987.65
}

CommentThread

Description

A comment thread.

Fields
Field Name Description
comments - CommentConnection! Look up comments.
Arguments
sortBy - String

Sort results by

sortDirection - String

Sort direction

after - String

Returns the elements in the list that come after the specified cursor.

before - String

Returns the elements in the list that come before the specified cursor.

first - Int

Returns the first n elements from the list.

last - Int

Returns the last n elements from the list.

id - ID! The database ID for this comment thread.
lockedAt - DateTime Time of when this comment thread was locked.
lockedBy - User The user that locked this comment thread.
moderatedByAdmin - Boolean! Returns a boolean indicating whether this comment thread was moderated by an admin.
moderationStatus - CommentThreadModerationStatus! The moderation status of this comment thread.
owner - User! The thread owner
Example
{
  "comments": CommentConnection,
  "id": "4",
  "lockedAt": "2007-12-03T10:15:30Z",
  "lockedBy": User,
  "moderatedByAdmin": false,
  "moderationStatus": "none",
  "owner": User
}

CommentThreadModerationStatus

Description

Enum for available thread moderation states: "none", "locked"

Values
Enum Value Description

none

The comment thread is not under moderation.

locked

The comment thread cannot be interacted with.
Example
"none"

CommentsSearchFilter

Description

Filter fields specific to the comments search query.

Fields
Input Field Description
filter - [CommentsSearchFilter!] Nested filters.
op - FilterLogicalOperator Logical operator for clauses.
query - [BaseFilterValue!] Full text search query.
threadId - [BaseFilterValue!] The ID of the comment thread to search within.
Example
{
  "filter": [CommentsSearchFilter],
  "op": "AND",
  "query": [BaseFilterValue],
  "threadId": [BaseFilterValue]
}

CommentsSearchSort

Description

Sort fields specific to the comments search query.

Fields
Input Field Description
relevance - BaseSortValue Sort by most relevant first.
Example
{"relevance": BaseSortValue}

CompositeDomainWithIdInput

Description

Defines a Mod request using Game Domain and Mod ID

Fields
Input Field Description
gameDomain - String! Game domain
modId - Int! Mod ID
Example
{"gameDomain": "xyz789", "modId": 987}

CompositeIdInput

Description

Defines a Mod request using Game ID and Mod ID

Fields
Input Field Description
gameId - Int! Game ID
modId - Int! Mod ID
Example
{"gameId": 123, "modId": 123}

CreateChangelogMutationPayload

Description

Autogenerated return type of CreateChangelogMutation.

Fields
Field Name Description
changelogId - Int! Updated changelog ID
success - Boolean! Success Boolean
Example
{"changelogId": 123, "success": true}

CreateCollectionBugReportMutationPayload

Description

Autogenerated return type of CreateCollectionBugReportMutation.

Fields
Field Name Description
collectionBugReport - CollectionBugReport! Collection bug report that was created
Example
{"collectionBugReport": CollectionBugReport}

CreateCollectionMutationPayload

Description

Autogenerated return type of CreateCollectionMutation.

Fields
Field Name Description
collection - Collection! Returns created collection
collectionId - Int! The database ID for this collection.
revision - CollectionRevision! Returns the collection revision which is created alongside the collection
revisionId - Int! The database ID for this collection revision.
success - Boolean! Returns true when collection is successfully created.
Example
{
  "collection": Collection,
  "collectionId": 987,
  "revision": CollectionRevision,
  "revisionId": 987,
  "success": false
}

CreateCommentMutationPayload

Description

Autogenerated return type of CreateCommentMutation.

Fields
Field Name Description
comment - Comment! The comment that was created.
Example
{"comment": Comment}

CreateEndorsementMutationPayload

Description

Autogenerated return type of CreateEndorsementMutation.

Fields
Field Name Description
endorsement - Endorsement! Endorsement entry.
success - Boolean! Returns true when endorsement is created successfully.
Example
{"endorsement": Endorsement, "success": true}

CreateMessagePayload

Description

Autogenerated return type of CreateMessage.

Fields
Field Name Description
success - Boolean! Returns true when message was sent.
Example
{"success": true}

CreateModEndorsementMutationPayload

Description

Autogenerated return type of CreateModEndorsementMutation.

Fields
Field Name Description
endorsement - ModEndorsement! Endorsement entry.
success - Boolean! Returns true when endorsement is created successfully.
Example
{"endorsement": ModEndorsement, "success": true}

CreateNoteAboutUserMutationPayload

Description

Autogenerated return type of CreateNoteAboutUserMutation.

Fields
Field Name Description
success - Boolean Moderation note created successfully
Example
{"success": false}

CreateOrUpdateRevisionMutationPayload

Description

Autogenerated return type of CreateOrUpdateRevisionMutation.

Fields
Field Name Description
collection - Collection! Return the collection that was updated
collectionId - Int! The database ID for this collection.
revision - CollectionRevision! Return the revision that was updated
revisionId - Int! The database ID for this revision.
revisionNumber - Int! The revision number
success - Boolean! Return true if the revision was updated
Example
{
  "collection": Collection,
  "collectionId": 123,
  "revision": CollectionRevision,
  "revisionId": 987,
  "revisionNumber": 987,
  "success": false
}

CreateRatingMutationPayload

Description

Autogenerated return type of CreateRatingMutation.

Fields
Field Name Description
averageRating - AverageRating! Average rating value of the entity the rating was created for.
rating - Rating! Rating entry.
success - Boolean! Returns true when rating is created successfully.
Example
{
  "averageRating": AverageRating,
  "rating": Rating,
  "success": false
}

CreateTagMutationPayload

Description

Autogenerated return type of CreateTagMutation.

Fields
Field Name Description
success - Boolean! Success Boolean
tag - Tag Created Tag
Example
{"success": false, "tag": Tag}

DateTime

Description

Scalar Type to parse and handle DateTimes in iso8601 format

Example
"2007-12-03T10:15:30Z"

DiscardCollectionMutationPayload

Description

Autogenerated return type of DiscardCollectionMutation.

Fields
Field Name Description
success - Boolean! Success Boolean
Example
{"success": false}

DiscardCommentMutationPayload

Description

Autogenerated return type of DiscardCommentMutation.

Fields
Field Name Description
comment - Comment! The comment that was discarded.
Example
{"comment": Comment}

DiscardRevisionMutationPayload

Description

Autogenerated return type of DiscardRevisionMutation.

Fields
Field Name Description
success - Boolean! Success Boolean
Example
{"success": false}

DiscardTagMutationPayload

Description

Autogenerated return type of DiscardTagMutation.

Fields
Field Name Description
success - Boolean! Returns true if tag was discarded
Example
{"success": true}

DonationReport

Description

Report Type defined by the Wallet app.

Values
Enum Value Description

UNIQUE_DOWNLOADS

Unique Download report

I20_GAME_ADJUSTED

Interaction-based, game-adjusted report

I20_GAME_POOLS

Interaction-based report with DP bucketed by game
Example
"UNIQUE_DOWNLOADS"

EditCollectionMutationPayload

Description

Autogenerated return type of EditCollectionMutation.

Fields
Field Name Description
collection - Collection! Return collection object
success - Boolean! Returns true if collection was updated
Example
{"collection": Collection, "success": true}

Endorsement

Description

An Endorsement

Fields
Field Name Description
modelId - BigInt! Id of endorsed entity
modelType - String! Type of endorsed entity
status - String! Endorsement status: abstained/endorsed
userId - Int! The database ID for this endorsement.
Example
{
  "modelId": {},
  "modelType": "abc123",
  "status": "xyz789",
  "userId": 987
}

ExternalResource

Description

A mod file that is not hosted on Nexus Mods

Fields
Field Name Description
author - String Similar to the author field in the mod details. So this is not the uploader and may not be an actual user account on the page. Will often be unassigned for external resources
collectionRevisionId - Int! The database ID for this revision.
fileExpression - String! Glob pattern that must then match the archive file name. In cases where the collection asks for a non-exact version (e.g.: 1.2.4 or newer) where we can't look at the hash of the expected file, this can be used to determine if the mod is already installed/downloaded locally.
id - Int! The database ID for this external resource.
instructions - String Deprecated This field is no longer being used
name - String! Name of this resource
optional - Boolean! If true, this is an optional resource
resourceType - String! Resource type. This can be one of "direct" (A url to download directly from), "browse" (A website url for the user to browse and manually select the right file on), "manual" (Vortex will just show instructions for the user to create/acquire the mod manually).
resourceUrl - String Only set in the "browse"/"direct" types, contains the url to browse to/download from
version - String The version of the mod that the curator had installed at the time of uploading the collection.
Example
{
  "author": "abc123",
  "collectionRevisionId": 123,
  "fileExpression": "xyz789",
  "id": 987,
  "instructions": "abc123",
  "name": "abc123",
  "optional": false,
  "resourceType": "xyz789",
  "resourceUrl": "abc123",
  "version": "abc123"
}

ExternalVideo

Description

An external video.

Fields
Field Name Description
embedUrl - String! The embed URL for the video.
id - ID! The external video ID.
platform - ExternalVideoPlatform! The platform where the video is hosted.
thumbnailUrl - String! The thumbnail URL for the video.
title - String! The title of the video.
Example
{
  "embedUrl": "xyz789",
  "id": "4",
  "platform": "youtube",
  "thumbnailUrl": "abc123",
  "title": "xyz789"
}

ExternalVideoPlatform

Description

Supported external video platforms.

Values
Enum Value Description

youtube

https://www.youtube.com
Example
"youtube"

FileHash

Description

A Mod File Hash

Fields
Field Name Description
createdAt - DateTime! Time of when this file was first created.
fileName - String! Name of the file
fileSize - BigInt! Filesize in bytes
fileType - String! Type of file
gameId - Int! The database ID for this game.
md5 - String! MD5 Checksum of the file
modFile - ModFile Mod file object
modFileId - Int! The database ID for this file.
Example
{
  "createdAt": "2007-12-03T10:15:30Z",
  "fileName": "abc123",
  "fileSize": {},
  "fileType": "xyz789",
  "gameId": 123,
  "md5": "abc123",
  "modFile": ModFile,
  "modFileId": 987
}

FilterComparisonOperator

Description

Filter comparison operators for elastic search queries.

Values
Enum Value Description

EQUALS

NOT_EQUALS

MATCHES

Matches if all terms in the value are present (in any order). No wildcarding, though stems may match.

WILDCARD

Matches if all terms in the value are present (in any order), with leading/trailing wildcards applied.

GT

Greater than

GTE

Greater than or equal to

LT

Less than

LTE

Less than or equal to
Example
"EQUALS"

FilterComparisonOperatorEqualsMatches

Description

Filter comparison equals and matches operators for elastic search queries.

Values
Enum Value Description

EQUALS

NOT_EQUALS

MATCHES

Matches if all terms in the value are present (in any order). No wildcarding, though stems may match.
Example
"EQUALS"

FilterComparisonOperatorEqualsWildcard

Description

Filter comparison equals and matches operators for elastic search queries.

Values
Enum Value Description

EQUALS

NOT_EQUALS

WILDCARD

Matches if all terms in the value are present (in any order), with leading/trailing wildcards applied.
Example
"EQUALS"

FilterLogicalOperator

Description

Filter logical operators for elastic search queries.

Values
Enum Value Description

AND

Logical AND

OR

Logical OR
Example
"AND"

Float

Description

Represents signed double-precision fractional values as specified by IEEE 754.

Example
987.65

FloatFilterValue

Description

A float value

Fields
Input Field Description
value - Float! Float Value
op - FilterComparisonOperator Comparison operator for value.
Example
{"value": 123.45, "op": "EQUALS"}

FormalOrInformalWarning

Description

Formal or informal moderation warning

Values
Enum Value Description

INFORMAL_WARNING

FORMAL_WARNING

Example
"INFORMAL_WARNING"

ForumPost

Description

A forum post

Fields
Field Name Description
authorId - Int! Author ID of the forum post
authorName - String! Author name of the forum post
id - Int! The database ID for this forum post.
post - String! Post contents
postDate - Int! Post date and time
user - User! Post author details
Example
{
  "authorId": 123,
  "authorName": "xyz789",
  "id": 987,
  "post": "xyz789",
  "postDate": 987,
  "user": User
}

ForumTopic

Description

A forum topic

Fields
Field Name Description
approved - Boolean! If true, this topic has been approved
description - String! Description
forumId - Int! The database ID for this forum.
id - Int! The database ID for this forum topic.
pinned - Boolean! If true, this topic is pinned and should appear above all non-pinned topics
posts - [ForumPost!] List of all posts within this topic
postsCount - Int! Number of posts in the topic
state - String! State of this topic, can be open or closed
title - String! Title for this topic
titleSeo - String! SEO-specific title for this topic
topicUrl - String URL for this topic
views - Int! Number of views this topic has received
visible - String! TODO
Example
{
  "approved": false,
  "description": "xyz789",
  "forumId": 987,
  "id": 987,
  "pinned": true,
  "posts": [ForumPost],
  "postsCount": 987,
  "state": "abc123",
  "title": "abc123",
  "titleSeo": "abc123",
  "topicUrl": "abc123",
  "views": 987,
  "visible": "xyz789"
}

Game

Description

A Game

Fields
Field Name Description
approvedAt - DateTime Time that this game was approved, after being submitted by a community member
availableTags - [Tag!] Tags available for collections under this specific game, including global tags.
collectionCount - Int Number of collections within this game
domainName - String! Nexus-specific domain name, used to separate games on the Nexus Mods website.
downloadCount - BigInt Number of total downloads for mods in this game
forumUrl - String URL to the game's forum
genre - String Genre of this game
id - Int! The database ID for this game.
imageCount - Int Number of uploaded images within this game
mediaCount - Int Number of uploaded images, supporter images, and videos within this game
modCount - Int Number of mods within this game
name - String! Name of this game
specificTags - [Tag!] Tags only available for collections under this specific game.
supporterImageCount - Int Number of uploaded supporter images within this game
tileImageBlurredUrl - String The game image URL with a blur effect
tileImageUrl - String The game image URL
trendingPeriodDays - Int! Number of days to consider for trending mods
uniqueDownloadCount - BigInt Number of total unique downloads for mods in this game
videoCount - Int Number of uploaded videos within this game
Example
{
  "approvedAt": "2007-12-03T10:15:30Z",
  "availableTags": [Tag],
  "collectionCount": 123,
  "domainName": "abc123",
  "downloadCount": {},
  "forumUrl": "abc123",
  "genre": "abc123",
  "id": 123,
  "imageCount": 123,
  "mediaCount": 123,
  "modCount": 987,
  "name": "abc123",
  "specificTags": [Tag],
  "supporterImageCount": 987,
  "tileImageBlurredUrl": "xyz789",
  "tileImageUrl": "abc123",
  "trendingPeriodDays": 987,
  "uniqueDownloadCount": {},
  "videoCount": 123
}

GameExpansion

Description

Represents a game expansion (DLC)

Fields
Field Name Description
gameId - ID! The ID of the game that the expansion belongs to
id - ID! The ID of the game expansion
name - String! The name of the game expansion
Example
{
  "gameId": 4,
  "id": "4",
  "name": "abc123"
}

GameNameFieldFilterValue

Fields
Input Field Description
value - String! Value
op - FilterComparisonOperator Comparison operator for value.
Example
{"value": "xyz789", "op": "EQUALS"}

GamePage

Fields
Field Name Description
facets - [NodesFacet!] Facets available, if supported for this query and requested.
facetsData - JSON Facets available, if supported for this query and requested. Schema is {"facetName":{"facetValue":count}}
nodes - [Game!]! Nodes for pagination
nodesCount - Int! Number of nodes returned by this query
nodesFacets - [NodesFacet!] Facets available, if supported for this query and requested.
nodesFilter - String String representation of the filter query used to locate the nodes.
totalCount - Int! Total number of collections found.
Example
{
  "facets": [NodesFacet],
  "facetsData": {},
  "nodes": [Game],
  "nodesCount": 987,
  "nodesFacets": [NodesFacet],
  "nodesFilter": "abc123",
  "totalCount": 987
}

GameVersion

Description

A version of a specific game.

Fields
Field Name Description
id - ID! Unique ID for referring to this version in future queries
reference - String! Game version reference
Example
{"id": 4, "reference": "abc123"}

GamesFacet

Description

Facet fields specific to the games query.

Fields
Input Field Description
genre - [String!] Facet on game genre.
hasCollections - [String!] Facet on collections.
supportsVortex - [String!] Facet on Vortex support.
Example
{
  "genre": ["xyz789"],
  "hasCollections": ["xyz789"],
  "supportsVortex": ["abc123"]
}

GamesSearchFilter

Description

Filter for a list of Games

Fields
Input Field Description
filter - [GamesSearchFilter!] Nested filters.
op - FilterLogicalOperator Logical operator for clauses.
name - [GameNameFieldFilterValue!] Game name suitable for use with op:wildcard, but not op:matches. Punctuation matched.
Example
{
  "filter": [GamesSearchFilter],
  "op": "AND",
  "name": [GameNameFieldFilterValue]
}

GamesSearchSort

Description

Sort for a list of Games

Fields
Input Field Description
downloads - BaseSortValue Number of downloads.
mods - BaseSortValue Number of mods.
collections - BaseSortValue Number of collections.
name - BaseSortValue Game name.
approved - BaseSortValue Date approved.
relevance - BaseSortValue Filter query relevance.
Example
{
  "downloads": BaseSortValue,
  "mods": BaseSortValue,
  "collections": BaseSortValue,
  "name": BaseSortValue,
  "approved": BaseSortValue,
  "relevance": BaseSortValue
}

GiveKudosMutationPayload

Description

Autogenerated return type of GiveKudosMutation.

Fields
Field Name Description
success - Boolean! True if the user was successfully given kudos
Example
{"success": false}

GloballyIdentifiable

Description

A globally identifiable entity.

Fields
Field Name Description
globalId - ID The global ID for this entity.
id - ID! ID of the object.
Possible Types
GloballyIdentifiable Types

CollectionImage

CollectionVideo

Example
{"globalId": 4, "id": "4"}

HideCollectionBugReportMutationPayload

Description

Autogenerated return type of HideCollectionBugReportMutation.

Fields
Field Name Description
collectionBugReport - CollectionBugReport! Collection bug report which was hidden
Example
{"collectionBugReport": CollectionBugReport}

HideCommentMutationPayload

Description

Autogenerated return type of HideCommentMutation.

Fields
Field Name Description
comment - Comment! The comment that was hidden.
Example
{"comment": Comment}

ID

Description

Represents a unique identifier that is Base64 obfuscated. It is often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "VXNlci0xMA==") or integer (such as 4) input value will be accepted as an ID.

Example
"4"

ISO8601DateTime

Description

An ISO 8601-encoded datetime

Example
ISO8601DateTime

Image

Description

An image

Fields
Field Name Description
adult - Boolean If true, this image contains adult content
allowComments - Boolean Whether comments are allowed on the image.
allowRating - Boolean Whether ratings are allowed on the image.
caption - String! A caption for this image
category - ImageCategory! An image category
createdAt - DateTime! Time of when this image was first created.
description - String! A detailed description of this image
game - Game! Game this image belongs to
id - ID! ID of the object.
mediaStatus - MediaStatus! Status of this image
name - String! Name of the image file
owner - User! Uploader of this image
rating - Int! Rating of this image
siteUrl - String! URL of the site this image is hosted on
thumbnailUrl - String! URL of the thumbnail of this image
title - String A title for this image
url - String! URL of this image
viewerBlocked - Boolean! True if the viewer (current user) has blocked this image's author
views - Int! View count of this image
Example
{
  "adult": true,
  "allowComments": false,
  "allowRating": false,
  "caption": "xyz789",
  "category": ImageCategory,
  "createdAt": "2007-12-03T10:15:30Z",
  "description": "abc123",
  "game": Game,
  "id": 4,
  "mediaStatus": "published",
  "name": "abc123",
  "owner": User,
  "rating": 123,
  "siteUrl": "xyz789",
  "thumbnailUrl": "abc123",
  "title": "xyz789",
  "url": "abc123",
  "viewerBlocked": true,
  "views": 987
}

ImageCategory

Description

An image category

Fields
Field Name Description
date - Int Unix timestamp of category creation
gameId - Int! The database ID for this game.
id - ID! The database ID for this image category.
name - String! Name of this category
Example
{
  "date": 123,
  "gameId": 123,
  "id": 4,
  "name": "xyz789"
}

ImageTypes

Description

Available image types

Values
Enum Value Description

gallery

tile

header

Example
"gallery"

Int

Description

Represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.

Example
123

IntFilterValue

Description

An integer value

Fields
Input Field Description
value - Int! Integer Value
op - FilterComparisonOperator Comparison operator for value.
Example
{"value": 123, "op": "EQUALS"}

IssueWarningToUserMutationPayload

Description

Autogenerated return type of IssueWarningToUserMutation.

Fields
Field Name Description
success - Boolean Warning issued successfully
Example
{"success": true}

JSON

Description

Represents untyped JSON

Example
{}

LegacyUpdatePreferencesMutationPayload

Description

Autogenerated return type of LegacyUpdatePreferencesMutation.

Fields
Field Name Description
success - Boolean User preferences updated successfully
Example
{"success": true}

LikeCommentMutationPayload

Description

Autogenerated return type of LikeCommentMutation.

Fields
Field Name Description
comment - Comment! The comment that was liked.
Example
{"comment": Comment}

ListCollectionMutationPayload

Description

Autogenerated return type of ListCollectionMutation.

Fields
Field Name Description
success - Boolean! Returns true if collection was listed
Example
{"success": true}

LockCommentMutationPayload

Description

Autogenerated return type of LockCommentMutation.

Fields
Field Name Description
comment - Comment! The comment that was locked.
Example
{"comment": Comment}

LockThreadMutationPayload

Description

Autogenerated return type of LockThreadMutation.

Fields
Field Name Description
commentThread - CommentThread! The comment thread that was locked.
Example
{"commentThread": CommentThread}

MediaFacet

Description

Facet fields specific to the media query.

Fields
Input Field Description
category - [String!] Facet on category.
type - [String!] Facet on media type.
gameId - [String!] Facet on game ID.
Example
{
  "category": ["abc123"],
  "type": ["xyz789"],
  "gameId": ["xyz789"]
}

MediaGeneralSearchFilterValue

Fields
Input Field Description
value - String! Value
op - FilterComparisonOperator Comparison operator for value.
Example
{"value": "xyz789", "op": "EQUALS"}

MediaSearchFilter

Description

Filter fields specific to the legacy media search query.

Fields
Input Field Description
filter - [MediaSearchFilter!] Nested filters.
op - FilterLogicalOperator Logical operator for clauses.
gameId - [BaseFilterValue!] Filter media by Game ID
gameName - [BaseFilterValue!] Filter media by Game name
createdAt - [BaseFilterValue!] Date created, in unix timestamp
adultContent - [BooleanFilterValue!] Filter media by adult content
type - [BaseFilterValue!] Type of media item ("image", "supporter_image" or "video")
owner - [BaseFilterValue!] Filter media by ID of the uploader
mediaStatus - [BaseFilterValue!] Media status. Valid values are "published", "under_moderation" (moderators/admins only), "hidden" (for images moderator/admin only)
generalSearch - [MediaGeneralSearchFilterValue!] Text search on title and description, partial match.
Example
{
  "filter": [MediaSearchFilter],
  "op": "AND",
  "gameId": [BaseFilterValue],
  "gameName": [BaseFilterValue],
  "createdAt": [BaseFilterValue],
  "adultContent": [BooleanFilterValue],
  "type": [BaseFilterValue],
  "owner": [BaseFilterValue],
  "mediaStatus": [BaseFilterValue],
  "generalSearch": [MediaGeneralSearchFilterValue]
}

MediaSearchSort

Description

Sort fields specific to the media query.

Fields
Input Field Description
createdAt - BaseSortValue Sort for 'new'.
rating - BaseSortValue Sort for 'trending'.
views - BaseSortValue Sort for 'popular'.
random - RandomSortValue Sort for 'surprise'.
Example
{
  "createdAt": BaseSortValue,
  "rating": BaseSortValue,
  "views": BaseSortValue,
  "random": RandomSortValue
}

MediaStatus

Description

Available media statuses

Values
Enum Value Description

published

Publicly visible

under_moderation

Under moderation

hidden

Hidden
Example
"published"

MediaUnion

Description

Legacy Media Union

Types
Union Types

Image

SupporterImage

Video

Example
Image

MediaUnionPage

Fields
Field Name Description
facets - [NodesFacet!] Facets available, if supported for this query and requested.
facetsData - JSON Facets available, if supported for this query and requested. Schema is {"facetName":{"facetValue":count}}
nodes - [MediaUnion!]! Nodes for pagination
nodesCount - Int! Number of nodes returned by this query
nodesFacets - [NodesFacet!] Facets available, if supported for this query and requested.
nodesFilter - String String representation of the filter query used to locate the nodes.
totalCount - Int! Total number of collections found.
Example
{
  "facets": [NodesFacet],
  "facetsData": {},
  "nodes": [Image],
  "nodesCount": 987,
  "nodesFacets": [NodesFacet],
  "nodesFilter": "xyz789",
  "totalCount": 987
}

Mod

Description

A mod

Fields
Field Name Description
adult - Boolean If true, this mod contains adult content Deprecated in favour of adult_content.
adultContent - Boolean If true, this mod contains adult content
author - String Author of this mod
category - String! Category of this mod
createdAt - DateTime! Time of when this mod was first created.
description - String! A detailed description of this mod
downloads - Int! Download count of this mod
endorsements - Int! Endorsement count of this mod
fileSize - Int Size of the primary mod file in kilobytes
game - Game! Game changed by this mod
gameId - Int! The database ID for this game.
id - ID! The database ID for this mod.
isBlockedFromEarningDp - Boolean If true, this mod is blocked from earning DP
mirrors - [ModMirror!] Mirrors for this mod
modCategory - ModCategory A mod category
modId - Int! The database ID for this mod.
modRequirements - ModRequirements! Requirements of this mod
name - String! Name of this mod
pictureUrl - String URL for the main mod image
status - String! Status of this mod
summary - String! A brief summary of this mod
thumbnailBlurredUrl - String URL for the blurred thumbnail mod image
thumbnailLargeBlurredUrl - String URL for the large blurred thumbnail mod image
thumbnailLargeUrl - String URL for the large thumbnail mod image
thumbnailUrl - String URL for the thumbnail mod image
uid - ID! The database ID for this mod.
updatedAt - DateTime! Time of when this mod was last updated.
uploader - User! Uploader of this mod
version - String! Version of this mod
viewerBlocked - Boolean! True if the viewer (current user) has blocked this mod
viewerDownloaded - DateTime A timestamp indicating the last time the user downloaded this mod
viewerEndorsed - Boolean True indicates endorsement, false for abstention. Will be null if the user has not endorsed the mod
viewerTracked - Boolean! If true, the viewer (current user) is tracking this mod.
viewerUpdateAvailable - Boolean True if the mod has been updated since the viewer (current user) downloaded it
Example
{
  "adult": true,
  "adultContent": false,
  "author": "abc123",
  "category": "abc123",
  "createdAt": "2007-12-03T10:15:30Z",
  "description": "xyz789",
  "downloads": 123,
  "endorsements": 123,
  "fileSize": 987,
  "game": Game,
  "gameId": 123,
  "id": 4,
  "isBlockedFromEarningDp": false,
  "mirrors": [ModMirror],
  "modCategory": ModCategory,
  "modId": 987,
  "modRequirements": ModRequirements,
  "name": "abc123",
  "pictureUrl": "abc123",
  "status": "abc123",
  "summary": "xyz789",
  "thumbnailBlurredUrl": "abc123",
  "thumbnailLargeBlurredUrl": "abc123",
  "thumbnailLargeUrl": "xyz789",
  "thumbnailUrl": "abc123",
  "uid": "4",
  "updatedAt": "2007-12-03T10:15:30Z",
  "uploader": User,
  "version": "abc123",
  "viewerBlocked": false,
  "viewerDownloaded": "2007-12-03T10:15:30Z",
  "viewerEndorsed": false,
  "viewerTracked": true,
  "viewerUpdateAvailable": false
}

ModAffiliation

Description

The affiliation of user to a mod

Values
Enum Value Description

OWNER

The owner of the mod

CONTRIBUTOR

A contributor to the mod
Example
"OWNER"

ModAnalyticsByMonthNode

Description

The mod analytics for a specific month

Fields
Field Name Description
month - Int! Month
totalDownloads - BigInt! Total downloads
uniqueDownloads - BigInt! Unique downloads
year - Int! Year
Example
{"month": 987, "totalDownloads": {}, "uniqueDownloads": {}, "year": 987}

ModAnalyticsByMonthPage

Description

A page of mod analytics grouped by month

Fields
Field Name Description
nodes - [ModAnalyticsByMonthNode!]! A list of mod analytics by month nodes
pageInfo - OffsetBasedPageInfo! Information about the page
totalDownloads - BigInt! The total number of downloads for mods with which this user is affiliated
totalUniqueDownloads - BigInt! The total number of unique downloads for mods with which this user is affiliated
Example
{
  "nodes": [ModAnalyticsByMonthNode],
  "pageInfo": OffsetBasedPageInfo,
  "totalDownloads": {},
  "totalUniqueDownloads": {}
}

ModAnalyticsByMonthSortBy

Description

Attributes to sort by for mod analytics by month

Values
Enum Value Description

DATE

Sort by date

TOTAL_DOWNLOADS

Sort by total downloads

UNIQUE_DOWNLOADS

Sort by total unique downloads
Example
"DATE"

ModAnalyticsForMonthNode

Description

The analytics for a mod within a month

Fields
Field Name Description
mod - Mod! Mod
totalDownloads - BigInt! Total downloads
uniqueDownloads - BigInt! Unique downloads
Example
{"mod": Mod, "totalDownloads": {}, "uniqueDownloads": {}}

ModAnalyticsForMonthPage

Description

A page of mod analytics grouped by month

Fields
Field Name Description
nodes - [ModAnalyticsForMonthNode!]! A list of mod analytics for month nodes
pageInfo - OffsetBasedPageInfo! Information about the current page
totalDownloads - BigInt! The total number of downloads for the month
totalUniqueDownloads - BigInt! The total number of unique downloads for the month
Example
{
  "nodes": [ModAnalyticsForMonthNode],
  "pageInfo": OffsetBasedPageInfo,
  "totalDownloads": {},
  "totalUniqueDownloads": {}
}

ModAnalyticsForMonthSortBy

Description

Attributes to sort by for mod analytics for month

Values
Enum Value Description

TOTAL_DOWNLOADS

Sort by total downloads

UNIQUE_DOWNLOADS

Sort by total unique downloads
Example
"TOTAL_DOWNLOADS"

ModCategory

Description

A mod category

Fields
Field Name Description
categoryId - Int! The database ID for this mod category.
date - Int Unix timestamp of category creation
gameId - Int! The database ID for this game.
id - ID! Comma separated mod category id and game id
name - String! Name of this category
tags - String Comma separated list of legacy tag IDs These tag identifiers are no longer used
Example
{
  "categoryId": 987,
  "date": 123,
  "gameId": 123,
  "id": "4",
  "name": "xyz789",
  "tags": "abc123"
}

ModEndorsement

Description

A Mod Endorsement

Fields
Field Name Description
modUid - BigInt! Id of endorsed entity
status - String! Endorsement status: abstained/endorsed
userId - Int! The database ID for this endorsement.
Example
{
  "modUid": {},
  "status": "xyz789",
  "userId": 987
}

ModEndorserConnection

Description

The connection type for User.

Fields
Field Name Description
edges - [ModEndorserEdge] A list of edges.
nodes - [User] A list of nodes.
pageInfo - PageInfo! Information to aid in pagination.
Example
{
  "edges": [ModEndorserEdge],
  "nodes": [User],
  "pageInfo": PageInfo
}

ModEndorserEdge

Description

Mod endorser edge

Fields
Field Name Description
cursor - String! A cursor for use in pagination.
endorsedAt - DateTime! Time of endorsement
node - User The item at the end of the edge.
Example
{
  "cursor": "xyz789",
  "endorsedAt": "2007-12-03T10:15:30Z",
  "node": User
}

ModFile

Description

Files belonging to a mod

Fields
Field Name Description
category - ModFileCategory! Human-readable mod category
categoryId - ModFileCategory! The database ID for this Mod category.
changelogText - [String!]! Patch notes for this mod file version
count - Int! Number of downloads for this file
date - Int! Unix Timestamp for when this file was uploaded
description - String Description for this file
fileId - Int! Forms a composite key with the game_id
game - Game! Game that this file relates to
id - ID! ID of the object.
manager - Int! If true, this file can be downloaded by a mod manager
mod - Mod! Mod that this file belongs to
modId - Int! The database ID for this mod.
name - String! File name
owner - User! User that uploaded this file
primary - Int! If true, this file is the primary file for the mod
reportLink - String! URL for reporting this file
requirementsAlert - Int! If true, popup will be displayed for showing the requirements
scanned - VirusScanStatus! Status of virus scanning on this file
scannedV2 - VirusScanStatus! Status of virus scanning on this file
size - Int! Size of this file, in kilobytes
sizeInBytes - BigInt Size of this file, in bytes
totalDownloads - Int! Number of downloads for this file
uCount - Int! Number of unique downloads for this file
uid - ID! Unique ID for this file
uniqueDownloads - Int! Number of unique downloads for this file
uri - String! URL to download this file
version - String! Version this file relates to
Example
{
  "category": "MAIN",
  "categoryId": "MAIN",
  "changelogText": ["xyz789"],
  "count": 123,
  "date": 987,
  "description": "xyz789",
  "fileId": 987,
  "game": Game,
  "id": 4,
  "manager": 123,
  "mod": Mod,
  "modId": 123,
  "name": "abc123",
  "owner": User,
  "primary": 123,
  "reportLink": "xyz789",
  "requirementsAlert": 123,
  "scanned": "NOT_SCANNED",
  "scannedV2": "NOT_SCANNED",
  "size": 123,
  "sizeInBytes": {},
  "totalDownloads": 987,
  "uCount": 987,
  "uid": "4",
  "uniqueDownloads": 987,
  "uri": "xyz789",
  "version": "xyz789"
}

ModFileCategory

Description

Used to flag a mod file as a main, old or archived file.

Values
Enum Value Description

MAIN

UPDATE

OPTIONAL

OLD_VERSION

MISCELLANEOUS

REMOVED

ARCHIVED

Example
"MAIN"

ModFilePage

Fields
Field Name Description
facets - [NodesFacet!] Facets available, if supported for this query and requested.
facetsData - JSON Facets available, if supported for this query and requested. Schema is {"facetName":{"facetValue":count}}
nodes - [ModFile!]! Nodes for pagination
nodesCount - Int! Number of nodes returned by this query
nodesFacets - [NodesFacet!] Facets available, if supported for this query and requested.
nodesFilter - String String representation of the filter query used to locate the nodes.
totalCount - Int! Total number of collections found.
Example
{
  "facets": [NodesFacet],
  "facetsData": {},
  "nodes": [ModFile],
  "nodesCount": 123,
  "nodesFacets": [NodesFacet],
  "nodesFilter": "abc123",
  "totalCount": 987
}

ModMirror

Description

A download mirror for a mod

Fields
Field Name Description
count - Int Download count for this mirror
gameId - Int! The database ID for this game.
id - ID! The database ID for this mod mirror.
modId - Int! The database ID for this mod.
name - String! Name of this mirror
totalDownloads - Int Download count for this mirror
uri - String URI for this mirror
Example
{
  "count": 123,
  "gameId": 123,
  "id": "4",
  "modId": 123,
  "name": "abc123",
  "totalDownloads": 987,
  "uri": "abc123"
}

ModPage

Fields
Field Name Description
facets - [NodesFacet!] Facets available, if supported for this query and requested.
facetsData - JSON Facets available, if supported for this query and requested. Schema is {"facetName":{"facetValue":count}}
nodes - [Mod!]! Nodes for pagination
nodesCount - Int! Number of nodes returned by this query
nodesFacets - [NodesFacet!] Facets available, if supported for this query and requested.
nodesFilter - String String representation of the filter query used to locate the nodes.
totalCount - Int! Total number of collections found.
Example
{
  "facets": [NodesFacet],
  "facetsData": {},
  "nodes": [Mod],
  "nodesCount": 123,
  "nodesFacets": [NodesFacet],
  "nodesFilter": "xyz789",
  "totalCount": 123
}

ModRequirement

Description

Represents a mod requirement

Fields
Field Name Description
externalRequirement - Boolean! If true, the requirement is external to the site. See the url field for the address.
gameId - ID! The ID of the game that the required mod belongs to
id - ID! The ID of the mod requirement
modId - ID! The ID of the mod that is required
modName - String! The name of the mod required
notes - String Notes about the mod requirement
url - String! The URL of the mod that is required by the mod
Example
{
  "externalRequirement": false,
  "gameId": "4",
  "id": "4",
  "modId": 4,
  "modName": "abc123",
  "notes": "xyz789",
  "url": "xyz789"
}

ModRequirementPage

Fields
Field Name Description
facets - [NodesFacet!] Facets available, if supported for this query and requested.
facetsData - JSON Facets available, if supported for this query and requested. Schema is {"facetName":{"facetValue":count}}
nodes - [ModRequirement!]! Nodes for pagination
nodesCount - Int! Number of nodes returned by this query
nodesFacets - [NodesFacet!] Facets available, if supported for this query and requested.
nodesFilter - String String representation of the filter query used to locate the nodes.
totalCount - Int! Total number of collections found.
Example
{
  "facets": [NodesFacet],
  "facetsData": {},
  "nodes": [ModRequirement],
  "nodesCount": 123,
  "nodesFacets": [NodesFacet],
  "nodesFilter": "abc123",
  "totalCount": 987
}

ModRequirements

Description

Represents the requirements of a mod

Fields
Field Name Description
dlcRequirements - [ModRequirementsDlc!]! The DLC (expansion) requirements of the mod
modsRequiringThisMod - ModRequiringPage! Other mods that require this mod
Arguments
offset - Int
count - Int
nexusRequirements - ModRequirementPage! Required mods for this mod
Arguments
offset - Int
count - Int
Example
{
  "dlcRequirements": [ModRequirementsDlc],
  "modsRequiringThisMod": ModRequiringPage,
  "nexusRequirements": ModRequirementPage
}

ModRequirementsDlc

Description

Represents the DLC (expansion) requirements of a mod

Fields
Field Name Description
gameExpansion - GameExpansion! The game expansion (DLC) required by the mod
notes - String Notes about the expansion (DLC) requirement
Example
{
  "gameExpansion": GameExpansion,
  "notes": "xyz789"
}

ModRequiring

Description

Represents a mod requirement

Fields
Field Name Description
externalRequirement - Boolean! If true, the requirement is external to the site. See the url field for the address.
gameId - ID! The ID of the game that the mod belongs to
id - ID! The ID of the mod requirement
modId - ID! The ID of the mod that is required
modName - String! The name of the mod that requires the mod
notes - String Notes about the mod requirement
url - String! The URL of the mod that is required by the mod
Example
{
  "externalRequirement": true,
  "gameId": "4",
  "id": "4",
  "modId": 4,
  "modName": "xyz789",
  "notes": "abc123",
  "url": "xyz789"
}

ModRequiringPage

Fields
Field Name Description
facets - [NodesFacet!] Facets available, if supported for this query and requested.
facetsData - JSON Facets available, if supported for this query and requested. Schema is {"facetName":{"facetValue":count}}
nodes - [ModRequiring!]! Nodes for pagination
nodesCount - Int! Number of nodes returned by this query
nodesFacets - [NodesFacet!] Facets available, if supported for this query and requested.
nodesFilter - String String representation of the filter query used to locate the nodes.
totalCount - Int! Total number of collections found.
Example
{
  "facets": [NodesFacet],
  "facetsData": {},
  "nodes": [ModRequiring],
  "nodesCount": 987,
  "nodesFacets": [NodesFacet],
  "nodesFilter": "xyz789",
  "totalCount": 987
}

ModSource

Description

Used to define the source of a mod. Useful for informing Collections how to retrieve mods.

Values
Enum Value Description

nexus

The Nexus website

direct

A direct url to download from

browse

A general url to find the mod (further instructions may be provided)

manual

Manual instructions for installing the mod

bundle

Mod files are included in the collection asset file, and do not need to be acquired separately
Example
"nexus"

ModUpload

Description

An upload

Fields
Field Name Description
claimed - Boolean If true, this file has been claimed by a user
contentPreviewGenerated - Boolean If true, the content preview has been generated for this upload
createdAt - String! Time of when this upload was first created.
discardedAt - String Time of when this upload was discarded.
fileChunksReassembled - Boolean If true, this file has been reassembled from the uploaded chunks
fileId - Int Can't get field description; multiple fields named 'file_id' detected on Types::ModFileType
game - Game A Game
id - String! The database ID for this upload.
internalVirusScanStatus - Int The virus scanning status of this upload, provided by our internal virus scanning tools
md5 - String The MD5 hash for this object in our object store
modFile - ModFile Files belonging to a mod
modId - Int The database ID for this mod.
s3UploadComplete - Boolean If true, this file has been uploaded to object store
s3Url - String The URL for this object in our object store
sha256 - String The HAS256 hash for this object in our object store
sizeBytes - String The size of this upload in bytes
systemFileName - String System filename for this upload
tempFileName - String! Temporary filename for this upload
updatedAt - String! Time of when this upload was last updated.
uploadType - String Type of upload
user - User A Nexus Mods user
virusTotalPositives - Int Number of positive reports from VirusTotal
virusTotalStatus - Int The virus scanning status of this upload, provided by VirusTotal
virusTotalUrl - String The URL of the VirusTotal report for this upload
Example
{
  "claimed": false,
  "contentPreviewGenerated": false,
  "createdAt": "xyz789",
  "discardedAt": "xyz789",
  "fileChunksReassembled": true,
  "fileId": 987,
  "game": Game,
  "id": "xyz789",
  "internalVirusScanStatus": 123,
  "md5": "abc123",
  "modFile": ModFile,
  "modId": 123,
  "s3UploadComplete": false,
  "s3Url": "abc123",
  "sha256": "xyz789",
  "sizeBytes": "abc123",
  "systemFileName": "abc123",
  "tempFileName": "xyz789",
  "updatedAt": "xyz789",
  "uploadType": "xyz789",
  "user": User,
  "virusTotalPositives": 123,
  "virusTotalStatus": 123,
  "virusTotalUrl": "abc123"
}

Moderatable

Description

Moderatable Model Types

Values
Enum Value Description

Collection

A nexusmods Collection of Mods
Example
"Collection"

ModerateMutationPayload

Description

Autogenerated return type of ModerateMutation.

Fields
Field Name Description
moderation - Moderation! Return the moderation type
success - Boolean! if true, this entity is put into moderation
Example
{"moderation": Moderation, "success": true}

Moderation

Description

A moderation entry

Fields
Field Name Description
createdAt - DateTime! Time of when this moderation was first created.
editable - Boolean! If true, this moderation entry can be edited
id - ID! The database ID for this moderation.
moderatableId - ID! Polymorphic ID of the entity that is being moderated
moderatableType - Moderatable! Polymorphic Type of the entity that is being moderated
moderationFixes - [ModerationFix!] Array of fixes applied for this moderation
moderationReason - ModerationReason! Reason for placing this entity into moderation
staffId - ID! The database ID for this staff member.
staffNote - String Content for the staff note
unlockedAt - DateTime Date this entity was unlocked
unlockedBy - ID User that unlocked this entity
unlockedNote - String Content for the message to show when unlocked
updatedAt - DateTime! Time of when this moderation was last updated.
user - User! Staff member that put this entity into moderation
userNote - String Content for the user note
Example
{
  "createdAt": "2007-12-03T10:15:30Z",
  "editable": true,
  "id": "4",
  "moderatableId": 4,
  "moderatableType": "Collection",
  "moderationFixes": [ModerationFix],
  "moderationReason": ModerationReason,
  "staffId": "4",
  "staffNote": "abc123",
  "unlockedAt": "2007-12-03T10:15:30Z",
  "unlockedBy": 4,
  "unlockedNote": "abc123",
  "updatedAt": "2007-12-03T10:15:30Z",
  "user": User,
  "userNote": "xyz789"
}

ModerationFix

Description

A moderation fix submission

Fields
Field Name Description
author - User! User who authored this moderation fix
authorId - ID! ID of the user who authored this moderation fix
createdAt - DateTime! Time of when this moderation fix was first created.
description - String Description of this moderation fix
id - ID! The database ID for this moderation fix.
moderation - Moderation! Type of moderation fix
status - ModerationFixStatus! Status of this moderation fix
updatedAt - DateTime! Time of when this moderation fix was last updated.
Example
{
  "author": User,
  "authorId": "4",
  "createdAt": "2007-12-03T10:15:30Z",
  "description": "xyz789",
  "id": "4",
  "moderation": Moderation,
  "status": "submitted",
  "updatedAt": "2007-12-03T10:15:30Z"
}

ModerationFixStatus

Description

Available moderation fix statuses

Values
Enum Value Description

submitted

Awaiting an Admin's approval

accepted

An Admin has accepted this fix

rejected

An Admin has rejected this fix
Example
"submitted"

ModerationReason

Description

A moderation reason

Fields
Field Name Description
createdAt - DateTime! Time of when this moderation reason was first created.
id - ID! The database ID for this moderation reason.
reason - String! Reason for moderation
resolution - String Resolution of the moderation
updatedAt - DateTime! Time of when this moderation reason was last updated.
Example
{
  "createdAt": "2007-12-03T10:15:30Z",
  "id": "4",
  "reason": "xyz789",
  "resolution": "xyz789",
  "updatedAt": "2007-12-03T10:15:30Z"
}

ModerationRestriction

Description

A moderation restriction

Fields
Input Field Description
restriction - ModerationRestrictions! Reason
timeframe - Int! Timeframe in days
modId - ID Mod ID
gameId - ID Game ID
Example
{
  "restriction": "FILE_UPLOAD",
  "timeframe": 123,
  "modId": "4",
  "gameId": "4"
}

ModerationRestrictions

Description

Moderation restriction types

Values
Enum Value Description

FILE_UPLOAD

MOD_TOOLS

FILE_DOWNLOAD

POST

COMMENT_FILE

IMAGE_UPLOAD

ENDORSE_MOD

ENDORSE_MEDIA

BLOCK_PM

ADD_VIDEOS

Example
"FILE_UPLOAD"

ModifyImageForCollectionMutationPayload

Description

Autogenerated return type of ModifyImageForCollectionMutation.

Fields
Field Name Description
image - CollectionImage! Image that was updated on the collection
updated - Boolean! True when image was updated
Example
{"image": CollectionImage, "updated": true}

ModsFacet

Description

Facet fields specific to the mods query.

Fields
Input Field Description
gameDomainName - [String!] Facet on game domain name.
gameName - [String!] Facet on game name.
gameId - [String!] Facet on game id.
adult - [String!] Facet on adult.
languageName - [String!] Facet on language.
status - [String!] Facet on status.
categoryName - [String!] Facet on category.
tag - [String!] Facet on tag.
Example
{
  "gameDomainName": ["abc123"],
  "gameName": ["xyz789"],
  "gameId": ["abc123"],
  "adult": ["abc123"],
  "languageName": ["xyz789"],
  "status": ["abc123"],
  "categoryName": ["xyz789"],
  "tag": ["abc123"]
}

ModsFilter

Description

Filter fields specific to a Mods query

Fields
Input Field Description
filter - [ModsFilter!] Nested filters.
op - FilterLogicalOperator Logical operator for clauses.
name - [BaseFilterValueEqualsWildcard!] Mod name suitable for use with op:wildcard, but not op:matches. Punctuation matched.
nameStemmed - [BaseFilterValue!] Stemmed name, suitable for token matching (op:wildcard and op:matches). Punctuation not matched.
gameId - [BaseFilterValue!] Filter mods by Game ID
gameDomainName - [BaseFilterValue!] Filter mods by Game domain name
createdAt - [BaseFilterValue!] Date created, in unix timestamp
updatedAt - [BaseFilterValue!] Date updated, in unix timestamp
hasUpdated - [BooleanFilterValue!] Filter mods by whether they have been updated since they were created
uploaderId - [BaseFilterValue!] Filter mods by uploader id
adultContent - [BooleanFilterValue!] Filter mods by adult content
fileSize - [IntFilterValue!] Filter mods by file size
downloads - [IntFilterValue!] Filter mods by download count
endorsements - [IntFilterValue!] Filter mods by endorsement count
tag - [BaseFilterValue!] The tag name, exact match.
description - [BaseFilterValueEqualsMatches!] The description of the mod
author - [BaseFilterValue!] The name of the author
uploader - [BaseFilterValue!] The name of the uploader
supportsVortex - [BooleanFilterValue!] Filter mods by whether they support Vortex
languageName - [BaseFilterValue!] The language of the mod
categoryName - [BaseFilterValue!] The mod category
status - [BaseFilterValue!] The mod status
gameName - [BaseFilterValue!] The name of the game this mod is for
primaryImage - [BaseFilterValue!] Filter mods by image, as returned by pictureUrl and thumbnailUrl.
Example
{
  "filter": [ModsFilter],
  "op": "AND",
  "name": [BaseFilterValueEqualsWildcard],
  "nameStemmed": [BaseFilterValue],
  "gameId": [BaseFilterValue],
  "gameDomainName": [BaseFilterValue],
  "createdAt": [BaseFilterValue],
  "updatedAt": [BaseFilterValue],
  "hasUpdated": [BooleanFilterValue],
  "uploaderId": [BaseFilterValue],
  "adultContent": [BooleanFilterValue],
  "fileSize": [IntFilterValue],
  "downloads": [IntFilterValue],
  "endorsements": [IntFilterValue],
  "tag": [BaseFilterValue],
  "description": [BaseFilterValueEqualsMatches],
  "author": [BaseFilterValue],
  "uploader": [BaseFilterValue],
  "supportsVortex": [BooleanFilterValue],
  "languageName": [BaseFilterValue],
  "categoryName": [BaseFilterValue],
  "status": [BaseFilterValue],
  "gameName": [BaseFilterValue],
  "primaryImage": [BaseFilterValue]
}

ModsSort

Description

Sort fields specific to a Mods query.

Fields
Input Field Description
relevance - BaseSortValue Filter query relevance, works best with non wildcard queries.
name - BaseSortValue Mod name.
downloads - BaseSortValue Number of times downloaded.
uniqueDownloads - BaseSortValue Number of unique downloads.
endorsements - BaseSortValue Number of times endorsed.
random - RandomSortValue Random mods.
createdAt - BaseSortValue Date created.
updatedAt - BaseSortValue Date updated.
size - BaseSortValue Mod file size.
lastComment - BaseSortValue Date of last comment.
Example
{
  "relevance": BaseSortValue,
  "name": BaseSortValue,
  "downloads": BaseSortValue,
  "uniqueDownloads": BaseSortValue,
  "endorsements": BaseSortValue,
  "random": RandomSortValue,
  "createdAt": BaseSortValue,
  "updatedAt": BaseSortValue,
  "size": BaseSortValue,
  "lastComment": BaseSortValue
}

News

Description

A News article, stored and originally defined by the legacy forum

Fields
Field Name Description
author - User! Author of this News Article
commentsCount - Int! The number of comments on this article
content - String! Content of this news article
date - ISO8601DateTime! Date this news article was created
games - [Game!]! Games this news article is related to
header - String The name of the image on the forum
html - Boolean! Is this news article written in HTML?
id - ID! The database ID for this news.
image - String The name of the image on the forum
newsCategory - NewsCategory! Category of this news article
sourceName - String If the news article has a source, this is it's name
sourceUrl - String If the news article has a source, this is the URL
summary - String! Summary of this news article
title - String! Title of this news article
uncroppedHeader - String The name of the uncropped image on the forum
uncroppedImage - String The name of the uncropped image on the forum
Example
{
  "author": User,
  "commentsCount": 987,
  "content": "xyz789",
  "date": ISO8601DateTime,
  "games": [Game],
  "header": "xyz789",
  "html": true,
  "id": "4",
  "image": "abc123",
  "newsCategory": NewsCategory,
  "sourceName": "abc123",
  "sourceUrl": "xyz789",
  "summary": "abc123",
  "title": "xyz789",
  "uncroppedHeader": "xyz789",
  "uncroppedImage": "xyz789"
}

NewsCategory

Description

A news category

Fields
Field Name Description
id - ID! The database ID for this news category.
name - String! Name of this category
Example
{"id": 4, "name": "abc123"}

NewsCategoryEnum

Description

Forum news articles type.

Values
Enum Value Description

SITE_NEWS

GAME_NEWS

MOD_NEWS

INTERVIEWS

COMPETITIONS

FEATURES

Example
"SITE_NEWS"

NewsPage

Fields
Field Name Description
facets - [NodesFacet!] Facets available, if supported for this query and requested.
facetsData - JSON Facets available, if supported for this query and requested. Schema is {"facetName":{"facetValue":count}}
nodes - [News!]! Nodes for pagination
nodesCount - Int! Number of nodes returned by this query
nodesFacets - [NodesFacet!] Facets available, if supported for this query and requested.
nodesFilter - String String representation of the filter query used to locate the nodes.
totalCount - Int! Total number of collections found.
Example
{
  "facets": [NodesFacet],
  "facetsData": {},
  "nodes": [News],
  "nodesCount": 987,
  "nodesFacets": [NodesFacet],
  "nodesFilter": "xyz789",
  "totalCount": 987
}

Node

Description

An object with an ID.

Fields
Field Name Description
id - ID! ID of the object.
Example
{"id": "4"}

NodesFacet

Description

Metadata about a single facet value.

Fields
Field Name Description
count - Int! Number of results available for this facet value. Affected by values set on other facets.
facet - String! Name matching the graphql facet request.
value - String! Value available for this facet. May be used in a subsequent facet request to filter the results by facet.
Example
{
  "count": 123,
  "facet": "xyz789",
  "value": "xyz789"
}

OffsetBasedPageInfo

Description

Information about a page of items

Fields
Field Name Description
hasNextPage - Boolean! Whether there is a next page
hasPreviousPage - Boolean! Whether there is a previous page
page - Int! The current page number
pageSize - Int! The number of items per page
totalCount - Int! The total number of items
Example
{
  "hasNextPage": false,
  "hasPreviousPage": true,
  "page": 987,
  "pageSize": 987,
  "totalCount": 123
}

OpenCollectionBugReportMutationPayload

Description

Autogenerated return type of OpenCollectionBugReportMutation.

Fields
Field Name Description
collectionBugReport - CollectionBugReport! Collection bug report which was re-opened
Example
{"collectionBugReport": CollectionBugReport}

OptedInMod

Description

Represents a single opted in mod

Fields
Field Name Description
createdAt - DateTime! Time of when this OptedInMod was first created.
game - Game Game
gameId - Int! The ID of the game the mod belongs to
id - Int! The database ID for this opted in mod.
mod - Mod Mod
modId - Int! ID of the that was opted in
ratio - Float! Ratio of the DP from this mod shared with this user
uploader - User Uploader of the mod
uploaderId - Int! ID of the uploader of the mod. This might not be the current user, as mod authors can share mod DP with other users.
Example
{
  "createdAt": "2007-12-03T10:15:30Z",
  "game": Game,
  "gameId": 123,
  "id": 987,
  "mod": Mod,
  "modId": 987,
  "ratio": 123.45,
  "uploader": User,
  "uploaderId": 987
}

OptedInMods

Description

A list of mods that this user has been opted into

Fields
Field Name Description
count - Int! Number of mods this user has opted in
entries - [OptedInMod!]! Mods that have been opted in
user - User! User
userId - Int! ID of the user
Example
{
  "count": 987,
  "entries": [OptedInMod],
  "user": User,
  "userId": 123
}

PageInfo

Description

Information about pagination in a connection.

Fields
Field Name Description
endCursor - String When paginating forwards, the cursor to continue.
hasNextPage - Boolean! When paginating forwards, are there more items?
hasPreviousPage - Boolean! When paginating backwards, are there more items?
startCursor - String When paginating backwards, the cursor to continue.
Example
{
  "endCursor": "xyz789",
  "hasNextPage": false,
  "hasPreviousPage": false,
  "startCursor": "abc123"
}

PaymentEntity

Description

An entity to represent either an account or a bank

Fields
Field Name Description
id - Int! The database ID for this payment entity.
label - String! Name of this entity
type - String! Type of entity
Example
{
  "id": 987,
  "label": "abc123",
  "type": "abc123"
}

Permission

Description

A global or entity-specific permission granted to a user

Fields
Field Name Description
global - Boolean! If true, this permission is being granted globally from the user's role
key - String! Permission string being granted E.g. 'collection:publish'
Example
{"global": true, "key": "abc123"}

PinCommentMutationPayload

Description

Autogenerated return type of PinCommentMutation.

Fields
Field Name Description
comment - Comment! The comment that was pinned.
Example
{"comment": Comment}

Preference

Description

A user preference

Fields
Field Name Description
adult - Boolean! Show adult content
adultBlurImages - Boolean! Blur adult images
bubbleReply - Boolean! Replies to posts bump original post
comments - PreferencesCommentsEnum! Amount of comments per page.
defaultMediaTab - PreferencesDefaultMediaTabEnum! Default media tab.
defaultModsTab - PreferencesDefaultModsTabEnum! Default mods tab.
defaultNewsTab - PreferencesDefaultNewsTabEnum! Default news tab.
defaultOrder - PreferencesDefaultSortEnum! Default sorting option.
defaultSearchType - PreferencesSearchTypeEnum! Default search types
defaultSearchView - PreferencesDefaultSearchViewEnum! Default search view.
disableProfileActivity - Boolean! Display user activity
displayLastActivity - Boolean! Display when user was last active
dlLocation - PreferencesDlLocationEnum! Download location.
download - PreferencesDownloadMethodEnum! Preferred download method
id - ID! ID of the object.
imageShowcase - PreferencesImageShowcaseEnum! Image showcase.
isBlockingContent - Boolean! If true, this user is blocking content
membersAutoDst - Boolean! Automatically detect when timezone in DST
notificationsActive - Boolean! Display notifications
notificationsGameSpecific - Boolean! Game specific notifications when visiting game pages
reminder - PreferencesReminderEnum! Endorsement reminder.
results - PreferencesResultsEnum! Amount of results per page.
subfeedsActivityTracked - Boolean! Activity about tracked files, images and videos
subfeedsActivityYour - Boolean! Activity about a users files, images and videos
subfeedsAuthorTracked - Boolean! Author tracked files, images and videos
subfeedsCommentsTracked - Boolean! Comments about tracked files, images and videos
subfeedsCommentsYour - Boolean! Comments about a users files, images and videos
timeOffset - String Member timezone
Example
{
  "adult": false,
  "adultBlurImages": true,
  "bubbleReply": true,
  "comments": "COMMENTS_10",
  "defaultMediaTab": "NEW_TODAY",
  "defaultModsTab": "NEW_TODAY",
  "defaultNewsTab": "ALL_NEWS",
  "defaultOrder": "BY_RECENT_FILES",
  "defaultSearchType": "ALL_CONTENT",
  "defaultSearchView": "SMALL_TILES",
  "disableProfileActivity": false,
  "displayLastActivity": true,
  "dlLocation": "NEXUS_CDN",
  "download": "POP_UP_BOX",
  "id": 4,
  "imageShowcase": "NOT_SET",
  "isBlockingContent": true,
  "membersAutoDst": true,
  "notificationsActive": false,
  "notificationsGameSpecific": true,
  "reminder": "NEVER",
  "results": "RESULTS_20",
  "subfeedsActivityTracked": true,
  "subfeedsActivityYour": false,
  "subfeedsAuthorTracked": false,
  "subfeedsCommentsTracked": true,
  "subfeedsCommentsYour": false,
  "timeOffset": "abc123"
}

PreferencesCommentsEnum

Description

Amount of comments per page.

Values
Enum Value Description

COMMENTS_10

COMMENTS_20

COMMENTS_30

COMMENTS_40

COMMENTS_50

Example
"COMMENTS_10"

PreferencesDefaultMediaTabEnum

Description

Default media tab.

Values
Enum Value Description

NEW_TODAY

NEW_THIS_WEEK

LATEST

POPULAR_30_DAYS

POPULAR_ALL_TIME

TRENDING

RANDOM

Example
"NEW_TODAY"

PreferencesDefaultModsTabEnum

Description

Default mods tab.

Values
Enum Value Description

NEW_TODAY

NEW_THIS_WEEK

LATEST

POPULAR_30_DAYS

POPULAR_ALL_TIME

MORE_TRENDING

RANDOM

UPDATED

TRACKED_CONTENT_UPDATES

Example
"NEW_TODAY"

PreferencesDefaultNewsTabEnum

Description

Default news tab.

Values
Enum Value Description

ALL_NEWS

FEATURES

SITE_NEWS

COMPETITIONS

GAME_NEWS

MOD_NEWS

INTERVIEWS

MOD_UPDATES

FRIENDS_UPDATES

Example
"ALL_NEWS"

PreferencesDefaultSearchViewEnum

Description

Default search view.

Values
Enum Value Description

SMALL_TILES

LIST

BIG_TILES

Example
"SMALL_TILES"

PreferencesDefaultSortEnum

Description

Default sorting option.

Values
Enum Value Description

BY_RECENT_FILES

BY_ENDORSEMENTS

BY_DOWNLOADS

BY_UNIQUE_DOWNLOADS

BY_LAST_UPDATED_FILE

BY_AUTHOR_NAME

BY_FILE_NAME

BY_FILE_SIZE

RANDOM_SORTING

LAST_COMMENT

Example
"BY_RECENT_FILES"

PreferencesDlLocationEnum

Description

Download location.

Values
Enum Value Description

NEXUS_CDN

AMSTERDAM

PRAGUE

CHICAGO

LOS_ANGELES

MIAMI

Example
"NEXUS_CDN"

PreferencesDownloadMethodEnum

Description

Download method.

Values
Enum Value Description

POP_UP_BOX

SEPARATE_PAGE

Example
"POP_UP_BOX"

PreferencesImageShowcaseEnum

Description

Image showcase.

Values
Enum Value Description

NOT_SET

CHOOSE_ON_PER_IMAGE_BASIS

TURN_OFF_IMAGES

TURN_ON_IMAGES

Example
"NOT_SET"

PreferencesReminderEnum

Description

Endorsement reminder.

Values
Enum Value Description

NEVER

DAYS_1

DAYS_3

DAYS_7

DAYS_14

DAYS_28

Example
"NEVER"

PreferencesResultsEnum

Description

Amount of results per page.

Values
Enum Value Description

RESULTS_20

RESULTS_40

RESULTS_60

RESULTS_80

Example
"RESULTS_20"

PreferencesSearchTypeEnum

Description

Search types.

Values
Enum Value Description

ALL_CONTENT

GAMES

MODS

COLLECTIONS

IMAGES

VIDEOS

USERS

Example
"ALL_CONTENT"

PresignedUrl

Description

returned attributes for presigned post requests

Fields
Field Name Description
url - String! Presigned URL
uuid - String! UUID
Example
{
  "url": "xyz789",
  "uuid": "xyz789"
}

PublicCollectionChangelog

Description

A public changelog attached to a collection revision. If you need to access more fields, use CollectionChangelogType instead.

Fields
Field Name Description
collectionRevisionId - Int! The id of the collection revision for which this changelog was created
createdAt - DateTime! Time of when this collection changelog was first created.
description - String! The content of the collection changelog, in Markdown format
id - Int! The database ID for this collection changelog.
revisionNumber - Int! The revision number of the collection revision for which this changelog was created
updatedAt - DateTime! Time of when this collection changelog was last updated.
Example
{
  "collectionRevisionId": 987,
  "createdAt": "2007-12-03T10:15:30Z",
  "description": "abc123",
  "id": 987,
  "revisionNumber": 123,
  "updatedAt": "2007-12-03T10:15:30Z"
}

PublicCollectionRevision

Description

A public collection revision type. If you need to access more fields, use CollectionRevisionType instead.

Fields
Field Name Description
collectionChangelog - PublicCollectionChangelog A changelog attached to a collection revision
createdAt - DateTime! Time of when this revision was first created.
discardedAt - DateTime Time of when this revision was discarded.
id - Int! The database ID for this revision.
overallRating - String An average taken from all ratings for this revision
overallRatingCount - Int A count of all ratings for this revision
rating - AverageRating! Average rating for a single revision and total number of votes Deprecated in favour of 'overallRating' and 'overallRatingCount'
revision - Int! The revision number Use revision_number instead.
revisionNumber - Int! The revision number
revisionStatus - String! The status of this revision. Possible values are 'draft', 'published' or 'retracted'
updatedAt - DateTime! Time of when this revision was last updated.
Example
{
  "collectionChangelog": PublicCollectionChangelog,
  "createdAt": "2007-12-03T10:15:30Z",
  "discardedAt": "2007-12-03T10:15:30Z",
  "id": 987,
  "overallRating": "abc123",
  "overallRatingCount": 123,
  "rating": AverageRating,
  "revision": 987,
  "revisionNumber": 987,
  "revisionStatus": "xyz789",
  "updatedAt": "2007-12-03T10:15:30Z"
}

PublishRevisionMutationPayload

Description

Autogenerated return type of PublishRevisionMutation.

Fields
Field Name Description
success - Boolean! Success Boolean
Example
{"success": false}

RandomSortValue

Fields
Input Field Description
seed - Int If passed, randomness will be deterministic
Example
{"seed": 123}

Ratable

Description

Ratable Model Types

Values
Enum Value Description

CollectionRevision

A nexusmods Collection of Mods

Mod

A Nexusmods Mod
Example
"CollectionRevision"

Rating

Description

A Rating

Fields
Field Name Description
id - ID! ID of the object.
modelId - Int! Polymorphic ID of the entity being rated
modelType - String! Polymorphic type of the entity being rated
rating - String! Rating value
userId - Int! ID of the user that created this rating
Example
{
  "id": "4",
  "modelId": 987,
  "modelType": "abc123",
  "rating": "abc123",
  "userId": 987
}

RatingOptions

Description

Rating options

Values
Enum Value Description

positive

negative

abstained

Example
"positive"

RejectModerationFixMutationPayload

Description

Autogenerated return type of RejectModerationFixMutation.

Fields
Field Name Description
moderationFix - ModerationFix! Return the moderation fix object
success - Boolean! Returns trus if the fix was rejected
Example
{"moderationFix": ModerationFix, "success": true}

RemoveCommentLikeMutationPayload

Description

Autogenerated return type of RemoveCommentLikeMutation.

Fields
Field Name Description
comment - Comment! The comment that had its like removed.
Example
{"comment": Comment}

RemoveFavouriteGameMutationPayload

Description

Autogenerated return type of RemoveFavouriteGameMutation.

Fields
Field Name Description
success - Boolean! True if the favourite was successfully removed
Example
{"success": true}

RemoveHeaderImageFromCollectionMutationPayload

Description

Autogenerated return type of RemoveHeaderImageFromCollectionMutation.

Fields
Field Name Description
success - Boolean! Returns true when image was removed successfully.
Example
{"success": true}

RemoveImageFromCollectionMutationPayload

Description

Autogenerated return type of RemoveImageFromCollectionMutation.

Fields
Field Name Description
success - Boolean! Returns true when image is removed successfully.
Example
{"success": true}

RemoveKudosMutationPayload

Description

Autogenerated return type of RemoveKudosMutation.

Fields
Field Name Description
success - Boolean! True if the user has successfully had kudos removed
Example
{"success": false}

RemoveTagFromCollectionMutationPayload

Description

Autogenerated return type of RemoveTagFromCollectionMutation.

Fields
Field Name Description
success - Boolean! Success Boolean
Example
{"success": true}

RemoveTileImageFromCollectionMutationPayload

Description

Autogenerated return type of RemoveTileImageFromCollectionMutation.

Fields
Field Name Description
success - Boolean! Returns true when image is removed successfully.
Example
{"success": true}

RemoveVideoFromCollectionMutationPayload

Description

Autogenerated return type of RemoveVideoFromCollectionMutation.

Fields
Field Name Description
success - Boolean! Returns true when video is removed successfully.
Example
{"success": true}

ReorderItemPayload

Description

Autogenerated return type of ReorderItem.

Fields
Field Name Description
item - Reorderable The item that was moved.
Example
{"item": Reorderable}

ReorderLocation

Description

The relative location of an item in relation to another item.

Values
Enum Value Description

BEFORE

Before the item.

AFTER

After the item.
Example
"BEFORE"

ReorderPinnedCommentsMutationPayload

Description

Autogenerated return type of ReorderPinnedCommentsMutation.

Fields
Field Name Description
comments - [Comment!]! Pinned comments in a new order.
Example
{"comments": [Comment]}

Reorderable

Description

A reorderable entity.

Fields
Field Name Description
order - String! The order of this entity in the list.
Possible Types
Reorderable Types

CollectionImage

CollectionVideo

Example
{"order": "abc123"}

RestoreCommentMutationPayload

Description

Autogenerated return type of RestoreCommentMutation.

Fields
Field Name Description
comment - Comment! The comment that was restored.
Example
{"comment": Comment}

RetractRevisionMutationPayload

Description

Autogenerated return type of RetractRevisionMutation.

Fields
Field Name Description
success - Boolean! Success Boolean
Example
{"success": true}

RetractionReason

Description

A reason for which a revision has been retracted.

Fields
Field Name Description
collectionRevisionId - Int! An immutable revision of a collection
createdAt - DateTime! Time of when this retraction reason was first created.
id - Int! The database ID for this retraction reason.
reason - String! User-provided reason for this retraction
updatedAt - DateTime! Time of when this retraction reason was last updated.
Example
{
  "collectionRevisionId": 987,
  "createdAt": "2007-12-03T10:15:30Z",
  "id": 987,
  "reason": "abc123",
  "updatedAt": "2007-12-03T10:15:30Z"
}

SortDirection

Description

Sort directions: ASC, DESC

Values
Enum Value Description

ASC

Ascending

DESC

Descending
Example
"ASC"

SpeedtestUrl

Description

A speedtest URL

Fields
Field Name Description
description - String Description of this speedtest URL
location - String URL of the resource
tag - String Tag of the resource
title - String Resource name of this speedtest URL
Example
{
  "description": "xyz789",
  "location": "abc123",
  "tag": "abc123",
  "title": "abc123"
}

String

Description

Represents textual data as UTF-8 character sequences. This type is most often used by GraphQL to represent free-form human-readable text.

Example
"abc123"

SubmitModerationFixMutationPayload

Description

Autogenerated return type of SubmitModerationFixMutation.

Fields
Field Name Description
moderationFix - ModerationFix! Return moderation fix object
success - Boolean! Returns true if this fix was created successfully
Example
{"moderationFix": ModerationFix, "success": false}

SupporterImage

Description

A supporter image

Fields
Field Name Description
allowComments - Boolean Whether comments are allowed on the image.
allowRating - Boolean Whether ratings are allowed on the image.
caption - String! A caption for this image
category - ImageCategory! An image category
createdAt - DateTime! Time of when this supporter_image was first created.
description - String! A detailed description of this image
game - Game! Game this image belongs to
id - ID! ID of the object.
mediaStatus - MediaStatus! Status of this image
name - String! Name of the image file
owner - User! Uploader of this image
rating - Int! Rating of this image
siteUrl - String! URL of the site this image is hosted on
thumbnailUrl - String! URL of the thumbnail of this image
title - String A title for this image
url - String! URL of this image
viewerBlocked - Boolean! True if the viewer (current user) has blocked this image's author
views - Int! View count of this image
Example
{
  "allowComments": true,
  "allowRating": false,
  "caption": "abc123",
  "category": ImageCategory,
  "createdAt": "2007-12-03T10:15:30Z",
  "description": "abc123",
  "game": Game,
  "id": "4",
  "mediaStatus": "published",
  "name": "xyz789",
  "owner": User,
  "rating": 987,
  "siteUrl": "xyz789",
  "thumbnailUrl": "abc123",
  "title": "abc123",
  "url": "xyz789",
  "viewerBlocked": true,
  "views": 123
}

Tag

Description

The definition of a Tag Object. Deprecated. Will be removed in a future release in favour of domain specific tag queries/mutations

Fields
Field Name Description
adult - Boolean! If true, this Tag is intended for adult content
category - TagCategory Category that this tag belongs to
createdAt - DateTime! Time of when this tag was first created.
discardedAt - DateTime Time of when this tag was discarded.
games - [Game!] List of games that this tag is for
global - Boolean! If true, this Tag is global and not intended for a specific game
id - ID! The database ID for this tag.
name - String! Name of this tag
taggablesCount - Int! Number of tagged entities for this tag
updatedAt - DateTime! Time of when this tag was last updated.
Example
{
  "adult": false,
  "category": TagCategory,
  "createdAt": "2007-12-03T10:15:30Z",
  "discardedAt": "2007-12-03T10:15:30Z",
  "games": [Game],
  "global": true,
  "id": 4,
  "name": "abc123",
  "taggablesCount": 987,
  "updatedAt": "2007-12-03T10:15:30Z"
}

TagCategory

Description

The definition of a Tag Category Object. Deprecated. Will be removed in a future release in favour of domain specific tag queries/mutations

Fields
Field Name Description
createdAt - DateTime! Time of when this tag category was first created.
discardedAt - DateTime Time of when this tag category was discarded.
id - ID! The database ID for this tag category.
name - String! Name of this Tag Category
tags - [Tag!] List of tags in this catgeory
updatedAt - DateTime! Time of when this tag category was last updated.
Example
{
  "createdAt": "2007-12-03T10:15:30Z",
  "discardedAt": "2007-12-03T10:15:30Z",
  "id": 4,
  "name": "xyz789",
  "tags": [Tag],
  "updatedAt": "2007-12-03T10:15:30Z"
}

ThumbnailSize

Description

Accepted Thumbnail Sizes

Values
Enum Value Description

small

250px width

med

385px width

large

500px width
Example
"small"

TrackModMutationPayload

Description

Autogenerated return type of TrackModMutation.

Fields
Field Name Description
success - Boolean! True if the request to track the mod was successful, or if the mod was already tracked.
trackedMod - TrackedMod! Tracked mod entry.
Example
{"success": false, "trackedMod": TrackedMod}

TrackUserMutationPayload

Description

Autogenerated return type of TrackUserMutation.

Fields
Field Name Description
success - Boolean! True if the request to track the user was successful
Example
{"success": true}

TrackedMod

Description

Represents a user's tracking of a mod

Fields
Field Name Description
gameId - ID! The ID of the game that the tracked mod belongs to
modId - ID! The ID of the mod that is tracked
userId - ID! The ID of the tracking user
Example
{"gameId": 4, "modId": "4", "userId": 4}

Transaction

Description

A transaction

Fields
Field Name Description
amount - Int! Amount of DP in this transaction
createdAt - String! Time of when this transaction was first created.
creditor - String Account/Bank that DP is being sent to Use 'creditorEntity' instead
creditorEntity - PaymentEntity Account/Bank that DP is being sent to
debitor - String Account/Bank that DP is being taken from Use 'debitorEntity' instead
debitorEntity - PaymentEntity Account/Bank that DP is being taken from
id - Int! The database ID for this transaction.
label - String! Descriptive label for this transaction
type - String! Type of transaction E.g. 'refund', 'purchase' etc
Example
{
  "amount": 987,
  "createdAt": "abc123",
  "creditor": "abc123",
  "creditorEntity": PaymentEntity,
  "debitor": "xyz789",
  "debitorEntity": PaymentEntity,
  "id": 123,
  "label": "xyz789",
  "type": "xyz789"
}

TransactionList

Description

A list of transactions

Fields
Field Name Description
filteredCount - Int! Number of transactions being filtered
totalCount - Int! Total number of transactions in the system
transactions - [Transaction!] List of Transactions
Example
{
  "filteredCount": 123,
  "totalCount": 123,
  "transactions": [Transaction]
}

UnblockModsFromEarningDpMutationPayload

Description

Autogenerated return type of UnblockModsFromEarningDpMutation.

Fields
Field Name Description
success - Boolean! True if the mods were successfully unblocked
Example
{"success": true}

UnlistCollectionMutationPayload

Description

Autogenerated return type of UnlistCollectionMutation.

Fields
Field Name Description
success - Boolean! Success Boolean
Example
{"success": true}

UnpinCommentMutationPayload

Description

Autogenerated return type of UnpinCommentMutation.

Fields
Field Name Description
comment - Comment! The comment that was unpinned.
Example
{"comment": Comment}

UntrackModMutationPayload

Description

Autogenerated return type of UntrackModMutation.

Fields
Field Name Description
success - Boolean! True if the request to un-track the mod was successful, or if the mod was not being tracked.
Example
{"success": false}

UntrackUserMutationPayload

Description

Autogenerated return type of UntrackUserMutation.

Fields
Field Name Description
success - Boolean! True if the request to stop tracking the user was successful
Example
{"success": false}

UpdateAboutMeMutationPayload

Description

Autogenerated return type of UpdateAboutMeMutation.

Fields
Field Name Description
success - Boolean! True if the bio was successfully updated
Example
{"success": true}

UpdateChangelogMutationPayload

Description

Autogenerated return type of UpdateChangelogMutation.

Fields
Field Name Description
changelogId - Int! Updated Changelog ID
success - Boolean! Success Boolean
Example
{"changelogId": 987, "success": true}

UpdateCollectionBugReportMutationPayload

Description

Autogenerated return type of UpdateCollectionBugReportMutation.

Fields
Field Name Description
collectionBugReport - CollectionBugReport! Collection bug report that was updated
Example
{"collectionBugReport": CollectionBugReport}

UpdateCommentMutationPayload

Description

Autogenerated return type of UpdateCommentMutation.

Fields
Field Name Description
comment - Comment! The comment that was updated.
Example
{"comment": Comment}

UpdateCountryMutationPayload

Description

Autogenerated return type of UpdateCountryMutation.

Fields
Field Name Description
success - Boolean! True if the country was successfully updated
Example
{"success": true}

UpdateImageInput

Description

Defines a Image Update request object

Fields
Input Field Description
id - ID! Image ID
title - String Image title
altText - String Alternative text
Example
{
  "id": 4,
  "title": "xyz789",
  "altText": "abc123"
}

UpdatePolicy

Description

Available update policies of a file resource

Values
Enum Value Description

exact

Use the exact specified version

latest

Use the latest version

prefer

Prefer the specified version if available
Example
"exact"

UpdateRevisionMutationPayload

Description

Autogenerated return type of UpdateRevisionMutation.

Fields
Field Name Description
revisionId - Int! The revision ID that was updated
success - Boolean! If true, the revision was updated
Example
{"revisionId": 123, "success": true}

UpdateTagMutationPayload

Description

Autogenerated return type of UpdateTagMutation.

Fields
Field Name Description
success - Boolean! Success Boolean
tag - Tag! Updated Collection Tag
Example
{"success": true, "tag": Tag}

Upload

Example
Upload

UploadAttachmentMutationPayload

Description

Autogenerated return type of UploadAttachmentMutation.

Fields
Field Name Description
attachment - Attachment! The uploaded file returns a signed_id that can be used to attach to objects.
Example
{"attachment": Attachment}

UploadImageInput

Description

Defines a Image Upload request object

Fields
Input Field Description
id - ID! Image UUID
contentType - String! Image content type
title - String Image title
altText - String Alternative text of the image
Example
{
  "id": "4",
  "contentType": "xyz789",
  "title": "abc123",
  "altText": "abc123"
}

UploadList

Description

A list of upload

Fields
Field Name Description
filteredCount - Int! Number of uploads being filtered
totalCount - Int! Total number of uploads
uploads - [ModUpload!] List of uploads
Example
{
  "filteredCount": 123,
  "totalCount": 987,
  "uploads": [ModUpload]
}

UploadVideoInput

Description

Defines a Video Upload request object

Fields
Input Field Description
url - String! Video URL
Example
{"url": "abc123"}

User

Description

A Nexus Mods user

Fields
Field Name Description
about - String User's bio
avatar - String! The avatar for this user
banned - Boolean! If true, this user has been banned
blockedFromOptingInModsAt - DateTime Timestamp at which user's new mods were blocked from earning DP
collectionCount - Int! Number of collections uploaded by this user. This does not include unlisted or moderated collections.
contributedModCount - Int! The number of mods this user has contributed to
country - String ISO Country Code
deleted - Boolean! If true, this user has been deleted
donationsEnabled - Boolean! If true, this user has enabled donations on their profile page
dpOptedIn - Boolean! If false, this user has specifically opted-out of the DP system. By default, all users are opted in.
email - String! The user's email address. Users can only access their own protected data.
endorsementsGiven - Int! Number of mod endorsements given by this user
fullPageNotificationCount - Int The number of full page notifications this user has been served in the past.
hasGivenKudos - Boolean! If true, the viewer (current user) has given kudos to this user.
imageCount - Int! Number of images uploaded by this user. This does not include moderated images.
ipAddress - String The user's last known IP Address. Users can only access their own protected data.
isBlocked - Boolean! If true, the viewer (current user) has blocked this user.
isTracked - Boolean! If true, the viewer (current user) is tracking this user.
joined - DateTime! Date the user joined
kudos - Int! The number of 'kudos' given to this user
lastActive - DateTime Date the user was last active
legacyRoles - [String!]! Legacy roles for this user. Returns an array of roles. E.g. "[SiteProgrammer, QA Tester]"
memberId - Int! The database ID for this user.
membershipRoles - [String!]! Membership status for this user. Returns an array of roles. E.g. all users are "member"
modAnalyticsByMonth - ModAnalyticsByMonthPage! The analytics for the user's mods, grouped by month
Arguments
affiliation - ModAffiliation

The affiliation to filter by

page - Int

The page number to retrieve

pageSize - Int

The number of results per page

sortBy - ModAnalyticsByMonthSortBy

The field to sort by

sortDirection - SortDirection

The direction to sort by

modAnalyticsForMonth - ModAnalyticsForMonthPage! The analytics for the user's mods for a specific month
Arguments
year - Int!

The year to retrieve analytics for

month - Int!

The month to retrieve analytics for

query - String

Search term to filter mods by

affiliation - ModAffiliation

The affiliation to filter by

page - Int

The page number to retrieve

pageSize - Int

The number of results per page

sortBy - ModAnalyticsForMonthSortBy

The field to sort by

sortDirection - SortDirection

The direction to sort by

modCount - Int! Number of mods uploaded by this user. This does not include hidden, moderated or unpublished mods.
moderationHistoryCount - Int The number of moderation warnings this user has been served in the past.
moderationJwt - String! JWT token for submitting moderation reports
modsBlockedFromEarningDp - BlockedModsPage! A list of mods blocked from earning dp
Arguments
count - Int

Number of mods to return

offset - Int

Number of mods to skip

name - String! The user's username.
ownedModCount - Int! The number of mods this user has uploaded
paypal - String Email address used for PayPal donations. Users can only access their own protected data.
posts - Int! The number of forum posts by this user
recognizedAuthor - Boolean! If true, this user is a recognised mod author
roles - [String!]! Roles for this user. Returns an array of roles. E.g. "[Admin, Moderator]"
showActivityFeed - Boolean! If true, this user has opted to show their activity feed on their user profile page
showLastActive - Boolean! If true, this user has opted to show the date they were last active on their user profile page
uniqueModDownloads - Int! Number of unique mod downloads on this users mods
usernameLastChangedAt - DateTime Date the user last changed their username. Only users can access their own protected data.
videoCount - Int! Number of videos uploaded by this user. This does not include moderated videos.
views - Int! Number of profile views
Example
{
  "about": "abc123",
  "avatar": "xyz789",
  "banned": false,
  "blockedFromOptingInModsAt": "2007-12-03T10:15:30Z",
  "collectionCount": 987,
  "contributedModCount": 987,
  "country": "abc123",
  "deleted": true,
  "donationsEnabled": false,
  "dpOptedIn": false,
  "email": "abc123",
  "endorsementsGiven": 123,
  "fullPageNotificationCount": 123,
  "hasGivenKudos": false,
  "imageCount": 123,
  "ipAddress": "abc123",
  "isBlocked": true,
  "isTracked": false,
  "joined": "2007-12-03T10:15:30Z",
  "kudos": 987,
  "lastActive": "2007-12-03T10:15:30Z",
  "legacyRoles": ["abc123"],
  "memberId": 123,
  "membershipRoles": ["abc123"],
  "modAnalyticsByMonth": ModAnalyticsByMonthPage,
  "modAnalyticsForMonth": ModAnalyticsForMonthPage,
  "modCount": 987,
  "moderationHistoryCount": 987,
  "moderationJwt": "xyz789",
  "modsBlockedFromEarningDp": BlockedModsPage,
  "name": "xyz789",
  "ownedModCount": 987,
  "paypal": "xyz789",
  "posts": 123,
  "recognizedAuthor": true,
  "roles": ["xyz789"],
  "showActivityFeed": true,
  "showLastActive": true,
  "uniqueModDownloads": 987,
  "usernameLastChangedAt": "2007-12-03T10:15:30Z",
  "videoCount": 987,
  "views": 987
}

UserConnection

Description

The connection type for User.

Fields
Field Name Description
edges - [UserEdge] A list of edges.
nodes - [User] A list of nodes.
pageInfo - PageInfo! Information to aid in pagination.
totalCount - Int! Total # of objects returned from this Plural Query
Example
{
  "edges": [UserEdge],
  "nodes": [User],
  "pageInfo": PageInfo,
  "totalCount": 987
}

UserEdge

Description

An edge in a connection.

Fields
Field Name Description
cursor - String! A cursor for use in pagination.
node - User The item at the end of the edge.
Example
{
  "cursor": "abc123",
  "node": User
}

UserMonthlyReport

Description

Monthly detailed report for for a particular user/account on how much DP/downloads they have received for which mod/game

Fields
Field Name Description
entries - [UserMonthlyReportEntry!]! List of entries in this report
reportType - DonationReport! Type of report
user - User A Nexus Mods user
userId - Int! The database ID for this user.
Example
{
  "entries": [UserMonthlyReportEntry],
  "reportType": "UNIQUE_DOWNLOADS",
  "user": User,
  "userId": 987
}

UserMonthlyReportEntry

Description

A more detailed entry for UserMonthlyReport, with a breakdown for a specific month for each mod

Fields
Field Name Description
author - User A Nexus Mods user
authorCount - Int Number of authors that give this user DP
authorId - Int The database ID for this user.
authorValue - Int Total DP value from all authors this user gets DP from, including DP not shared with this user.
game - Game A Game
gameId - Int The database ID for this game.
mod - Mod A mod
modCount - Int Number of mods that this user appears in
modId - Int The database ID for this mod.
modValue - Int Total DP value from all mods this user appears in, including DP not shared with this user.
month - Int! Month that this entry is for
ratio - Float! Ratio of how much of the DP earned for a mod or author is given to this user
reportId - Int! The database ID for this donation report.
status - Int! Opt-in status of this mod
value - Int! Total DP granted to this user in this entry
year - Int! Year that this entry is for
Example
{
  "author": User,
  "authorCount": 987,
  "authorId": 987,
  "authorValue": 123,
  "game": Game,
  "gameId": 123,
  "mod": Mod,
  "modCount": 123,
  "modId": 123,
  "modValue": 123,
  "month": 123,
  "ratio": 123.45,
  "reportId": 987,
  "status": 987,
  "value": 987,
  "year": 987
}

UserMonthlySummary

Description

Monthly summary for for a particular user/account on how much DP/downloads they have received

Fields
Field Name Description
entries - [UserMonthlySummaryEntry!]! List of summary report entries for this month
user - User! A Nexus Mods user
userId - Int! The database ID for this user.
Example
{
  "entries": [UserMonthlySummaryEntry],
  "user": User,
  "userId": 987
}

UserMonthlySummaryEntry

Description

An entry for UserMonthlySummary, with a breakdown for a specific month

Fields
Field Name Description
modCount - Int! Number of mods that this user appears in
modValue - Int! Total DP value from all mods this user appears in, including DP not shared with this user.
month - Int! Month that this entry is for
reportType - DonationReport! Type of report
value - Int! Total DP granted to this user in this entry
year - Int! Year that this entry is for
Example
{
  "modCount": 123,
  "modValue": 123,
  "month": 987,
  "reportType": "UNIQUE_DOWNLOADS",
  "value": 987,
  "year": 987
}

UserPage

Fields
Field Name Description
facets - [NodesFacet!] Facets available, if supported for this query and requested.
facetsData - JSON Facets available, if supported for this query and requested. Schema is {"facetName":{"facetValue":count}}
nodes - [User!]! Nodes for pagination
nodesCount - Int! Number of nodes returned by this query
nodesFacets - [NodesFacet!] Facets available, if supported for this query and requested.
nodesFilter - String String representation of the filter query used to locate the nodes.
totalCount - Int! Total number of collections found.
Example
{
  "facets": [NodesFacet],
  "facetsData": {},
  "nodes": [User],
  "nodesCount": 987,
  "nodesFacets": [NodesFacet],
  "nodesFilter": "abc123",
  "totalCount": 123
}

UsersSearchFilter

Description

Filter fields specific to a Users query

Fields
Input Field Description
filter - [UsersSearchFilter!] Nested filters.
op - FilterLogicalOperator Logical operator for clauses.
nameExact - [BaseFilterValueEqualsMatches!] Username.
nameWildcard - [BaseFilterValue!] Username.
Example
{
  "filter": [UsersSearchFilter],
  "op": "AND",
  "nameExact": [BaseFilterValueEqualsMatches],
  "nameWildcard": [BaseFilterValue]
}

UsersSearchSort

Description

Sort fields specific to a Users query.

Fields
Input Field Description
relevance - BaseSortValue Filter query relevance, works best with non wildcard queries.
name - BaseSortValue username
Example
{
  "relevance": BaseSortValue,
  "name": BaseSortValue
}

Video

Description

A video

Fields
Field Name Description
allowComments - Boolean Whether comments are allowed on the video.
allowRating - Boolean Whether ratings are allowed on the video.
category - VideoCategory! An video category
createdAt - DateTime! Time of when this video was first created.
description - String The description of the video.
game - Game! Game this video belongs to
id - ID! ID of the object.
link - String! The URL of the video.
mediaStatus - MediaStatus! Status of this video
owner - User! Uploader of this video
rating - Int! The rating of the video.
siteUrl - String! URL of the site this video is hosted on
thumbnailUrl - String! The URL of the video thumbnail.
title - String The title of the video.
viewerBlocked - Boolean! True if the viewer (current user) has blocked this video's author
views - Int! The number of views the video has.
Example
{
  "allowComments": true,
  "allowRating": true,
  "category": VideoCategory,
  "createdAt": "2007-12-03T10:15:30Z",
  "description": "xyz789",
  "game": Game,
  "id": 4,
  "link": "xyz789",
  "mediaStatus": "published",
  "owner": User,
  "rating": 123,
  "siteUrl": "xyz789",
  "thumbnailUrl": "abc123",
  "title": "xyz789",
  "viewerBlocked": false,
  "views": 987
}

VideoCategory

Description

An video category

Fields
Field Name Description
date - Int Unix timestamp of category creation
id - ID! The database ID for this video category.
name - String! Name of this category
Example
{
  "date": 987,
  "id": "4",
  "name": "abc123"
}

VirusScanStatus

Description

Records the outcome of the virus scan for a mod file.

Values
Enum Value Description

NOT_SCANNED

QUEUED

WAITING_REPORT

VERIFIED

INTERNALLY_VERIFIED

QUARANTINED

MANUALLY_VERIFIED

MOD_DOES_NOT_EXIST

FILE_NOT_FOUND

REPORT_ERROR

TOO_LARGE

Example
"NOT_SCANNED"

WalletList

Description

A list of wallets. Users must have admin access.

Fields
Field Name Description
filteredCount - Int! Number of wallets being filtered
totalCount - Int! Total number of wallets in the system
Example
{"filteredCount": 123, "totalCount": 123}

WriteFullPageNotificationToUserMutationPayload

Description

Autogenerated return type of WriteFullPageNotificationToUserMutation.

Fields
Field Name Description
success - Boolean Full page notification created successfully
Example
{"success": false}