import SnagSolutions from '@snagsolutions/sdk';
const client = new SnagSolutions({
apiKey: 'My API Key',
});
const response = await client.loyalty.ruleGroups.getRuleGroups();
console.log(response.data);
{
"data": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"isRequired": true,
"sortId": 123,
"isCollapsible": true,
"subTitle": "<string>",
"loyaltyGroupItems": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"sortId": 123,
"loyaltyRule": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"description": "<string>",
"isRequired": true,
"deletedAt": "2023-11-07T05:31:56Z",
"loyaltyCurrencyId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "Bonus",
"amount": 123,
"hideInUi": true,
"startTime": "2023-11-07T05:31:56Z",
"endTime": "2023-11-07T05:31:56Z",
"rewardType": "points",
"frequency": "none",
"metadata": {
"isCheckInOnEveryTxn": true,
"onlyNonListed": true,
"hasPaidFullRoyalty": false,
"hasVerifiedTwitter": true,
"onlyRewardExistingUser": true,
"hasNeverSold": false,
"onlyNative": true,
"hasFillSource": true,
"fillSource": "opensea.io",
"liquidity": {
"network": "mainnet",
"protocol": "Uniswap V2",
"onlyRewardInRangeLiquidity": true,
"liquidityPerDay": 1000,
"customFunction": "x = y * 1000",
"calculationType": "fixed",
"pools": [
{
"id": "0xabcdefabcdefabcdefabcdefabcdefabcdef"
}
]
},
"twitterUsername": "@example_user",
"twitterUserId": "1234567890",
"twitterHashtag": "#loyalty",
"enableVerifiedMultiplier": true,
"verifiedMultiplier": 1.5,
"isMultiplierApplied": true,
"onlyKnownUsers": false,
"firstReferralReward": 10,
"referrerReward": 50,
"referrerRewardLoyaltyCurrencyId": "1234567890",
"secondReferralReward": 5,
"enableStreaks": true,
"promoCode": "PROMO123",
"promoCodeType": "code",
"promoCodeLength": 10,
"promoCodeCsvUrl": "https://example.com/promo_codes.csv",
"enableJoinDiscordServers": true,
"discordServersToJoin": [
{
"id": "123456789012345678",
"channels": [
{
"id": "987654321098765432",
"text": "Hello",
"emojis": [
{
"id": "1f600"
}
]
}
],
"roles": [
{
"id": "role123"
}
]
}
],
"streakArray": [
{
"streakMilestone": 5,
"streakAmount": 10
}
],
"dripQuestsToComplete": [
{
"id": "drip123"
}
],
"collection": [
{
"address": "0xabcdefabcdefabcdefabcdefabcdefabcdef",
"network": "mainnet",
"multiplier": 2
}
],
"range": [
{
"startRange": 1,
"endRange": 10,
"amount": 5,
"loyaltyBadgeId": "badge123",
"loyaltyMultiplierAmount": 1.5
}
],
"customRewardsApiKey": "api-key-1234",
"link": "https://example.com",
"socialPlatform": "X(Twitter)",
"socialPlatformName": "Twitter",
"socialPlatformLogo": "https://example.com/logo.png",
"rewardPerImpression": true,
"minQty": 1,
"maxQty": 10,
"snapshotProposals": [
{
"id": "proposal123",
"space": "space123"
}
],
"cta": {
"label": "Click Here",
"href": "https://example.com"
},
"hasSaleCurrency": false,
"isTokenHoldMultiplier": true,
"saleCurrency": "USD",
"isRetroactive": true,
"timeDelayToVerifySeconds": 300,
"referralRequirements": {
"points": {
"amount": 50,
"loyaltyCurrecyId": "currency123"
},
"achievePoints": true,
"completeProfile": false,
"connectTwitter": true,
"connectDiscord": true,
"connectEmail": true
},
"multiplierLoyaltyCurrencyIds": [
"currency123",
"currency456"
],
"verifyPlaceHolderText": "Enter your verification code here.",
"verificationTextMinimumLength": 10,
"buttonText": "Verify Now",
"telegramChannelId": "telegram-channel-123",
"twitterAccountUrl": "https://twitter.com/example_user",
"twitterPostUrl": "https://twitter.com/example/status/1234567890",
"checkLike": true,
"checkRepost": true,
"checkComment": true,
"checkText": "loyalty",
"smartContract": {
"contractId": "123e4567-e89b-12d3-a456-426614174000",
"event": "Transfer",
"type": "event",
"criteria": "everyEvent",
"params": [
{
"name": "value",
"condition": ">=",
"value": "100"
}
],
"addressMapping": "0x123...789",
"amountMultiplier": {
"valueMapping": "amount"
}
},
"walletType": "evm",
"imageUrl": "https://example.com/image.png",
"trackAllContracts": true,
"onlyRewardSingleTokenOwnership": true,
"skipMultiplier": true,
"completeProfileConditions": {
"twitter": true,
"discord": false
},
"steamAppId": "1234567890",
"trackProgress": true,
"rewardByBatch": true,
"batchSize": 100,
"youtubeVideoId": "1234567890",
"youtubeChannelId": "1234567890",
"isRestrictedToNewUsers": false,
"rewardBadgePerRange": false,
"swap": {
"provider": "any",
"relayReferrerId": "<string>",
"tokenMode": "any",
"swappedToChain": 123,
"requireCrossChainSwap": true,
"swappedToTokens": [
{
"address": "<string>",
"chainId": "<string>"
}
],
"trackTokenAmount": true
},
"rewardPerValue": false
},
"mediaUrl": "<string>",
"loyaltyBadge": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"description": "<string>",
"imageUrl": "<string>"
}
}
}
]
}
],
"hasNextPage": true
}
Retrieve configured loyalty rule groups
import SnagSolutions from '@snagsolutions/sdk';
const client = new SnagSolutions({
apiKey: 'My API Key',
});
const response = await client.loyalty.ruleGroups.getRuleGroups();
console.log(response.data);
{
"data": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"isRequired": true,
"sortId": 123,
"isCollapsible": true,
"subTitle": "<string>",
"loyaltyGroupItems": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"sortId": 123,
"loyaltyRule": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"description": "<string>",
"isRequired": true,
"deletedAt": "2023-11-07T05:31:56Z",
"loyaltyCurrencyId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "Bonus",
"amount": 123,
"hideInUi": true,
"startTime": "2023-11-07T05:31:56Z",
"endTime": "2023-11-07T05:31:56Z",
"rewardType": "points",
"frequency": "none",
"metadata": {
"isCheckInOnEveryTxn": true,
"onlyNonListed": true,
"hasPaidFullRoyalty": false,
"hasVerifiedTwitter": true,
"onlyRewardExistingUser": true,
"hasNeverSold": false,
"onlyNative": true,
"hasFillSource": true,
"fillSource": "opensea.io",
"liquidity": {
"network": "mainnet",
"protocol": "Uniswap V2",
"onlyRewardInRangeLiquidity": true,
"liquidityPerDay": 1000,
"customFunction": "x = y * 1000",
"calculationType": "fixed",
"pools": [
{
"id": "0xabcdefabcdefabcdefabcdefabcdefabcdef"
}
]
},
"twitterUsername": "@example_user",
"twitterUserId": "1234567890",
"twitterHashtag": "#loyalty",
"enableVerifiedMultiplier": true,
"verifiedMultiplier": 1.5,
"isMultiplierApplied": true,
"onlyKnownUsers": false,
"firstReferralReward": 10,
"referrerReward": 50,
"referrerRewardLoyaltyCurrencyId": "1234567890",
"secondReferralReward": 5,
"enableStreaks": true,
"promoCode": "PROMO123",
"promoCodeType": "code",
"promoCodeLength": 10,
"promoCodeCsvUrl": "https://example.com/promo_codes.csv",
"enableJoinDiscordServers": true,
"discordServersToJoin": [
{
"id": "123456789012345678",
"channels": [
{
"id": "987654321098765432",
"text": "Hello",
"emojis": [
{
"id": "1f600"
}
]
}
],
"roles": [
{
"id": "role123"
}
]
}
],
"streakArray": [
{
"streakMilestone": 5,
"streakAmount": 10
}
],
"dripQuestsToComplete": [
{
"id": "drip123"
}
],
"collection": [
{
"address": "0xabcdefabcdefabcdefabcdefabcdefabcdef",
"network": "mainnet",
"multiplier": 2
}
],
"range": [
{
"startRange": 1,
"endRange": 10,
"amount": 5,
"loyaltyBadgeId": "badge123",
"loyaltyMultiplierAmount": 1.5
}
],
"customRewardsApiKey": "api-key-1234",
"link": "https://example.com",
"socialPlatform": "X(Twitter)",
"socialPlatformName": "Twitter",
"socialPlatformLogo": "https://example.com/logo.png",
"rewardPerImpression": true,
"minQty": 1,
"maxQty": 10,
"snapshotProposals": [
{
"id": "proposal123",
"space": "space123"
}
],
"cta": {
"label": "Click Here",
"href": "https://example.com"
},
"hasSaleCurrency": false,
"isTokenHoldMultiplier": true,
"saleCurrency": "USD",
"isRetroactive": true,
"timeDelayToVerifySeconds": 300,
"referralRequirements": {
"points": {
"amount": 50,
"loyaltyCurrecyId": "currency123"
},
"achievePoints": true,
"completeProfile": false,
"connectTwitter": true,
"connectDiscord": true,
"connectEmail": true
},
"multiplierLoyaltyCurrencyIds": [
"currency123",
"currency456"
],
"verifyPlaceHolderText": "Enter your verification code here.",
"verificationTextMinimumLength": 10,
"buttonText": "Verify Now",
"telegramChannelId": "telegram-channel-123",
"twitterAccountUrl": "https://twitter.com/example_user",
"twitterPostUrl": "https://twitter.com/example/status/1234567890",
"checkLike": true,
"checkRepost": true,
"checkComment": true,
"checkText": "loyalty",
"smartContract": {
"contractId": "123e4567-e89b-12d3-a456-426614174000",
"event": "Transfer",
"type": "event",
"criteria": "everyEvent",
"params": [
{
"name": "value",
"condition": ">=",
"value": "100"
}
],
"addressMapping": "0x123...789",
"amountMultiplier": {
"valueMapping": "amount"
}
},
"walletType": "evm",
"imageUrl": "https://example.com/image.png",
"trackAllContracts": true,
"onlyRewardSingleTokenOwnership": true,
"skipMultiplier": true,
"completeProfileConditions": {
"twitter": true,
"discord": false
},
"steamAppId": "1234567890",
"trackProgress": true,
"rewardByBatch": true,
"batchSize": 100,
"youtubeVideoId": "1234567890",
"youtubeChannelId": "1234567890",
"isRestrictedToNewUsers": false,
"rewardBadgePerRange": false,
"swap": {
"provider": "any",
"relayReferrerId": "<string>",
"tokenMode": "any",
"swappedToChain": 123,
"requireCrossChainSwap": true,
"swappedToTokens": [
{
"address": "<string>",
"chainId": "<string>"
}
],
"trackTokenAmount": true
},
"rewardPerValue": false
},
"mediaUrl": "<string>",
"loyaltyBadge": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"description": "<string>",
"imageUrl": "<string>"
}
}
}
]
}
],
"hasNextPage": true
}
1 <= x <= 1000
200
The response is of type object
.
Was this page helpful?