> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nudj.cx/llms.txt
> Use this file to discover all available pages before exploring further.

# Get paginated achievements

> Retrieve a paginated list of achievements.



## OpenAPI

````yaml /openapi/admin.json get /achievements
openapi: 3.1.0
info:
  title: Nudj Admin API
  version: 1.0.0
servers:
  - url: https://{subdomain}.nudj.cx/api/v2/admin
    description: Organization API Server
    variables:
      subdomain:
        description: Your organization's subdomain (required)
        default: your-org
security:
  - ApiToken: []
paths:
  /achievements:
    get:
      tags:
        - Achievement
      summary: Get paginated achievements
      description: Retrieve a paginated list of achievements.
      operationId: getPaginatedAchievements
      parameters:
        - in: query
          name: limit
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 10
          required: false
        - in: query
          name: skip
          schema:
            type: integer
            minimum: 0
            default: 0
          required: false
        - in: query
          name: communityId
          schema:
            type: string
        - in: query
          name: search
          schema:
            type: string
        - in: header
          name: x-language
          description: >-
            The language to return the achievements in. If not provided, the
            default language for the organisation will be used.
          schema:
            type: string
            description: >-
              The language to return the achievements in. If not provided, the
              default language for the organisation will be used.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  totalCount:
                    type: number
                  edges:
                    type: array
                    items:
                      $ref: '#/components/schemas/Achievement'
                required:
                  - totalCount
                  - edges
        '400':
          description: Invalid input data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error.BAD_REQUEST'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error.NOT_FOUND'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR'
components:
  schemas:
    Achievement:
      type: object
      properties:
        id:
          type: string
          pattern: ^[0-9a-fA-F]{24}$
          description: The id of the achievement
        organisationId:
          type: string
          pattern: ^[0-9a-fA-F]{24}$
          description: The id of the organisation this achievement belongs to
        communityId:
          type:
            - string
            - 'null'
          pattern: ^[0-9a-fA-F]{24}$
          description: The id of the community this achievement belongs to
        details:
          $ref: '#/components/schemas/Details'
        progressPeriod:
          type: string
          enum:
            - daily
            - weekly
            - monthly
            - yearly
            - open
          description: The period over which progress is tracked/reset
        displayMode:
          type: string
          enum:
            - default
            - custom
          description: >-
            The display mode for the achievement. Useful to make the distinction
            between normal user achievments and achievments designed for
            implementing custom app functionality.
        tags:
          type: array
          items:
            type: string
            pattern: ^[0-9a-fA-F]{24}$
          description: The ids of the tags on the achievement
        campaigns:
          type: array
          items:
            type: string
            pattern: ^[0-9a-fA-F]{24}$
          description: The ids of the campaigns on the achievement
        criteria:
          $ref: '#/components/schemas/ConditionNode'
        queries:
          type: array
          items:
            $ref: '#/components/schemas/EventQueryNode'
          description: >-
            The event queries used to measure progress against this
            achievement's criteria
        queryDescriptions:
          type: object
          additionalProperties:
            type: string
          description: >-
            A map of query alias to user-readable descriptions, useful for
            displaying in the UI. Can be localised across additional languages.
        status:
          type: string
          enum:
            - archived
            - draft
            - expired
            - live
            - scheduled
          description: The status of the achievement
        featured:
          type:
            - boolean
            - 'null'
          description: Whether the achievement is featured
        availableAsTemplateForOrganisations:
          type: array
          items:
            type: string
            pattern: ^[0-9a-fA-F]{24}$
          description: >-
            The organisations that the achievement is available as a template
            for
        isGlobalTemplate:
          type: boolean
          description: Whether the achievement is a global template
        startsAt:
          type:
            - string
            - 'null'
          description: When this achievement becomes available to the user
        expiresAt:
          type:
            - string
            - 'null'
          description: When this achievement expires
        createdAt:
          type: string
          description: When this achievement was created
        updatedAt:
          type: string
          description: When this achievement was last updated
        rewardDistribution:
          oneOf:
            - $ref: '#/components/schemas/EntityRewardDistribution'
            - type: 'null'
          description: Reward distribution information for this achievement
        createdBy:
          type: string
          description: The admin user who created this achievement
        updatedBy:
          type: string
          description: The admin user who last updated this achievement
      required:
        - id
        - organisationId
        - details
        - progressPeriod
        - displayMode
        - tags
        - campaigns
        - criteria
        - queries
        - queryDescriptions
        - status
        - availableAsTemplateForOrganisations
        - isGlobalTemplate
        - createdAt
        - updatedAt
        - rewardDistribution
        - createdBy
        - updatedBy
      description: An achievement
      title: Achievement
    error.BAD_REQUEST:
      type: object
      properties:
        message:
          type: string
          description: The error message
          example: Invalid input data
        code:
          type: string
          description: The error code
          example: BAD_REQUEST
        issues:
          type: array
          items:
            type: object
            properties:
              message:
                type: string
            required:
              - message
          description: An array of issues that were responsible for the error
          example: []
      required:
        - message
        - code
      title: Error
      description: The error information
      example:
        code: BAD_REQUEST
        message: Invalid input data
        issues: []
    error.NOT_FOUND:
      type: object
      properties:
        message:
          type: string
          description: The error message
          example: Not found
        code:
          type: string
          description: The error code
          example: NOT_FOUND
        issues:
          type: array
          items:
            type: object
            properties:
              message:
                type: string
            required:
              - message
          description: An array of issues that were responsible for the error
          example: []
      required:
        - message
        - code
      title: Error
      description: The error information
      example:
        code: NOT_FOUND
        message: Not found
        issues: []
    error.INTERNAL_SERVER_ERROR:
      type: object
      properties:
        message:
          type: string
          description: The error message
          example: Internal server error
        code:
          type: string
          description: The error code
          example: INTERNAL_SERVER_ERROR
        issues:
          type: array
          items:
            type: object
            properties:
              message:
                type: string
            required:
              - message
          description: An array of issues that were responsible for the error
          example: []
      required:
        - message
        - code
      title: Error
      description: The error information
      example:
        code: INTERNAL_SERVER_ERROR
        message: Internal server error
        issues: []
    Details:
      type: object
      properties:
        title:
          type: string
          description: The title of the entity
        description:
          type:
            - string
            - 'null'
          description: The description of the entity
        light:
          type: object
          properties:
            primaryImageUrl:
              type:
                - string
                - 'null'
              description: The url of the primary image for this theme mode
            secondaryImageUrl:
              type:
                - string
                - 'null'
              description: The url of the secondary image for this theme mode
          required:
            - primaryImageUrl
            - secondaryImageUrl
          description: Light theme images
        dark:
          type: object
          properties:
            primaryImageUrl:
              type:
                - string
                - 'null'
              description: The url of the primary image for this theme mode
            secondaryImageUrl:
              type:
                - string
                - 'null'
              description: The url of the secondary image for this theme mode
          required:
            - primaryImageUrl
            - secondaryImageUrl
          description: Dark theme images
      required:
        - title
        - description
        - light
        - dark
      description: Used to describe an entity
      title: Details
    ConditionNode:
      anyOf:
        - $ref: '#/components/schemas/SumConditionNode'
        - $ref: '#/components/schemas/CountConditionNode'
        - $ref: '#/components/schemas/LogicalConditionNode'
      description: >-
        This represents a condition that must be met by a user for the
        achievement to be completed
      title: Condition Node
    EventQueryNode:
      type: object
      properties:
        type:
          type: string
          const: event
          description: >-
            Identifies this node as an EventQueryNode type, which defines
            criteria for selecting events to be evaluated
        alias:
          type: string
          description: >-
            A unique identifier for this query that can be referenced by
            condition nodes. This allows the same event query to be reused
            across multiple conditions.
        parameters:
          $ref: '#/components/schemas/EventQueryNodeParameters'
        isCommunityScoped:
          type:
            - boolean
            - 'null'
          default: true
          description: >-
            Controls whether the query should only match events within the
            achievement's community context. When true (default), only
            community-specific events are included.
      required:
        - type
        - alias
        - parameters
      description: >-
        Node that defines a reusable query for filtering and selecting events to
        be evaluated by condition nodes
      title: Event Query Node
    EntityRewardDistribution:
      type: object
      properties:
        points:
          type: number
          minimum: 0
          description: Number of points awarded upon completion
        xp:
          type: number
          minimum: 0
          description: XP awarded upon completion
        rewardSelectionMethod:
          type: string
          enum:
            - all
            - priority
            - random
            - select
          description: Method for selecting rewards when multiple are available
        distributionEventId:
          type: string
          pattern: ^[0-9a-fA-F]{24}$
          description: ID of the distribution event managing these rewards
        rewardAllocations:
          type: array
          items:
            $ref: '#/components/schemas/RewardAllocationReference'
          description: >-
            Array of reward allocations with their types. Filter by
            allocationType to get counts: assets for tangible rewards, entries
            for giveaway entries
        numberOfRewardsToReceive:
          type: number
          minimum: 0
          description: Number of rewards the user will receive from the available rewards
      required:
        - points
        - xp
        - rewardSelectionMethod
        - distributionEventId
        - rewardAllocations
        - numberOfRewardsToReceive
      description: >-
        Reward distribution for a single entity with distribution event
        reference
      title: Entity Reward Distribution
    SumConditionNode:
      type: object
      properties:
        type:
          type: string
          const: sum
          description: >-
            Identifies this node as a SumNode type, which is responsible for
            summing numeric attributes from events and comparing against a
            threshold
        parameters:
          $ref: '#/components/schemas/SumConditionNodeParameters'
      required:
        - type
        - parameters
      description: >-
        Node that sums values from a specific event attribute and compares
        against a threshold
      title: Sum Condition Node
    CountConditionNode:
      type: object
      properties:
        type:
          type: string
          const: count
          description: >-
            Identifies this node as a CountNode type, which is responsible for
            counting occurrences of events and comparing against a threshold
        parameters:
          $ref: '#/components/schemas/CountConditionNodeParameters'
      required:
        - type
        - parameters
      description: Node that counts matching events and compares against a threshold
      title: Count Condition Node
    LogicalConditionNode:
      type: object
      properties:
        type:
          type: string
          const: logical
          description: >-
            Identifies this node as a LogicalNode type, which combines multiple
            conditions using logical operators
        parameters:
          $ref: '#/components/schemas/LogicalConditionNodeParameters'
      required:
        - type
        - parameters
      description: >-
        Node that combines multiple conditions with a logical operator to form
        complex achievement criteria
      title: Logical Condition Node
    EventQueryNodeParameters:
      type: object
      properties:
        eventName:
          type: string
          description: >-
            The specific name of the event to match. This identifies the type of
            event that should be included in the achievement progress. When
            using a custom event, this should be the name of the event. When
            using a non-custom event, this should be the name of the event
            category and sub-category concatenated with an underscore.
        eventCategory:
          type: string
          enum:
            - achievement
            - action
            - auth
            - blog
            - challenge
            - community
            - custom
            - game
            - leaderboard
            - organisation
            - points
            - post
            - referral
            - reward
            - shop
            - social
            - social-connection
            - streak
            - user
            - variable
            - xp
          description: >-
            The category of events to match. This helps filter events by their
            broad classification within the system.
        eventSubCategory:
          type: string
          enum:
            - achievement-completion
            - facebook-comment
            - facebook-follow
            - facebook-like
            - image-analysis-object-detection
            - image-analysis-receipt-detection
            - instagram-follow
            - instagram-like
            - instagram-comment
            - instagram-share
            - instagram-post
            - interaction-engage-with-content
            - interaction-external-link
            - interaction-image-upload
            - interaction-spot-object
            - platform-comment-on-post
            - platform-complete-achievement
            - platform-generative-action
            - platform-like-post
            - platform-play-game
            - platform-validate-event
            - question-multiple-choice
            - question-open-ended
            - question-rate-your-experience
            - question-secret-access-code
            - question-select-date
            - question-select-from-images
            - question-select-value-in-range
            - question-select-from-list
            - question-closed-ended
            - question-vote
            - spotify-follow
            - spotify-listen
            - spotify-save
            - tiktok-follow
            - tiktok-watch
            - tiktok-post
            - youtube-like
            - youtube-comment
            - youtube-subscribe
            - action-completion
            - skip-action
            - 42-school
            - api-auth-link
            - api-token-link
            - apple
            - asgardeo
            - atlassian
            - auth0
            - authentik
            - azure-ad-b2c
            - azure-ad
            - azure-devops
            - battlenet
            - beyondidentity
            - box
            - boxyhq-saml
            - bungie
            - click-up
            - cognito
            - coinbase
            - descope
            - discord
            - dribbble
            - dropbox
            - duende-identity-server6
            - email
            - eveonline
            - facebook
            - faceit
            - foursquare
            - freshbooks
            - fusionauth
            - github
            - gitlab
            - google
            - hubspot
            - identity-server4
            - instagram
            - kakao
            - keycloak
            - line
            - linkedin
            - mailchimp
            - mailru
            - mastodon
            - mattermost
            - medium
            - naver
            - netlify
            - notion
            - okta
            - onelogin
            - organisation-oidc
            - osso
            - osu
            - passage
            - patreon
            - pinterest
            - pipedrive
            - reddit
            - salesforce
            - slack
            - spotify
            - strava
            - tiktok
            - todoist
            - trakt
            - twitch
            - twitter
            - united-effects
            - vk
            - wikimedia
            - wordpress
            - workos
            - yandex
            - youtube
            - zitadel
            - zoho
            - zoom
            - blog-comment
            - blog-like
            - blog-share
            - blog-view
            - challenge-started
            - challenge-completion
            - challenge-unlock
            - community-visit
            - parental-approval-requested
            - parental-approval-approved
            - parental-approval-rejected
            - custom
            - game-started
            - game-completed
            - leaderboard-finish
            - invite-admin-user
            - points-credit
            - points-spend
            - post-comment
            - post-like
            - post-view
            - reward-redemption
            - reward-allocation-purchase
            - reward-giveaway-winner
            - reward-claim
            - reward-distribution
            - manual-distribution
            - referral-link-used
            - shop-purchase
            - share-challenge-details
            - share-challenge-results
            - share-community
            - share-reward
            - share-post
            - share-profile
            - share-anything
            - streak-extended
            - profile-picture-added
            - bio-added
            - variable-captured
            - xp-gained
            - xp-total
            - xp-leaderboard-topper
          description: >-
            The sub-category of events to match. This provides more granular
            filtering within the selected event category.
        eventSourceId:
          type:
            - string
            - 'null'
          description: >-
            Optional identifier for the source of the events. When specified,
            only events from this source will count towards the achievement
            progress. For example, a challengeId, or another achievementId
        tags:
          type:
            - array
            - 'null'
          items:
            type: string
            pattern: ^[0-9a-fA-F]{24}$
          description: >-
            Optional array of tag ids to filter events by. Only events with all
            specified tags will count towards the achievement progress.
      required:
        - eventName
        - eventCategory
        - eventSubCategory
      description: Parameters that define the criteria for matching and filtering events
      title: Event Query Node Parameters
    RewardAllocationReference:
      type: object
      properties:
        rewardId:
          type: string
          pattern: ^[0-9a-fA-F]{24}$
          description: ID of the reward
        allocationId:
          type: string
          pattern: ^[0-9a-fA-F]{24}$
          description: ID of the specific allocation within the reward
        allocationType:
          type: string
          enum:
            - assets
            - entries
          description: >-
            The type of allocation - either 'assets' for tangible rewards or
            'entries' for giveaway entries
        amountToDistribute:
          type: number
          minimum: 1
          description: >-
            The quantity of this specific reward to distribute when this
            allocation is selected
      required:
        - rewardId
        - allocationId
        - allocationType
        - amountToDistribute
      description: Reference to a specific reward and its allocation
      title: Reward Allocation Reference
    SumConditionNodeParameters:
      type: object
      properties:
        query:
          type: string
          description: >-
            Reference to the query alias that identifies which events should be
            included in the sum. This query must be defined in an EventQueryNode
            within the achievement's criteria array.
        operator:
          type: string
          enum:
            - '=='
            - '!='
            - '>'
            - <
            - '>='
            - <=
          description: >-
            Comparison operator that defines how to compare the summed value
            against the threshold value. For example, 'GreaterThan' would check
            if the sum exceeds the threshold.
        attribute:
          type: string
          minLength: 1
          description: >-
            The specific event attribute whose values should be summed. This
            must be a numeric attribute present in the matched events.
        value:
          type: number
          description: >-
            The threshold value to compare the sum against. This represents the
            target number that the summed values will be compared to using the
            specified operator.
      required:
        - query
        - operator
        - attribute
        - value
      description: >-
        Parameters for a sum condition node that define the attribute summation
        logic and threshold comparison
      title: Sum Condition Node Parameters
    CountConditionNodeParameters:
      type: object
      properties:
        query:
          type: string
          description: >-
            Reference to the query alias that identifies which events should be
            counted. This query must be defined in an EventQueryNode within the
            achievement's criteria array.
        operator:
          type: string
          enum:
            - '=='
            - '!='
            - '>'
            - <
            - '>='
            - <=
          description: >-
            Comparison operator that defines how to compare the counted events
            against the threshold value. For example, 'GreaterThan' would check
            if the count exceeds the threshold.
        value:
          type: number
          description: >-
            The threshold value to compare the count against. This represents
            the target number that the counted events will be compared to using
            the specified operator.
      required:
        - query
        - operator
        - value
      description: >-
        Parameters for a count condition node that define the counting logic and
        threshold comparison
      title: Count Condition Node Parameters
    LogicalConditionNodeParameters:
      type: object
      properties:
        operator:
          type: string
          enum:
            - and
            - or
          description: >-
            The logical operator to apply to the conditions. AND requires all
            conditions to be true, OR requires at least one condition to be
            true.
        conditions:
          type: array
          items:
            anyOf:
              - $ref: '#/components/schemas/SumConditionNode'
              - $ref: '#/components/schemas/CountConditionNode'
              - $ref: '#/components/schemas/LogicalConditionNode'
          description: >-
            Array of condition nodes to be combined using the logical operator.
            Can include other logical nodes for nested conditions.
      required:
        - operator
        - conditions
      description: >-
        Parameters for a logical condition node that define how multiple
        conditions should be combined
      title: Logical Condition Node Parameters
  securitySchemes:
    ApiToken:
      type: apiKey
      in: header
      name: x-api-token

````