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

# Get Processing status and progress data for a specific user on loyalty rules

> This will return the processing status of quests for a specific user and also the progress of the loyalty rule



## OpenAPI

````yaml /api-reference/openapi.documented.json get /api/loyalty/rules/status
openapi: 3.0.2
info:
  title: Snag Solutions - API Docs
  description: >-
    Documentation for Loyalty & Socials APIs. Some endpoints require an API key
    to authenticate. To obtain a key, reach out to the Snag Solutions team at
    support@snagsolutions.io.
  version: '0.1'
servers:
  - url: https://admin.snagsolutions.io/
    description: Production
security: []
paths:
  /api/loyalty/rules/status:
    get:
      tags:
        - Loyalty
      summary: >-
        Get Processing status and progress data for a specific user on loyalty
        rules
      description: >-
        This will return the processing status of quests for a specific user and
        also the progress of the loyalty rule
      parameters:
        - name: websiteId
          in: query
          schema:
            type: string
            format: uuid
        - name: organizationId
          in: query
          schema:
            type: string
            format: uuid
        - name: userId
          in: query
          schema:
            type: string
            format: uuid
        - name: userGroupId
          in: query
          schema:
            type: string
            format: uuid
        - name: loyaltyRuleId
          in: query
          description: Unique identifier for the loyalty rule[s]
          schema:
            oneOf:
              - type: string
                format: uuid
              - type: array
                items:
                  type: string
                  format: uuid
                minItems: 1
                maxItems: 100
            title: Loyalty Rule ID
            example: 123e4567-e89b-12d3-a456-426614174030
        - name: walletAddress
          in: query
          schema:
            type: string
        - name: limit
          in: query
          description: Number of items to return
          schema:
            default: 10
            type: number
            maximum: 100
            nullable: true
            title: Limit
            example: 10
        - name: startingAfter
          in: query
          description: Starting after item
          schema:
            type: string
            title: Starting After
            example: 123e4567-e89b-12d3-a456-426614174001
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        loyaltyRuleId:
                          type: string
                          format: uuid
                        userId:
                          type: string
                          format: uuid
                        status:
                          type: string
                          enum:
                            - pending
                            - processing
                            - completed
                            - failed
                          title: Queued job status
                          description: >-
                            Status of the queued job, this is only returned if
                            the job is queued and being processed, this wil be
                            retained for 10 minutes after the job is completed
                          example: pending
                        message:
                          type: string
                          title: Human-readable status message
                          description: >-
                            Categorized examples of messages that may be
                            returned for a loyalty rule's processing result.


                            User Onboarding

                            - Check In: "Streak successful"

                            - Complete Profile Details: "Profile not complete"


                            Connect Accounts

                            - Connect TikTok: "TikTok not connected"

                            - Connect Discord: "Discord not connected", "Discord
                            request timeout"

                            - Connect X: "Twitter not connected", "Twitter not
                            connected or content url is required"

                            - Connect Email: "Email address not connected"

                            - Connect Telegram: "Telegram not connected", "user
                            has not setup telegram (no telegramUsername), please
                            setup username in telegram and reconnect.",
                            "Telegram request rate-limited"

                            - Connect Steam: "Steam not connected"

                            - Connect Youtube: "Youtube not connected"

                                  Social Quests
                            - Join Telegram Group: "Telegram Channel not
                            joined", "Telegram Channel joined successfully"

                            - Post on TikTok: "TikTok post not verified"

                            - Comment on an X Post: "Quest Completed: You have
                            commented on the tweet", "Quest Not Completed:
                            Comment not found for the specified tweet"

                            - Repost an X Post: "Quest Completed: You have
                            retweeted the tweet", "Quest Not Completed: Retweet
                            not found for the specified tweet", "Quest
                            Completed: You have retweeted and commented on the
                            tweet", "Quest Not Completed: You have not retweeted
                            or commented on the tweet"

                            - Follow an X Account: "Missing required parameters:
                            twitterUserId, targetUsername", "Quest Completed:
                            You are a follower of @${targetUsername}", "Quest
                            Not Completed: Please follow @${targetUsername} and
                            try again in few minutes"

                            - React to an X Post: "Missing required parameters:
                            texts, twitterUserId, userTweetId", "No text
                            provided", "Quest Completed: You have posted
                            {tweetId} a tweet with the text {text}", "Quest Not
                            Completed: Your all previous {COUNT} posts are
                            already claimed. Please post a new tweet and try
                            again in a few minutes.", "Tweet is already
                            claimed", "Tweet does not belong to the user", "Text
                            not found in tweet", "Tweet is before the quest
                            start time", "Tweet does not have media", "Text
                            found in tweet"

                            - Add Text to X Bio: "Missing required parameters:
                            texts, twitterUserId", "User not found", "Text found
                            in bio", "Text not found in bio"

                            - Add Text to X Username: "Missing required
                            parameters: texts, twitterUserId", "User not found",
                            "Text found in username", "Text not found in
                            username"

                            - Comment on an X Post with Text: "Missing required
                            parameters: texts, twitterUserId", "Comment is
                            already claimed", "Text found in comment", "Text not
                            found in comment", "Tweet not found or could not be
                            retrieved"

                            - Comment on a YouTube Video: "Youtube comment
                            added", "Youtube comment not added"

                            - Subscribe to a YouTube Channel: "Youtube channel
                            subscribed", "Quest failed, please make sure you
                            have made your subscriptions public in youtube"

                            - Get X post impressions: "You've already claimed
                            the reward for this impression range."

                            - Add an Item to Steam Wishlist: "Steam Wishlist
                            item added", "Steam Wishlist item not added"


                            Complex Onchain Logic

                            - Token Swap: "Swap rewards calculated
                            successfully", "Swap rule failed"


                            Other

                            - Answer a Quiz: "Quiz question not configured", "No
                            question response found", "Incorrect answer",
                            "Correct answer"

                            - Answer a Poll: "Poll question not configured",
                            "Poll response recorded"

                            - Spend in Shopify Store: "Shopify not connected"

                            - Points Airdrop: "Seems like you're not eligible
                            for this points airdrop."

                                  General
                            - "Quest already completed"

                            - "Quest already completed using the same social
                            account (${socialAccountName}), with the different
                            user."

                            - "You've already claimed the reward for this
                            quest."

                            - "Quest not achieved, please try again."

                            - "Rule is not setup"

                            - "Request aborted due to timeout"

                            - "Google account not connected"

                            - "Claim failed: Multiplier is already active"
                        id:
                          type: string
                          format: uuid
                          title: Loyalty Rule Status ID for Progress object
                          description: >-
                            The ID of the loyalty rule status for the Progress
                            object
                        websiteId:
                          type: string
                          format: uuid
                        organizationId:
                          type: string
                          format: uuid
                        progress:
                          type: number
                          title: Progress
                          description: The progress of the loyalty rule from 0 to 100
                          example: 50
                        createdAt:
                          type: string
                          format: date-time
                        updatedAt:
                          type: string
                          format: date-time
                        fulfilledAt:
                          type: string
                          format: date-time
                          nullable: true
                      required:
                        - loyaltyRuleId
                        - userId
                required:
                  - data
        '400':
          description: '400'
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    title: Message
                    description: Error message
                    example: Request body is invalid
                required:
                  - message
                title: Bad Request Response
                description: Schema for bad request response
        '404':
          description: '404'
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    title: Message
                    description: Error message
                    example: Not found
                required:
                  - message
                title: Not Found Response
                description: Schema for not found response
        '405':
          description: '405'
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    title: Message
                    description: Error message
                    example: Forbidden, Could not validate api key
                required:
                  - message
                title: Forbidden Response
                description: Schema for forbidden response
                example: Forbidden, Could not validate api key
        '429':
          description: '429'
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    title: Message
                    description: Error message
                    example: Too many requests
                required:
                  - message
                title: Too Many Request Response
                description: Schema for too many request response
        '500':
          description: '500'
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    title: Success
                    description: Indicates operation success
                    example: false
                  message:
                    type: string
                    title: Message
                    description: Error message
                    example: Internal server error
                  debugInfo:
                    type: string
                    title: Debug Info
                    description: Optional debug information
                    example: Stack trace or additional error details
                required:
                  - success
                  - message
                title: Internal Server Error Response
                description: Schema for internal server error response
      security:
        - apiKeyAuth: []
components:
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: X-API-KEY

````