> ## 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.

# Restore Loyalty Rule Edit

> Restore a loyalty rule from a rule edit



## OpenAPI

````yaml /api-reference/openapi.documented.json post /api/loyalty/rule_edits/{id}/restore
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/rule_edits/{id}/restore:
    post:
      tags:
        - Loyalty
      summary: Restore Loyalty Rule Edit
      description: Restore a loyalty rule from a rule edit
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        description: Body
        content:
          application/json:
            schema:
              type: object
              properties: {}
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                    required:
                      - id
                  - type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                        title: ID
                        description: Unique identifier for the rule edit
                        example: 123e4567-e89b-12d3-a456-426614174000
                      loyaltyRuleId:
                        type: string
                        format: uuid
                        title: Loyalty Rule ID
                        description: ID of the loyalty rule
                        example: 123e4567-e89b-12d3-a456-426614174001
                      websiteId:
                        type: string
                        format: uuid
                        title: Website ID
                        description: Unique identifier for the website
                        example: 123e4567-e89b-12d3-a456-426614174002
                      organizationId:
                        type: string
                        format: uuid
                        title: Organization ID
                        description: Unique identifier for the organization
                        example: 123e4567-e89b-12d3-a456-426614174003
                      editedByUserId:
                        type: string
                        format: uuid
                        title: Edited By User ID
                        description: User ID of the user who made the edit
                        example: 123e4567-e89b-12d3-a456-426614174004
                      editedAt:
                        type: string
                        format: date-time
                        title: Edited At
                        description: Timestamp of when the rule edit was made
                        example: '2021-08-30T20:00:00Z'
                      action:
                        type: string
                        enum:
                          - create
                          - update
                          - delete
                          - restore
                        title: Action
                        description: Type of action that was made on the rule
                        example: create
                      data:
                        type: object
                        properties:
                          id:
                            type: string
                            format: uuid
                            title: ID
                            description: Unique identifier for the loyalty rule
                            example: 123e4567-e89b-12d3-a456-426614174000
                          name:
                            type: string
                            title: Name
                            description: Name of the loyalty rule
                            example: Loyalty Rule
                          description:
                            type: string
                            title: Description
                            description: Description of the loyalty rule
                            example: Loyalty Rule Description
                          endTime:
                            type: string
                            nullable: true
                            title: End Time
                            description: End time of the loyalty rule
                            example: '2023-10-01T12:34:56Z'
                          startTime:
                            type: string
                            nullable: true
                            title: Start Time
                            description: Start time of the loyalty rule
                            example: '2023-10-01T12:34:56Z'
                          rewardType:
                            type: string
                            enum:
                              - points
                              - multiplier
                              - badge
                              - token
                            title: Reward Type
                            description: Type of the reward
                            example: points
                          organizationId:
                            type: string
                            format: uuid
                            title: Organization ID
                            description: Unique identifier for the organization
                            example: 123e4567-e89b-12d3-a456-426614174001
                          websiteId:
                            type: string
                            format: uuid
                            title: Website ID
                            description: Unique identifier for the website
                            example: 123e4567-e89b-12d3-a456-426614174002
                          collectionAddress:
                            type: string
                            title: Collection Address
                            description: Optional address of the collection
                            example: '0x1234567890abcdef1234567890abcdef12345678'
                          type:
                            type: string
                            title: Type
                            description: Type of the loyalty rule
                            example: purchase
                          frequency:
                            type: string
                            title: Frequency
                            description: Frequency of the loyalty rule
                            example: daily
                          amount:
                            type: number
                            nullable: true
                            title: Amount
                            description: Amount associated with the loyalty rule
                            example: 10
                          createdAt:
                            type: string
                            format: date-time
                            title: Created At
                            description: Timestamp when the loyalty rule was created
                            example: '2023-10-01T12:34:56Z'
                          updatedAt:
                            type: string
                            format: date-time
                            title: Updated At
                            description: Timestamp when the loyalty rule was last updated
                            example: '2023-10-05T15:30:00Z'
                          deletedAt:
                            type: string
                            format: date-time
                            nullable: true
                            title: Deleted At
                            description: >-
                              Timestamp when the loyalty rule was deleted (if
                              applicable)
                            example: null
                          mediaUrl:
                            type: string
                            nullable: true
                            title: Media URL
                            description: URL of the media associated with the loyalty rule
                            example: https://assets.snagsolutions.io/media.png
                          metadata:
                            type: object
                            additionalProperties:
                              type: object
                              properties:
                                isCheckInOnEveryTxn:
                                  type: boolean
                                  title: Count any rule completion as check-in
                                  description: >-
                                    If enabled, the first transaction done on
                                    the platform will complete this rule
                                  example: true
                                hasPaidFullRoyalty:
                                  type: boolean
                                  title: Has Paid Full Royalty
                                  description: >-
                                    Indicates if the full royalty has been paid
                                    for items.
                                  example: false
                                royaltyAddress:
                                  type: string
                                  title: Wallet Address
                                  description: >-
                                    Wallet address of the user can only be used
                                    if userId is not provided
                                  example: '0x1234567890abcdef1234567890abcdef12345678'
                                royaltyPercentage:
                                  type: number
                                  minimum: 1
                                  maximum: 100
                                  title: Royalty Percentage
                                  description: Royalty percentage of the item.
                                  example: 5
                                hasVerifiedTwitter:
                                  type: boolean
                                  title: Has Verified Twitter
                                  description: >-
                                    Indicates if the user has a verified Twitter
                                    account.
                                  example: true
                                onlyRewardExistingUser:
                                  type: boolean
                                  title: Only Reward Existing User
                                  description: >-
                                    Indicates if only existing users are
                                    rewarded.
                                  example: true
                                hasNeverSold:
                                  type: boolean
                                  title: Has Never Sold
                                  description: Indicates if the item has never been sold.
                                  example: false
                                onlyNative:
                                  type: boolean
                                  title: Only Native
                                  description: >-
                                    Flag indicating whether to include only
                                    native tokens.
                                  example: true
                                hasFillSource:
                                  type: boolean
                                  title: Has Fill Source
                                  description: >-
                                    Flag indicating whether the fill source is
                                    included.
                                  example: true
                                fillSource:
                                  type: string
                                  title: Fill Source
                                  description: Fill source of the order for the token sale
                                  example: opensea.io
                                liquidity:
                                  type: object
                                  properties:
                                    network:
                                      type: string
                                      enum:
                                        - abstract
                                        - abstractTestnet
                                        - apechain
                                        - arbitrum
                                        - avalanche
                                        - avalancheFuji
                                        - base
                                        - baseSepolia
                                        - berachain
                                        - berachainArtio
                                        - berachainBepolia
                                        - binance
                                        - bscTestnet
                                        - campTestnet
                                        - fantom
                                        - fantomTestnet
                                        - flowMainnet
                                        - mainnet
                                        - nexus
                                        - nexusTestnet
                                        - optimism
                                        - polygon
                                        - polygon_mumbai
                                        - skaleNebula
                                        - skaleEuropa
                                        - skaleCalypso
                                        - solana
                                        - sophon
                                        - sophonTestnet
                                        - sui
                                        - superseed
                                        - superseedSepolia
                                        - vanar
                                        - xai
                                        - zksync
                                        - coti
                                        - cotiTestnet
                                        - dogeosTestnet
                                        - morph
                                        - morphTestnet
                                        - morphHolesky
                                        - ultra
                                        - ultraTestnet
                                        - nitrograph
                                        - sepolia
                                        - optimism_sepolia
                                        - arbitrumSepolia
                                        - goerli
                                        - optimism_goerli
                                        - arbitrumGoerli
                                        - basecamp
                                        - somnia
                                        - zkverify
                                        - polkadot
                                        - kusama
                                        - horizen
                                        - horizenTestnet
                                        - flow_cadence
                                      title: Network
                                      description: >-
                                        Blockchain network of the liquidity
                                        pool.
                                      example: mainnet
                                    protocol:
                                      type: string
                                      title: Protocol
                                      description: Protocol of the liquidity pool.
                                      example: Uniswap V2
                                    onlyRewardInRangeLiquidity:
                                      type: boolean
                                      title: Only Reward In-Range Liquidity
                                      description: >-
                                        Indicates if only in-range liquidity is
                                        rewarded.
                                      example: true
                                    liquidityPerDay:
                                      type: number
                                      title: Liquidity Per Day
                                      description: Liquidity provided per day in USD
                                      example: 1000
                                    customFunction:
                                      type: string
                                      title: Custom Function
                                      description: >-
                                        Custom function to calculate the the
                                        reward amount based on the liquidity
                                        provided per day. X is the reward
                                        amount, Y is the liquidity provided per
                                        day in USD.
                                      example: x = y * 1000
                                    calculationType:
                                      type: string
                                      enum:
                                        - fixed
                                        - custom
                                      title: Calculation Type
                                      description: Calculation type of the liquidity pool.
                                      example: fixed
                                    pools:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          id:
                                            type: string
                                            title: Liquidity Pool ID
                                            description: Unique identifier of the liquidity pool.
                                            example: '0xabcdefabcdefabcdefabcdefabcdefabcdef'
                                        required:
                                          - id
                                      maxItems: 20
                                      title: Liquidity Pools
                                      description: >-
                                        Array of liquidity pools associated with
                                        the rule.
                                  title: Liquidity
                                  description: Liquidity pool details.
                                twitterUsername:
                                  type: string
                                  title: Twitter Username
                                  description: Twitter username of the user.
                                  example: '@example_user'
                                twitterUserId:
                                  type: string
                                  title: Twitter User ID
                                  description: Unique identifier of the Twitter user.
                                  example: '1234567890'
                                twitterHashtag:
                                  type: string
                                  title: Twitter Hashtag
                                  description: Hashtag associated with the Twitter post.
                                  example: '#loyalty'
                                enableVerifiedMultiplier:
                                  type: boolean
                                  title: Enable Verified Multiplier
                                  description: >-
                                    Flag indicating whether the verified
                                    multiplier is enabled.
                                  example: true
                                verifiedMultiplier:
                                  type: number
                                  nullable: true
                                  title: Verified Multiplier
                                  description: >-
                                    Multiplier applied to rewards for verified
                                    users.
                                  example: 1.5
                                isMultiplierApplied:
                                  type: boolean
                                  title: Is Multiplier Applied
                                  description: >-
                                    Indicates if the multiplier has been applied
                                    to rewards.
                                  example: true
                                onlyKnownUsers:
                                  type: boolean
                                  title: Only Known Users
                                  description: >-
                                    Flag indicating whether to include only
                                    known users.
                                  example: false
                                firstReferralReward:
                                  type: number
                                  nullable: true
                                  title: First Referral Reward
                                  description: >-
                                    Percentage reward given to a user for their
                                    first referral.
                                  example: 10
                                referrerReward:
                                  type: number
                                  nullable: true
                                  title: Referrer Reward
                                  description: Lump sum reward given to a referrer.
                                  example: 50
                                referrerRewardLoyaltyCurrencyId:
                                  type: string
                                  nullable: true
                                  title: Referrer Reward Loyalty Currency ID
                                  description: Loyalty currency ID of the referrer reward.
                                  example: '1234567890'
                                secondReferralReward:
                                  type: number
                                  nullable: true
                                  title: Second Referral Reward
                                  description: >-
                                    Percentage reward given for a second-level
                                    referral.
                                  example: 5
                                enableStreaks:
                                  type: boolean
                                  nullable: true
                                  title: Enable Streaks
                                  description: Flag indicating whether streaks are enabled.
                                  example: true
                                promoCode:
                                  type: string
                                  title: Promo Code
                                  description: Promotional code associated with the rule.
                                  example: PROMO123
                                promoCodeType:
                                  type: string
                                  enum:
                                    - code
                                    - csv
                                    - generate
                                  title: Promo Code Type
                                  description: Type of the promotional code.
                                  example: code
                                promoCodeLength:
                                  type: number
                                  nullable: true
                                  title: Promo Code Length
                                  description: >-
                                    Numbers of the promotional code to be
                                    generated.
                                  example: 10
                                promoCodeCsvUrl:
                                  type: string
                                  title: Promo Code CSV URL
                                  description: URL of the CSV file containing promo codes.
                                  example: https://example.com/promo_codes.csv
                                enableJoinDiscordServers:
                                  type: boolean
                                  nullable: true
                                  title: Enable Join Discord Servers
                                  description: >-
                                    Flag indicating whether joining Discord
                                    servers is required.
                                  example: true
                                discordServersToJoin:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      id:
                                        type: string
                                        title: Discord Server ID
                                        description: ID of the Discord server to join.
                                        example: '123456789012345678'
                                      channels:
                                        type: array
                                        items:
                                          type: object
                                          properties:
                                            id:
                                              type: string
                                              title: Channel ID
                                              description: ID of the Discord channel.
                                              example: '987654321098765432'
                                            text:
                                              type: string
                                              title: Text
                                              description: >-
                                                Phrase of text to be present in the
                                                discord message
                                              example: Hello
                                            emojis:
                                              type: array
                                              items:
                                                type: object
                                                properties:
                                                  id:
                                                    type: string
                                                    title: Emoji ID
                                                    description: ID of the emoji used in the channel.
                                                    example: 1f600
                                              title: Emojis
                                              description: Array of emojis used in the channel.
                                        title: Channels
                                        description: Array of Discord channels to join.
                                      roles:
                                        type: array
                                        items:
                                          type: object
                                          properties:
                                            id:
                                              type: string
                                              title: Role ID
                                              description: ID of the role in the Discord server.
                                              example: role123
                                          required:
                                            - id
                                        title: Roles
                                        description: >-
                                          Array of roles to assign in the Discord
                                          server.
                                  nullable: true
                                  title: Discord Servers to Join
                                  description: >-
                                    Array of Discord servers, channels, and
                                    roles to join.
                                streakArray:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      streakMilestone:
                                        type: number
                                        title: Streak Milestone
                                        description: >-
                                          Milestone required to achieve the
                                          streak.
                                        example: 5
                                      streakAmount:
                                        type: number
                                        title: Streak Amount
                                        description: >-
                                          Reward amount for achieving the streak
                                          milestone.
                                        example: 10
                                    required:
                                      - streakMilestone
                                      - streakAmount
                                  nullable: true
                                  title: Streak Array
                                  description: >-
                                    Array of streak milestones and corresponding
                                    rewards.
                                dripQuestsToComplete:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      id:
                                        type: string
                                        title: Drip Quest ID
                                        description: ID of the drip quest to complete.
                                        example: drip123
                                    required:
                                      - id
                                  nullable: true
                                  title: Drip Quests to Complete
                                  description: >-
                                    Array of drip quests required to complete
                                    the rule.
                                collection:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      address:
                                        type: string
                                        title: Collection Address
                                        description: Blockchain address of the collection.
                                        example: '0xabcdefabcdefabcdefabcdefabcdefabcdef'
                                      network:
                                        type: string
                                        enum:
                                          - abstract
                                          - abstractTestnet
                                          - apechain
                                          - arbitrum
                                          - avalanche
                                          - avalancheFuji
                                          - base
                                          - baseSepolia
                                          - berachain
                                          - berachainArtio
                                          - berachainBepolia
                                          - binance
                                          - bscTestnet
                                          - campTestnet
                                          - fantom
                                          - fantomTestnet
                                          - flowMainnet
                                          - mainnet
                                          - nexus
                                          - nexusTestnet
                                          - optimism
                                          - polygon
                                          - polygon_mumbai
                                          - skaleNebula
                                          - skaleEuropa
                                          - skaleCalypso
                                          - solana
                                          - sophon
                                          - sophonTestnet
                                          - sui
                                          - superseed
                                          - superseedSepolia
                                          - vanar
                                          - xai
                                          - zksync
                                          - coti
                                          - cotiTestnet
                                          - dogeosTestnet
                                          - morph
                                          - morphTestnet
                                          - morphHolesky
                                          - ultra
                                          - ultraTestnet
                                          - nitrograph
                                          - sepolia
                                          - optimism_sepolia
                                          - arbitrumSepolia
                                          - goerli
                                          - optimism_goerli
                                          - arbitrumGoerli
                                          - basecamp
                                          - somnia
                                          - zkverify
                                          - polkadot
                                          - kusama
                                          - horizen
                                          - horizenTestnet
                                          - flow_cadence
                                        title: Network
                                        description: Blockchain network of the collection.
                                        example: mainnet
                                      multiplier:
                                        type: number
                                        title: Multiplier
                                        description: >-
                                          Multiplier applied to the rewards for
                                          this collection.
                                        example: 2
                                  title: Collection
                                  description: >-
                                    Array of collections associated with the
                                    rule.
                                range:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      startRange:
                                        type: number
                                        title: Start Range
                                        description: Start value of the range.
                                        example: 1
                                      endRange:
                                        type: number
                                        title: End Range
                                        description: End value of the range.
                                        example: 10
                                      amount:
                                        oneOf:
                                          - type: number
                                          - type: string
                                        title: Amount
                                        description: Reward amount for this range.
                                        example: 5
                                      loyaltyBadgeId:
                                        type: string
                                        format: uuid
                                        title: Loyalty Badge ID
                                        description: ID of the loyalty badge for this range.
                                        example: badge123
                                      loyaltyMultiplierAmount:
                                        type: number
                                        title: Loyalty Multiplier Amount
                                        description: >-
                                          Amount of the loyalty multiplier for
                                          this range.
                                        example: 1.5
                                    required:
                                      - startRange
                                      - endRange
                                      - amount
                                  title: Range
                                  description: >-
                                    Array defining ranges and corresponding
                                    rewards.
                                customRewardsApiKey:
                                  type: string
                                  title: Custom Rewards API Key
                                  description: API key for custom rewards integration.
                                  example: api-key-1234
                                link:
                                  type: string
                                  nullable: true
                                  title: Link
                                  description: Optional link associated with the metadata.
                                  example: https://example.com
                                socialPlatform:
                                  type: string
                                  enum:
                                    - Custom
                                    - Discord
                                    - EpicGames
                                    - Instagram
                                    - Phone
                                    - Steam
                                    - Telegram
                                    - TikTok
                                    - Twitch
                                    - X(Twitter)
                                    - YouTube
                                    - Google
                                    - GitHub
                                    - Reddit
                                  nullable: true
                                  title: Social Platform
                                  description: >-
                                    Social media platform associated with the
                                    rule.
                                  example: X(Twitter)
                                socialPlatformName:
                                  type: string
                                  nullable: true
                                  title: Social Platform Name
                                  description: Name of the social platform.
                                  example: Twitter
                                socialPlatformLogo:
                                  type: string
                                  nullable: true
                                  title: Social Platform Logo
                                  description: URL of the social platform's logo.
                                  example: https://example.com/logo.png
                                rewardPerImpression:
                                  type: boolean
                                  nullable: true
                                  title: Reward Per Impression
                                  description: >-
                                    Flag indicating if rewards are given per
                                    impression.
                                  example: true
                                snapshotProposals:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      id:
                                        type: string
                                        title: Snapshot Proposal ID
                                        description: ID of the snapshot proposal.
                                        example: proposal123
                                      space:
                                        type: string
                                        title: Snapshot Proposal Space
                                        description: >-
                                          Space associated with the snapshot
                                          proposal.
                                        example: space123
                                    required:
                                      - id
                                      - space
                                  nullable: true
                                  title: Snapshot Proposals
                                  description: Array of snapshot proposals for the rule.
                                cta:
                                  type: object
                                  properties:
                                    label:
                                      type: string
                                      nullable: true
                                      title: CTA Label
                                      description: Label for the call-to-action.
                                      example: Click Here
                                    href:
                                      type: string
                                      nullable: true
                                      title: CTA Link
                                      description: Link for the call-to-action.
                                      example: https://example.com
                                  nullable: true
                                  title: Call-to-Action
                                  description: >-
                                    Object containing details for the
                                    call-to-action.
                                hasSaleCurrency:
                                  type: boolean
                                  title: Has Sale Currency
                                  description: >-
                                    Flag indicating if the sale currency is
                                    included.
                                  example: false
                                isTokenHoldMultiplier:
                                  type: boolean
                                  title: Is Token Hold Multiplier
                                  description: >-
                                    Flag indicating if the token hold multiplier
                                    is applied.
                                  example: true
                                saleCurrency:
                                  type: string
                                  title: Sale Currency
                                  description: Currency associated with sales.
                                  example: USD
                                isRetroactive:
                                  type: boolean
                                  nullable: true
                                  title: Is Retroactive
                                  description: >-
                                    Flag indicating if rewards are applied
                                    retroactively.
                                  example: true
                                timeDelayToVerifySeconds:
                                  oneOf:
                                    - type: string
                                    - type: number
                                  type: number
                                  nullable: true
                                  title: Time Delay to Verify
                                  description: Time delay in seconds to verify actions.
                                  example: 300
                                referralRequirements:
                                  type: object
                                  properties:
                                    points:
                                      type: object
                                      properties:
                                        amount:
                                          type: number
                                          nullable: true
                                          title: Points Amount
                                          description: Points required for referral.
                                          example: 50
                                        loyaltyCurrecyId:
                                          type: string
                                          nullable: true
                                          title: Loyalty Currency ID
                                          description: ID of the loyalty currency for referral.
                                          example: currency123
                                      nullable: true
                                    achievePoints:
                                      type: boolean
                                      nullable: true
                                      title: Achieve Points
                                      description: >-
                                        Flag indicating if achieving points is
                                        required.
                                      example: true
                                    completeProfile:
                                      type: boolean
                                      nullable: true
                                      title: Complete Profile
                                      description: >-
                                        Flag indicating if completing the
                                        profile is required.
                                      example: false
                                    connectTwitter:
                                      type: boolean
                                      nullable: true
                                      title: Connect Twitter
                                      description: >-
                                        Flag indicating if connecting Twitter is
                                        required.
                                      example: true
                                    connectDiscord:
                                      type: boolean
                                      nullable: true
                                      title: Connect Discord
                                      description: >-
                                        Flag indicating if connecting Discord is
                                        required.
                                      example: true
                                    connectEmail:
                                      type: boolean
                                      nullable: true
                                      title: Connect Email
                                      description: >-
                                        Flag indicating if connecting email is
                                        required.
                                      example: true
                                  nullable: true
                                  title: Referral Requirements
                                  description: Object defining referral requirements.
                                multiplierLoyaltyCurrencyIds:
                                  type: array
                                  items:
                                    type: string
                                  nullable: true
                                  title: Multiplier Loyalty Currency IDs
                                  description: >-
                                    Array of loyalty currency IDs used for
                                    multipliers.
                                  example:
                                    - currency123
                                    - currency456
                                verifyPlaceHolderText:
                                  type: string
                                  nullable: true
                                  title: Verification Placeholder Text
                                  description: >-
                                    Placeholder text for verification input
                                    fields.
                                  example: Enter your verification code here.
                                verificationTextMinimumLength:
                                  type: integer
                                  nullable: true
                                  title: Verification Text Minimum Length
                                  description: Minimum length of the verification text.
                                  example: 10
                                buttonText:
                                  type: string
                                  nullable: true
                                  title: Button Text
                                  description: Text displayed on the action button.
                                  example: Verify Now
                                telegramChannelId:
                                  type: string
                                  nullable: true
                                  title: Telegram Channel ID
                                  description: ID of the Telegram channel.
                                  example: telegram-channel-123
                                twitterAccountUrl:
                                  type: string
                                  title: Twitter Account URL
                                  description: URL of the associated Twitter account.
                                  example: https://twitter.com/example_user
                                twitterPostUrl:
                                  type: string
                                  title: Twitter Post URL
                                  description: URL of the associated Twitter post.
                                  example: >-
                                    https://twitter.com/example/status/1234567890
                                checkLike:
                                  type: boolean
                                  nullable: true
                                  title: Check Like
                                  description: >-
                                    Flag indicating if liking the post is
                                    required.
                                  example: true
                                checkRepost:
                                  type: boolean
                                  nullable: true
                                  title: Check Repost
                                  description: Flag indicating if reposting is required.
                                  example: true
                                checkComment:
                                  type: boolean
                                  nullable: true
                                  title: Check Comment
                                  description: Flag indicating if commenting is required.
                                  example: true
                                checkText:
                                  oneOf:
                                    - type: string
                                    - type: array
                                      items:
                                        type: string
                                  nullable: true
                                  title: Check Text
                                  description: >-
                                    Text to check in the Twitter post, username,
                                    or bio.
                                  example: loyalty
                                requirePostLink:
                                  type: boolean
                                  nullable: true
                                  title: Require Post Link
                                  description: >-
                                    Flag indicating if the post link is
                                    required.
                                  example: true
                                requirePostMediaLink:
                                  type: boolean
                                  nullable: true
                                  title: Require Post Media Link
                                  description: >-
                                    Flag indicating if media metadata is
                                    required.
                                  example: true
                                preGeneratedPostText:
                                  type: string
                                  nullable: true
                                  title: Pre Generated Post Text
                                  description: >-
                                    Pre-generated text template that will be
                                    used to prefill the post content.
                                  example: true
                                rewardCriteria:
                                  type: string
                                  enum:
                                    - IMPRESSIONS_COUNT
                                    - ELIGIBLE_POST
                                  nullable: true
                                  title: Reward Criteria
                                  description: Criteria to evaluate the reward.
                                  example: IMPRESSIONS_COUNT
                                smartContract:
                                  type: object
                                  properties:
                                    contractId:
                                      type: string
                                      nullable: true
                                      title: Smart Contract ID
                                      description: ID of the smart contract.
                                      example: 123e4567-e89b-12d3-a456-426614174000
                                    event:
                                      type: string
                                      nullable: true
                                      title: Smart Contract Event
                                      description: Event emitted by the smart contract.
                                      example: Transfer
                                    type:
                                      default: event
                                      type: string
                                      enum:
                                        - function
                                        - event
                                      nullable: true
                                      title: Smart Contract Type
                                      description: Type of the smart contract interaction.
                                      example: event
                                    criteria:
                                      type: string
                                      enum:
                                        - everyEvent
                                        - byParameter
                                      nullable: true
                                      title: Smart Contract Criteria
                                      description: >-
                                        Criteria to evaluate the smart contract
                                        event.
                                      example: everyEvent
                                    params:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          name:
                                            type: string
                                            nullable: true
                                            title: Parameter Name
                                            description: Name of the smart contract parameter.
                                            example: value
                                          condition:
                                            type: string
                                            nullable: true
                                            title: Parameter Condition
                                            description: Condition to check for the parameter.
                                            example: '>='
                                          value:
                                            type: string
                                            nullable: true
                                            title: Parameter Value
                                            description: Value of the parameter.
                                            example: '100'
                                      nullable: true
                                      title: Smart Contract Parameters
                                      description: >-
                                        Array of parameters for the smart
                                        contract.
                                    addressMapping:
                                      type: string
                                      nullable: true
                                      title: Address Mapping
                                      description: >-
                                        Mapping of addresses for the smart
                                        contract.
                                      example: 0x123...789
                                    amountMultiplier:
                                      type: object
                                      properties:
                                        valueMapping:
                                          type: string
                                          nullable: true
                                          title: Value Mapping
                                          description: >-
                                            Mapping of the value for the smart
                                            contract.
                                          example: amount
                                      nullable: true
                                      title: Amount Multiplier
                                      description: >-
                                        Object containing details of the amount
                                        multiplier from the event.
                                  title: Smart Contract
                                  description: >-
                                    Object containing details of the associated
                                    smart contract.
                                walletType:
                                  type: string
                                  enum:
                                    - evm
                                    - solana
                                    - imx
                                    - sui
                                    - ton
                                    - cosmos
                                    - ultra
                                    - agw
                                    - flow_cadence
                                    - substrate
                                  nullable: true
                                  title: Wallet Type
                                  description: Type of wallet associated with the rule.
                                  example: evm
                                imageUrl:
                                  type: string
                                  nullable: true
                                  title: Image URL
                                  description: URL of the image associated with the rule.
                                  example: https://example.com/image.png
                                onlyRewardSingleTokenOwnership:
                                  type: boolean
                                  nullable: true
                                  title: Only reward single token ownerships
                                  description: >-
                                    give points for only one token ownership per
                                    contract
                                  example: true
                                skipMultiplier:
                                  type: boolean
                                  nullable: true
                                  title: Skip Multiplier
                                  description: >-
                                    Flag indicating if the multiplier is
                                    skipped.
                                  example: true
                                completeProfileConditions:
                                  type: object
                                  additionalProperties:
                                    type: boolean
                                  nullable: true
                                  title: Complete Profile Conditions
                                  description: Conditions for completing the profile.
                                  example:
                                    twitter: true
                                    discord: false
                                steamAppId:
                                  type: string
                                  nullable: true
                                  title: Steam App ID
                                  description: ID of the Steam app.
                                  example: '1234567890'
                                githubRepoUrl:
                                  type: string
                                  nullable: true
                                  title: GitHub Repo URL
                                  description: >-
                                    URL of the GitHub repository to check for
                                    star.
                                  example: https://github.com/owner/repo
                                githubBranchName:
                                  type: string
                                  nullable: true
                                  title: GitHub Branch Name
                                  description: >-
                                    Name of the GitHub branch to check for PR
                                    merge.
                                  example: main
                                resetProgressOnClaim:
                                  type: boolean
                                  nullable: true
                                  title: Reset Progress On Claim
                                  description: >-
                                    If enabled, the progress tracking row will
                                    be deleted after a successful claim,
                                    allowing the user to re-earn the rule.
                                  example: true
                                rewardPerAction:
                                  type: boolean
                                  nullable: true
                                  title: Reward Per Action
                                  description: >-
                                    Flag indicating if the reward is rewarded
                                    per action.
                                  example: true
                                rewardByBatch:
                                  type: boolean
                                  nullable: true
                                  title: Reward by Batch
                                  description: >-
                                    Flag indicating if the reward is rewarded by
                                    batch.
                                  example: true
                                batchSize:
                                  type: number
                                  nullable: true
                                  title: Tokens per Batch
                                  description: Number of tokens per batch.
                                  example: 100
                                youtubeVideoId:
                                  type: string
                                  nullable: true
                                  title: Youtube Video ID
                                  description: ID of the Youtube video.
                                  example: '1234567890'
                                youtubeChannelId:
                                  type: string
                                  nullable: true
                                  title: Youtube Channel ID
                                  description: ID of the Youtube channel.
                                  example: '1234567890'
                                redditPostId:
                                  type: string
                                  nullable: true
                                  title: Reddit Post ID
                                  description: ID of the Reddit post.
                                  example: '1234567890'
                                isRestrictedToNewUsers:
                                  type: boolean
                                  title: Is Restricted to New Users
                                  description: >-
                                    Flag indicating if the rule is restricted to
                                    new users.
                                  example: false
                                allowMultipleRedemptions:
                                  type: boolean
                                  title: Allow Multiple Redemptions
                                  description: >-
                                    Flag indicating if the rule allows multiple
                                    redemptions. Applies to Enter a Code only.
                                  example: false
                                rewardBadgePerRange:
                                  type: boolean
                                  title: Reward Badge Per Range
                                  description: >-
                                    Flag indicating if the rule can also reward
                                    badges per range.
                                  example: false
                                swap:
                                  type: object
                                  properties:
                                    provider:
                                      type: string
                                      enum:
                                        - any
                                        - relay
                                        - lifi
                                    relayReferrerId:
                                      type: string
                                    from:
                                      type: object
                                      properties:
                                        mode:
                                          type: string
                                          enum:
                                            - any
                                            - specific
                                        chain:
                                          oneOf:
                                            - type: string
                                              enum:
                                                - any
                                            - type: number
                                            - type: string
                                          type: number
                                        tokens:
                                          type: array
                                          items:
                                            type: object
                                            properties:
                                              address:
                                                type: string
                                              chainId:
                                                type: string
                                            required:
                                              - address
                                              - chainId
                                        trackAmount:
                                          type: boolean
                                    to:
                                      type: object
                                      properties:
                                        mode:
                                          type: string
                                          enum:
                                            - any
                                            - specific
                                        chain:
                                          oneOf:
                                            - type: string
                                              enum:
                                                - any
                                            - type: number
                                            - type: string
                                          type: number
                                        tokens:
                                          type: array
                                          items:
                                            type: object
                                            properties:
                                              address:
                                                type: string
                                              chainId:
                                                type: string
                                            required:
                                              - address
                                              - chainId
                                        trackAmount:
                                          type: boolean
                                    requireCrossChainSwap:
                                      type: boolean
                                  title: Swap Metadata
                                  description: Metadata for swap loyalty rules
                                rewardPerValue:
                                  type: boolean
                                  title: Reward Per Value
                                  description: >-
                                    Flag indicating if the rule should reward
                                    based on value of traded tokens instead of
                                    count.
                                  example: false
                                conditionDescription:
                                  type: string
                                  title: Condition description
                                  description: >-
                                    Description of the external rule condition
                                    (only for external rules)
                                  example: >-
                                    Complete the specific task on external
                                    platform
                                directRpc:
                                  type: boolean
                                  title: Direct RPC
                                  description: >-
                                    Flag indicating if the rule should use
                                    direct RPC to get the balance of tokens.
                                  example: false
                                erc20Type:
                                  type: string
                                  enum:
                                    - erc20
                                    - native
                                  title: ERC20 Type
                                  description: Type of ERC20 token for the loyalty rule.
                                  example: erc20
                                rewardQualityPosts:
                                  type: boolean
                                  title: Only reward quality posts
                                  description: >-
                                    Flag indicating if the rule should reward
                                    quality posts.
                                  example: false
                                minimumFollowerCount:
                                  type: number
                                  nullable: true
                                  title: Minimum Follower Count
                                  description: >-
                                    Minimum follower count for the rule. Accepts
                                    both number and string values.
                                  example: 25
                                autoCheckInRuleIds:
                                  type: array
                                  items:
                                    oneOf:
                                      - type: string
                                        format: uuid
                                      - type: string
                                        enum:
                                          - any
                                  nullable: true
                                  title: Auto Check-In Rule IDs
                                  description: >-
                                    Array of loyalty rule IDs that count as
                                    check-in when completed. If ["any"] then any
                                    rule completions count as check-in.
                                  example:
                                    - 123e4567-e89b-12d3-a456-426614174000
                                robinhoodSymbols:
                                  type: array
                                  items:
                                    type: string
                                  nullable: true
                            title: Metadata
                            description: Optional metadata for the loyalty rule
                            example:
                              key: value
                          dappDeployedWithin:
                            type: string
                            enum:
                              - daily
                              - weekly
                              - monthly
                            nullable: true
                            title: dApp Deployed In Last
                            description: Filter dApps by deployment age before ranking.
                            example: daily
                          dappDataWindow:
                            type: string
                            enum:
                              - daily
                              - weekly
                              - monthly
                            nullable: true
                            title: dApp Data Window
                            description: >-
                              Reward based on data usage within the last day,
                              week, or month. Leave it empty for all time usage.
                            example: daily
                          trackProgress:
                            type: boolean
                            nullable: true
                            title: Track Progress
                            description: >-
                              Flag indicating if the progress is tracked. If
                              enabled, the rule can only be completed once the
                              progress is 100%.
                            example: true
                          progressType:
                            type: string
                            enum:
                              - counter
                              - percentage
                            nullable: true
                            title: Progress Type
                            description: >-
                              How tracked progress is interpreted. "percentage"
                              counts 0-100 and is shown as a percentage.
                              "counter" counts up to the highest reward range
                              end and is shown as a raw count.
                            example: percentage
                        required:
                          - id
                          - name
                          - description
                          - endTime
                          - startTime
                          - rewardType
                          - organizationId
                          - websiteId
                          - type
                          - frequency
                          - amount
                          - createdAt
                          - updatedAt
                          - deletedAt
                        title: Data
                        description: Data that was changed on the rule
                        example:
                          name: New Rule Name
                      previousData:
                        type: object
                        properties:
                          id:
                            type: string
                            format: uuid
                            title: ID
                            description: Unique identifier for the loyalty rule
                            example: 123e4567-e89b-12d3-a456-426614174000
                          name:
                            type: string
                            title: Name
                            description: Name of the loyalty rule
                            example: Loyalty Rule
                          description:
                            type: string
                            title: Description
                            description: Description of the loyalty rule
                            example: Loyalty Rule Description
                          endTime:
                            type: string
                            nullable: true
                            title: End Time
                            description: End time of the loyalty rule
                            example: '2023-10-01T12:34:56Z'
                          startTime:
                            type: string
                            nullable: true
                            title: Start Time
                            description: Start time of the loyalty rule
                            example: '2023-10-01T12:34:56Z'
                          rewardType:
                            type: string
                            enum:
                              - points
                              - multiplier
                              - badge
                              - token
                            title: Reward Type
                            description: Type of the reward
                            example: points
                          organizationId:
                            type: string
                            format: uuid
                            title: Organization ID
                            description: Unique identifier for the organization
                            example: 123e4567-e89b-12d3-a456-426614174001
                          websiteId:
                            type: string
                            format: uuid
                            title: Website ID
                            description: Unique identifier for the website
                            example: 123e4567-e89b-12d3-a456-426614174002
                          collectionAddress:
                            type: string
                            title: Collection Address
                            description: Optional address of the collection
                            example: '0x1234567890abcdef1234567890abcdef12345678'
                          type:
                            type: string
                            title: Type
                            description: Type of the loyalty rule
                            example: purchase
                          frequency:
                            type: string
                            title: Frequency
                            description: Frequency of the loyalty rule
                            example: daily
                          amount:
                            type: number
                            nullable: true
                            title: Amount
                            description: Amount associated with the loyalty rule
                            example: 10
                          createdAt:
                            type: string
                            format: date-time
                            title: Created At
                            description: Timestamp when the loyalty rule was created
                            example: '2023-10-01T12:34:56Z'
                          updatedAt:
                            type: string
                            format: date-time
                            title: Updated At
                            description: Timestamp when the loyalty rule was last updated
                            example: '2023-10-05T15:30:00Z'
                          deletedAt:
                            type: string
                            format: date-time
                            nullable: true
                            title: Deleted At
                            description: >-
                              Timestamp when the loyalty rule was deleted (if
                              applicable)
                            example: null
                          mediaUrl:
                            type: string
                            nullable: true
                            title: Media URL
                            description: URL of the media associated with the loyalty rule
                            example: https://assets.snagsolutions.io/media.png
                          metadata:
                            type: object
                            additionalProperties:
                              type: object
                              properties:
                                isCheckInOnEveryTxn:
                                  type: boolean
                                  title: Count any rule completion as check-in
                                  description: >-
                                    If enabled, the first transaction done on
                                    the platform will complete this rule
                                  example: true
                                hasPaidFullRoyalty:
                                  type: boolean
                                  title: Has Paid Full Royalty
                                  description: >-
                                    Indicates if the full royalty has been paid
                                    for items.
                                  example: false
                                royaltyAddress:
                                  type: string
                                  title: Wallet Address
                                  description: >-
                                    Wallet address of the user can only be used
                                    if userId is not provided
                                  example: '0x1234567890abcdef1234567890abcdef12345678'
                                royaltyPercentage:
                                  type: number
                                  minimum: 1
                                  maximum: 100
                                  title: Royalty Percentage
                                  description: Royalty percentage of the item.
                                  example: 5
                                hasVerifiedTwitter:
                                  type: boolean
                                  title: Has Verified Twitter
                                  description: >-
                                    Indicates if the user has a verified Twitter
                                    account.
                                  example: true
                                onlyRewardExistingUser:
                                  type: boolean
                                  title: Only Reward Existing User
                                  description: >-
                                    Indicates if only existing users are
                                    rewarded.
                                  example: true
                                hasNeverSold:
                                  type: boolean
                                  title: Has Never Sold
                                  description: Indicates if the item has never been sold.
                                  example: false
                                onlyNative:
                                  type: boolean
                                  title: Only Native
                                  description: >-
                                    Flag indicating whether to include only
                                    native tokens.
                                  example: true
                                hasFillSource:
                                  type: boolean
                                  title: Has Fill Source
                                  description: >-
                                    Flag indicating whether the fill source is
                                    included.
                                  example: true
                                fillSource:
                                  type: string
                                  title: Fill Source
                                  description: Fill source of the order for the token sale
                                  example: opensea.io
                                liquidity:
                                  type: object
                                  properties:
                                    network:
                                      type: string
                                      enum:
                                        - abstract
                                        - abstractTestnet
                                        - apechain
                                        - arbitrum
                                        - avalanche
                                        - avalancheFuji
                                        - base
                                        - baseSepolia
                                        - berachain
                                        - berachainArtio
                                        - berachainBepolia
                                        - binance
                                        - bscTestnet
                                        - campTestnet
                                        - fantom
                                        - fantomTestnet
                                        - flowMainnet
                                        - mainnet
                                        - nexus
                                        - nexusTestnet
                                        - optimism
                                        - polygon
                                        - polygon_mumbai
                                        - skaleNebula
                                        - skaleEuropa
                                        - skaleCalypso
                                        - solana
                                        - sophon
                                        - sophonTestnet
                                        - sui
                                        - superseed
                                        - superseedSepolia
                                        - vanar
                                        - xai
                                        - zksync
                                        - coti
                                        - cotiTestnet
                                        - dogeosTestnet
                                        - morph
                                        - morphTestnet
                                        - morphHolesky
                                        - ultra
                                        - ultraTestnet
                                        - nitrograph
                                        - sepolia
                                        - optimism_sepolia
                                        - arbitrumSepolia
                                        - goerli
                                        - optimism_goerli
                                        - arbitrumGoerli
                                        - basecamp
                                        - somnia
                                        - zkverify
                                        - polkadot
                                        - kusama
                                        - horizen
                                        - horizenTestnet
                                        - flow_cadence
                                      title: Network
                                      description: >-
                                        Blockchain network of the liquidity
                                        pool.
                                      example: mainnet
                                    protocol:
                                      type: string
                                      title: Protocol
                                      description: Protocol of the liquidity pool.
                                      example: Uniswap V2
                                    onlyRewardInRangeLiquidity:
                                      type: boolean
                                      title: Only Reward In-Range Liquidity
                                      description: >-
                                        Indicates if only in-range liquidity is
                                        rewarded.
                                      example: true
                                    liquidityPerDay:
                                      type: number
                                      title: Liquidity Per Day
                                      description: Liquidity provided per day in USD
                                      example: 1000
                                    customFunction:
                                      type: string
                                      title: Custom Function
                                      description: >-
                                        Custom function to calculate the the
                                        reward amount based on the liquidity
                                        provided per day. X is the reward
                                        amount, Y is the liquidity provided per
                                        day in USD.
                                      example: x = y * 1000
                                    calculationType:
                                      type: string
                                      enum:
                                        - fixed
                                        - custom
                                      title: Calculation Type
                                      description: Calculation type of the liquidity pool.
                                      example: fixed
                                    pools:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          id:
                                            type: string
                                            title: Liquidity Pool ID
                                            description: Unique identifier of the liquidity pool.
                                            example: '0xabcdefabcdefabcdefabcdefabcdefabcdef'
                                        required:
                                          - id
                                      maxItems: 20
                                      title: Liquidity Pools
                                      description: >-
                                        Array of liquidity pools associated with
                                        the rule.
                                  title: Liquidity
                                  description: Liquidity pool details.
                                twitterUsername:
                                  type: string
                                  title: Twitter Username
                                  description: Twitter username of the user.
                                  example: '@example_user'
                                twitterUserId:
                                  type: string
                                  title: Twitter User ID
                                  description: Unique identifier of the Twitter user.
                                  example: '1234567890'
                                twitterHashtag:
                                  type: string
                                  title: Twitter Hashtag
                                  description: Hashtag associated with the Twitter post.
                                  example: '#loyalty'
                                enableVerifiedMultiplier:
                                  type: boolean
                                  title: Enable Verified Multiplier
                                  description: >-
                                    Flag indicating whether the verified
                                    multiplier is enabled.
                                  example: true
                                verifiedMultiplier:
                                  type: number
                                  nullable: true
                                  title: Verified Multiplier
                                  description: >-
                                    Multiplier applied to rewards for verified
                                    users.
                                  example: 1.5
                                isMultiplierApplied:
                                  type: boolean
                                  title: Is Multiplier Applied
                                  description: >-
                                    Indicates if the multiplier has been applied
                                    to rewards.
                                  example: true
                                onlyKnownUsers:
                                  type: boolean
                                  title: Only Known Users
                                  description: >-
                                    Flag indicating whether to include only
                                    known users.
                                  example: false
                                firstReferralReward:
                                  type: number
                                  nullable: true
                                  title: First Referral Reward
                                  description: >-
                                    Percentage reward given to a user for their
                                    first referral.
                                  example: 10
                                referrerReward:
                                  type: number
                                  nullable: true
                                  title: Referrer Reward
                                  description: Lump sum reward given to a referrer.
                                  example: 50
                                referrerRewardLoyaltyCurrencyId:
                                  type: string
                                  nullable: true
                                  title: Referrer Reward Loyalty Currency ID
                                  description: Loyalty currency ID of the referrer reward.
                                  example: '1234567890'
                                secondReferralReward:
                                  type: number
                                  nullable: true
                                  title: Second Referral Reward
                                  description: >-
                                    Percentage reward given for a second-level
                                    referral.
                                  example: 5
                                enableStreaks:
                                  type: boolean
                                  nullable: true
                                  title: Enable Streaks
                                  description: Flag indicating whether streaks are enabled.
                                  example: true
                                promoCode:
                                  type: string
                                  title: Promo Code
                                  description: Promotional code associated with the rule.
                                  example: PROMO123
                                promoCodeType:
                                  type: string
                                  enum:
                                    - code
                                    - csv
                                    - generate
                                  title: Promo Code Type
                                  description: Type of the promotional code.
                                  example: code
                                promoCodeLength:
                                  type: number
                                  nullable: true
                                  title: Promo Code Length
                                  description: >-
                                    Numbers of the promotional code to be
                                    generated.
                                  example: 10
                                promoCodeCsvUrl:
                                  type: string
                                  title: Promo Code CSV URL
                                  description: URL of the CSV file containing promo codes.
                                  example: https://example.com/promo_codes.csv
                                enableJoinDiscordServers:
                                  type: boolean
                                  nullable: true
                                  title: Enable Join Discord Servers
                                  description: >-
                                    Flag indicating whether joining Discord
                                    servers is required.
                                  example: true
                                discordServersToJoin:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      id:
                                        type: string
                                        title: Discord Server ID
                                        description: ID of the Discord server to join.
                                        example: '123456789012345678'
                                      channels:
                                        type: array
                                        items:
                                          type: object
                                          properties:
                                            id:
                                              type: string
                                              title: Channel ID
                                              description: ID of the Discord channel.
                                              example: '987654321098765432'
                                            text:
                                              type: string
                                              title: Text
                                              description: >-
                                                Phrase of text to be present in the
                                                discord message
                                              example: Hello
                                            emojis:
                                              type: array
                                              items:
                                                type: object
                                                properties:
                                                  id:
                                                    type: string
                                                    title: Emoji ID
                                                    description: ID of the emoji used in the channel.
                                                    example: 1f600
                                              title: Emojis
                                              description: Array of emojis used in the channel.
                                        title: Channels
                                        description: Array of Discord channels to join.
                                      roles:
                                        type: array
                                        items:
                                          type: object
                                          properties:
                                            id:
                                              type: string
                                              title: Role ID
                                              description: ID of the role in the Discord server.
                                              example: role123
                                          required:
                                            - id
                                        title: Roles
                                        description: >-
                                          Array of roles to assign in the Discord
                                          server.
                                  nullable: true
                                  title: Discord Servers to Join
                                  description: >-
                                    Array of Discord servers, channels, and
                                    roles to join.
                                streakArray:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      streakMilestone:
                                        type: number
                                        title: Streak Milestone
                                        description: >-
                                          Milestone required to achieve the
                                          streak.
                                        example: 5
                                      streakAmount:
                                        type: number
                                        title: Streak Amount
                                        description: >-
                                          Reward amount for achieving the streak
                                          milestone.
                                        example: 10
                                    required:
                                      - streakMilestone
                                      - streakAmount
                                  nullable: true
                                  title: Streak Array
                                  description: >-
                                    Array of streak milestones and corresponding
                                    rewards.
                                dripQuestsToComplete:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      id:
                                        type: string
                                        title: Drip Quest ID
                                        description: ID of the drip quest to complete.
                                        example: drip123
                                    required:
                                      - id
                                  nullable: true
                                  title: Drip Quests to Complete
                                  description: >-
                                    Array of drip quests required to complete
                                    the rule.
                                collection:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      address:
                                        type: string
                                        title: Collection Address
                                        description: Blockchain address of the collection.
                                        example: '0xabcdefabcdefabcdefabcdefabcdefabcdef'
                                      network:
                                        type: string
                                        enum:
                                          - abstract
                                          - abstractTestnet
                                          - apechain
                                          - arbitrum
                                          - avalanche
                                          - avalancheFuji
                                          - base
                                          - baseSepolia
                                          - berachain
                                          - berachainArtio
                                          - berachainBepolia
                                          - binance
                                          - bscTestnet
                                          - campTestnet
                                          - fantom
                                          - fantomTestnet
                                          - flowMainnet
                                          - mainnet
                                          - nexus
                                          - nexusTestnet
                                          - optimism
                                          - polygon
                                          - polygon_mumbai
                                          - skaleNebula
                                          - skaleEuropa
                                          - skaleCalypso
                                          - solana
                                          - sophon
                                          - sophonTestnet
                                          - sui
                                          - superseed
                                          - superseedSepolia
                                          - vanar
                                          - xai
                                          - zksync
                                          - coti
                                          - cotiTestnet
                                          - dogeosTestnet
                                          - morph
                                          - morphTestnet
                                          - morphHolesky
                                          - ultra
                                          - ultraTestnet
                                          - nitrograph
                                          - sepolia
                                          - optimism_sepolia
                                          - arbitrumSepolia
                                          - goerli
                                          - optimism_goerli
                                          - arbitrumGoerli
                                          - basecamp
                                          - somnia
                                          - zkverify
                                          - polkadot
                                          - kusama
                                          - horizen
                                          - horizenTestnet
                                          - flow_cadence
                                        title: Network
                                        description: Blockchain network of the collection.
                                        example: mainnet
                                      multiplier:
                                        type: number
                                        title: Multiplier
                                        description: >-
                                          Multiplier applied to the rewards for
                                          this collection.
                                        example: 2
                                  title: Collection
                                  description: >-
                                    Array of collections associated with the
                                    rule.
                                range:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      startRange:
                                        type: number
                                        title: Start Range
                                        description: Start value of the range.
                                        example: 1
                                      endRange:
                                        type: number
                                        title: End Range
                                        description: End value of the range.
                                        example: 10
                                      amount:
                                        oneOf:
                                          - type: number
                                          - type: string
                                        title: Amount
                                        description: Reward amount for this range.
                                        example: 5
                                      loyaltyBadgeId:
                                        type: string
                                        format: uuid
                                        title: Loyalty Badge ID
                                        description: ID of the loyalty badge for this range.
                                        example: badge123
                                      loyaltyMultiplierAmount:
                                        type: number
                                        title: Loyalty Multiplier Amount
                                        description: >-
                                          Amount of the loyalty multiplier for
                                          this range.
                                        example: 1.5
                                    required:
                                      - startRange
                                      - endRange
                                      - amount
                                  title: Range
                                  description: >-
                                    Array defining ranges and corresponding
                                    rewards.
                                customRewardsApiKey:
                                  type: string
                                  title: Custom Rewards API Key
                                  description: API key for custom rewards integration.
                                  example: api-key-1234
                                link:
                                  type: string
                                  nullable: true
                                  title: Link
                                  description: Optional link associated with the metadata.
                                  example: https://example.com
                                socialPlatform:
                                  type: string
                                  enum:
                                    - Custom
                                    - Discord
                                    - EpicGames
                                    - Instagram
                                    - Phone
                                    - Steam
                                    - Telegram
                                    - TikTok
                                    - Twitch
                                    - X(Twitter)
                                    - YouTube
                                    - Google
                                    - GitHub
                                    - Reddit
                                  nullable: true
                                  title: Social Platform
                                  description: >-
                                    Social media platform associated with the
                                    rule.
                                  example: X(Twitter)
                                socialPlatformName:
                                  type: string
                                  nullable: true
                                  title: Social Platform Name
                                  description: Name of the social platform.
                                  example: Twitter
                                socialPlatformLogo:
                                  type: string
                                  nullable: true
                                  title: Social Platform Logo
                                  description: URL of the social platform's logo.
                                  example: https://example.com/logo.png
                                rewardPerImpression:
                                  type: boolean
                                  nullable: true
                                  title: Reward Per Impression
                                  description: >-
                                    Flag indicating if rewards are given per
                                    impression.
                                  example: true
                                snapshotProposals:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      id:
                                        type: string
                                        title: Snapshot Proposal ID
                                        description: ID of the snapshot proposal.
                                        example: proposal123
                                      space:
                                        type: string
                                        title: Snapshot Proposal Space
                                        description: >-
                                          Space associated with the snapshot
                                          proposal.
                                        example: space123
                                    required:
                                      - id
                                      - space
                                  nullable: true
                                  title: Snapshot Proposals
                                  description: Array of snapshot proposals for the rule.
                                cta:
                                  type: object
                                  properties:
                                    label:
                                      type: string
                                      nullable: true
                                      title: CTA Label
                                      description: Label for the call-to-action.
                                      example: Click Here
                                    href:
                                      type: string
                                      nullable: true
                                      title: CTA Link
                                      description: Link for the call-to-action.
                                      example: https://example.com
                                  nullable: true
                                  title: Call-to-Action
                                  description: >-
                                    Object containing details for the
                                    call-to-action.
                                hasSaleCurrency:
                                  type: boolean
                                  title: Has Sale Currency
                                  description: >-
                                    Flag indicating if the sale currency is
                                    included.
                                  example: false
                                isTokenHoldMultiplier:
                                  type: boolean
                                  title: Is Token Hold Multiplier
                                  description: >-
                                    Flag indicating if the token hold multiplier
                                    is applied.
                                  example: true
                                saleCurrency:
                                  type: string
                                  title: Sale Currency
                                  description: Currency associated with sales.
                                  example: USD
                                isRetroactive:
                                  type: boolean
                                  nullable: true
                                  title: Is Retroactive
                                  description: >-
                                    Flag indicating if rewards are applied
                                    retroactively.
                                  example: true
                                timeDelayToVerifySeconds:
                                  oneOf:
                                    - type: string
                                    - type: number
                                  type: number
                                  nullable: true
                                  title: Time Delay to Verify
                                  description: Time delay in seconds to verify actions.
                                  example: 300
                                referralRequirements:
                                  type: object
                                  properties:
                                    points:
                                      type: object
                                      properties:
                                        amount:
                                          type: number
                                          nullable: true
                                          title: Points Amount
                                          description: Points required for referral.
                                          example: 50
                                        loyaltyCurrecyId:
                                          type: string
                                          nullable: true
                                          title: Loyalty Currency ID
                                          description: ID of the loyalty currency for referral.
                                          example: currency123
                                      nullable: true
                                    achievePoints:
                                      type: boolean
                                      nullable: true
                                      title: Achieve Points
                                      description: >-
                                        Flag indicating if achieving points is
                                        required.
                                      example: true
                                    completeProfile:
                                      type: boolean
                                      nullable: true
                                      title: Complete Profile
                                      description: >-
                                        Flag indicating if completing the
                                        profile is required.
                                      example: false
                                    connectTwitter:
                                      type: boolean
                                      nullable: true
                                      title: Connect Twitter
                                      description: >-
                                        Flag indicating if connecting Twitter is
                                        required.
                                      example: true
                                    connectDiscord:
                                      type: boolean
                                      nullable: true
                                      title: Connect Discord
                                      description: >-
                                        Flag indicating if connecting Discord is
                                        required.
                                      example: true
                                    connectEmail:
                                      type: boolean
                                      nullable: true
                                      title: Connect Email
                                      description: >-
                                        Flag indicating if connecting email is
                                        required.
                                      example: true
                                  nullable: true
                                  title: Referral Requirements
                                  description: Object defining referral requirements.
                                multiplierLoyaltyCurrencyIds:
                                  type: array
                                  items:
                                    type: string
                                  nullable: true
                                  title: Multiplier Loyalty Currency IDs
                                  description: >-
                                    Array of loyalty currency IDs used for
                                    multipliers.
                                  example:
                                    - currency123
                                    - currency456
                                verifyPlaceHolderText:
                                  type: string
                                  nullable: true
                                  title: Verification Placeholder Text
                                  description: >-
                                    Placeholder text for verification input
                                    fields.
                                  example: Enter your verification code here.
                                verificationTextMinimumLength:
                                  type: integer
                                  nullable: true
                                  title: Verification Text Minimum Length
                                  description: Minimum length of the verification text.
                                  example: 10
                                buttonText:
                                  type: string
                                  nullable: true
                                  title: Button Text
                                  description: Text displayed on the action button.
                                  example: Verify Now
                                telegramChannelId:
                                  type: string
                                  nullable: true
                                  title: Telegram Channel ID
                                  description: ID of the Telegram channel.
                                  example: telegram-channel-123
                                twitterAccountUrl:
                                  type: string
                                  title: Twitter Account URL
                                  description: URL of the associated Twitter account.
                                  example: https://twitter.com/example_user
                                twitterPostUrl:
                                  type: string
                                  title: Twitter Post URL
                                  description: URL of the associated Twitter post.
                                  example: >-
                                    https://twitter.com/example/status/1234567890
                                checkLike:
                                  type: boolean
                                  nullable: true
                                  title: Check Like
                                  description: >-
                                    Flag indicating if liking the post is
                                    required.
                                  example: true
                                checkRepost:
                                  type: boolean
                                  nullable: true
                                  title: Check Repost
                                  description: Flag indicating if reposting is required.
                                  example: true
                                checkComment:
                                  type: boolean
                                  nullable: true
                                  title: Check Comment
                                  description: Flag indicating if commenting is required.
                                  example: true
                                checkText:
                                  oneOf:
                                    - type: string
                                    - type: array
                                      items:
                                        type: string
                                  nullable: true
                                  title: Check Text
                                  description: >-
                                    Text to check in the Twitter post, username,
                                    or bio.
                                  example: loyalty
                                requirePostLink:
                                  type: boolean
                                  nullable: true
                                  title: Require Post Link
                                  description: >-
                                    Flag indicating if the post link is
                                    required.
                                  example: true
                                requirePostMediaLink:
                                  type: boolean
                                  nullable: true
                                  title: Require Post Media Link
                                  description: >-
                                    Flag indicating if media metadata is
                                    required.
                                  example: true
                                preGeneratedPostText:
                                  type: string
                                  nullable: true
                                  title: Pre Generated Post Text
                                  description: >-
                                    Pre-generated text template that will be
                                    used to prefill the post content.
                                  example: true
                                rewardCriteria:
                                  type: string
                                  enum:
                                    - IMPRESSIONS_COUNT
                                    - ELIGIBLE_POST
                                  nullable: true
                                  title: Reward Criteria
                                  description: Criteria to evaluate the reward.
                                  example: IMPRESSIONS_COUNT
                                smartContract:
                                  type: object
                                  properties:
                                    contractId:
                                      type: string
                                      nullable: true
                                      title: Smart Contract ID
                                      description: ID of the smart contract.
                                      example: 123e4567-e89b-12d3-a456-426614174000
                                    event:
                                      type: string
                                      nullable: true
                                      title: Smart Contract Event
                                      description: Event emitted by the smart contract.
                                      example: Transfer
                                    type:
                                      default: event
                                      type: string
                                      enum:
                                        - function
                                        - event
                                      nullable: true
                                      title: Smart Contract Type
                                      description: Type of the smart contract interaction.
                                      example: event
                                    criteria:
                                      type: string
                                      enum:
                                        - everyEvent
                                        - byParameter
                                      nullable: true
                                      title: Smart Contract Criteria
                                      description: >-
                                        Criteria to evaluate the smart contract
                                        event.
                                      example: everyEvent
                                    params:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          name:
                                            type: string
                                            nullable: true
                                            title: Parameter Name
                                            description: Name of the smart contract parameter.
                                            example: value
                                          condition:
                                            type: string
                                            nullable: true
                                            title: Parameter Condition
                                            description: Condition to check for the parameter.
                                            example: '>='
                                          value:
                                            type: string
                                            nullable: true
                                            title: Parameter Value
                                            description: Value of the parameter.
                                            example: '100'
                                      nullable: true
                                      title: Smart Contract Parameters
                                      description: >-
                                        Array of parameters for the smart
                                        contract.
                                    addressMapping:
                                      type: string
                                      nullable: true
                                      title: Address Mapping
                                      description: >-
                                        Mapping of addresses for the smart
                                        contract.
                                      example: 0x123...789
                                    amountMultiplier:
                                      type: object
                                      properties:
                                        valueMapping:
                                          type: string
                                          nullable: true
                                          title: Value Mapping
                                          description: >-
                                            Mapping of the value for the smart
                                            contract.
                                          example: amount
                                      nullable: true
                                      title: Amount Multiplier
                                      description: >-
                                        Object containing details of the amount
                                        multiplier from the event.
                                  title: Smart Contract
                                  description: >-
                                    Object containing details of the associated
                                    smart contract.
                                walletType:
                                  type: string
                                  enum:
                                    - evm
                                    - solana
                                    - imx
                                    - sui
                                    - ton
                                    - cosmos
                                    - ultra
                                    - agw
                                    - flow_cadence
                                    - substrate
                                  nullable: true
                                  title: Wallet Type
                                  description: Type of wallet associated with the rule.
                                  example: evm
                                imageUrl:
                                  type: string
                                  nullable: true
                                  title: Image URL
                                  description: URL of the image associated with the rule.
                                  example: https://example.com/image.png
                                onlyRewardSingleTokenOwnership:
                                  type: boolean
                                  nullable: true
                                  title: Only reward single token ownerships
                                  description: >-
                                    give points for only one token ownership per
                                    contract
                                  example: true
                                skipMultiplier:
                                  type: boolean
                                  nullable: true
                                  title: Skip Multiplier
                                  description: >-
                                    Flag indicating if the multiplier is
                                    skipped.
                                  example: true
                                completeProfileConditions:
                                  type: object
                                  additionalProperties:
                                    type: boolean
                                  nullable: true
                                  title: Complete Profile Conditions
                                  description: Conditions for completing the profile.
                                  example:
                                    twitter: true
                                    discord: false
                                steamAppId:
                                  type: string
                                  nullable: true
                                  title: Steam App ID
                                  description: ID of the Steam app.
                                  example: '1234567890'
                                githubRepoUrl:
                                  type: string
                                  nullable: true
                                  title: GitHub Repo URL
                                  description: >-
                                    URL of the GitHub repository to check for
                                    star.
                                  example: https://github.com/owner/repo
                                githubBranchName:
                                  type: string
                                  nullable: true
                                  title: GitHub Branch Name
                                  description: >-
                                    Name of the GitHub branch to check for PR
                                    merge.
                                  example: main
                                resetProgressOnClaim:
                                  type: boolean
                                  nullable: true
                                  title: Reset Progress On Claim
                                  description: >-
                                    If enabled, the progress tracking row will
                                    be deleted after a successful claim,
                                    allowing the user to re-earn the rule.
                                  example: true
                                rewardPerAction:
                                  type: boolean
                                  nullable: true
                                  title: Reward Per Action
                                  description: >-
                                    Flag indicating if the reward is rewarded
                                    per action.
                                  example: true
                                rewardByBatch:
                                  type: boolean
                                  nullable: true
                                  title: Reward by Batch
                                  description: >-
                                    Flag indicating if the reward is rewarded by
                                    batch.
                                  example: true
                                batchSize:
                                  type: number
                                  nullable: true
                                  title: Tokens per Batch
                                  description: Number of tokens per batch.
                                  example: 100
                                youtubeVideoId:
                                  type: string
                                  nullable: true
                                  title: Youtube Video ID
                                  description: ID of the Youtube video.
                                  example: '1234567890'
                                youtubeChannelId:
                                  type: string
                                  nullable: true
                                  title: Youtube Channel ID
                                  description: ID of the Youtube channel.
                                  example: '1234567890'
                                redditPostId:
                                  type: string
                                  nullable: true
                                  title: Reddit Post ID
                                  description: ID of the Reddit post.
                                  example: '1234567890'
                                isRestrictedToNewUsers:
                                  type: boolean
                                  title: Is Restricted to New Users
                                  description: >-
                                    Flag indicating if the rule is restricted to
                                    new users.
                                  example: false
                                allowMultipleRedemptions:
                                  type: boolean
                                  title: Allow Multiple Redemptions
                                  description: >-
                                    Flag indicating if the rule allows multiple
                                    redemptions. Applies to Enter a Code only.
                                  example: false
                                rewardBadgePerRange:
                                  type: boolean
                                  title: Reward Badge Per Range
                                  description: >-
                                    Flag indicating if the rule can also reward
                                    badges per range.
                                  example: false
                                swap:
                                  type: object
                                  properties:
                                    provider:
                                      type: string
                                      enum:
                                        - any
                                        - relay
                                        - lifi
                                    relayReferrerId:
                                      type: string
                                    from:
                                      type: object
                                      properties:
                                        mode:
                                          type: string
                                          enum:
                                            - any
                                            - specific
                                        chain:
                                          oneOf:
                                            - type: string
                                              enum:
                                                - any
                                            - type: number
                                            - type: string
                                          type: number
                                        tokens:
                                          type: array
                                          items:
                                            type: object
                                            properties:
                                              address:
                                                type: string
                                              chainId:
                                                type: string
                                            required:
                                              - address
                                              - chainId
                                        trackAmount:
                                          type: boolean
                                    to:
                                      type: object
                                      properties:
                                        mode:
                                          type: string
                                          enum:
                                            - any
                                            - specific
                                        chain:
                                          oneOf:
                                            - type: string
                                              enum:
                                                - any
                                            - type: number
                                            - type: string
                                          type: number
                                        tokens:
                                          type: array
                                          items:
                                            type: object
                                            properties:
                                              address:
                                                type: string
                                              chainId:
                                                type: string
                                            required:
                                              - address
                                              - chainId
                                        trackAmount:
                                          type: boolean
                                    requireCrossChainSwap:
                                      type: boolean
                                  title: Swap Metadata
                                  description: Metadata for swap loyalty rules
                                rewardPerValue:
                                  type: boolean
                                  title: Reward Per Value
                                  description: >-
                                    Flag indicating if the rule should reward
                                    based on value of traded tokens instead of
                                    count.
                                  example: false
                                conditionDescription:
                                  type: string
                                  title: Condition description
                                  description: >-
                                    Description of the external rule condition
                                    (only for external rules)
                                  example: >-
                                    Complete the specific task on external
                                    platform
                                directRpc:
                                  type: boolean
                                  title: Direct RPC
                                  description: >-
                                    Flag indicating if the rule should use
                                    direct RPC to get the balance of tokens.
                                  example: false
                                erc20Type:
                                  type: string
                                  enum:
                                    - erc20
                                    - native
                                  title: ERC20 Type
                                  description: Type of ERC20 token for the loyalty rule.
                                  example: erc20
                                rewardQualityPosts:
                                  type: boolean
                                  title: Only reward quality posts
                                  description: >-
                                    Flag indicating if the rule should reward
                                    quality posts.
                                  example: false
                                minimumFollowerCount:
                                  type: number
                                  nullable: true
                                  title: Minimum Follower Count
                                  description: >-
                                    Minimum follower count for the rule. Accepts
                                    both number and string values.
                                  example: 25
                                autoCheckInRuleIds:
                                  type: array
                                  items:
                                    oneOf:
                                      - type: string
                                        format: uuid
                                      - type: string
                                        enum:
                                          - any
                                  nullable: true
                                  title: Auto Check-In Rule IDs
                                  description: >-
                                    Array of loyalty rule IDs that count as
                                    check-in when completed. If ["any"] then any
                                    rule completions count as check-in.
                                  example:
                                    - 123e4567-e89b-12d3-a456-426614174000
                                robinhoodSymbols:
                                  type: array
                                  items:
                                    type: string
                                  nullable: true
                            title: Metadata
                            description: Optional metadata for the loyalty rule
                            example:
                              key: value
                          dappDeployedWithin:
                            type: string
                            enum:
                              - daily
                              - weekly
                              - monthly
                            nullable: true
                            title: dApp Deployed In Last
                            description: Filter dApps by deployment age before ranking.
                            example: daily
                          dappDataWindow:
                            type: string
                            enum:
                              - daily
                              - weekly
                              - monthly
                            nullable: true
                            title: dApp Data Window
                            description: >-
                              Reward based on data usage within the last day,
                              week, or month. Leave it empty for all time usage.
                            example: daily
                          trackProgress:
                            type: boolean
                            nullable: true
                            title: Track Progress
                            description: >-
                              Flag indicating if the progress is tracked. If
                              enabled, the rule can only be completed once the
                              progress is 100%.
                            example: true
                          progressType:
                            type: string
                            enum:
                              - counter
                              - percentage
                            nullable: true
                            title: Progress Type
                            description: >-
                              How tracked progress is interpreted. "percentage"
                              counts 0-100 and is shown as a percentage.
                              "counter" counts up to the highest reward range
                              end and is shown as a raw count.
                            example: percentage
                        required:
                          - id
                          - name
                          - description
                          - endTime
                          - startTime
                          - rewardType
                          - organizationId
                          - websiteId
                          - type
                          - frequency
                          - amount
                          - createdAt
                          - updatedAt
                          - deletedAt
                        title: Previous Data
                        description: Previous data of the rule before the edit
                        example:
                          name: Old Rule Name
                      comment:
                        type: string
                        title: Comment
                        description: Comment that was made on the edit
                        example: Updated rule name
                    required:
                      - id
                      - loyaltyRuleId
                      - websiteId
                      - organizationId
                      - editedByUserId
                      - editedAt
                      - action
                      - data
        '403':
          description: '403'
          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
      security:
        - apiKeyAuth: []
components:
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: X-API-KEY

````