Loyalty
Get Loyalty Rule Groups
API Documentation
Identity
- POSTCreate user device
- GETGet user metadata
- POSTCreate user metadata
- GETGet users
- GETUser count
- POSTConnect a user to User Group
- POSTDisconnect a user from User Group
- GETConnect Auth
- POSTPost apiusersverify
- GETGet all website user attributes
- POSTCreate a new website user attribute
- DELDelete a website user attribute
- GETGet all website user attribute values
- POSTCreate a new website user attribute value
Loyalty
- GETGet loyalty accounts
- GETGet the rank of a user based on their loyalty points
- GETGet loyalty currencies
- POSTCreate a loyalty currency
- GETGet Loyalty Multipliers
- POSTCreate Loyalty Multiplier
- DELDelete Loyalty Multiplier by External Identifier
- POSTUpdate Loyalty Multiplier
- DELDelete Loyalty Multiplier by ID
- GETGet Loyalty Rule Edits
- POSTRestore Loyalty Rule Edit
- GETGet Loyalty Rule Groups
- POSTCreate Loyalty Rule Groups
- POSTUpdate Loyalty Rule Group
- DELDelete Loyalty Rule Group
- GETGet Loyalty Rules
- POSTCreate Loyalty Rule
- POSTUpdate Loyalty Rule
- DELDelete Loyalty Rule
- POSTComplete Loyalty Rule
- GETGet Processing status for a specific user on loyalty rules
- POSTCreate Loyalty Transaction
- GETGet Loyalty Transaction Entries
- GETGet Loyalty Rule Chains
- GETGet Loyalty Rule Statuses
- POSTUpdate Loyalty Rule Status
Badge
Minting
Question
Website
Landing Page
Loyalty
Get Loyalty Rule Groups
Retrieve configured loyalty rule groups
GET
/
api
/
loyalty
/
rule_groups
import SnagSolutions from '@snagsolutions/sdk';
const client = new SnagSolutions({
apiKey: process.env['X_API_KEY'], // This is the default and can be omitted
});
async function main() {
const response = await client.loyalty.ruleGroups.getRuleGroups();
console.log(response.data);
}
main();
{
"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",
"hasOrderSource": true,
"orderSource": "opensea.io",
"liquidity": {
"chain": "mainnet",
"protocol": "Uniswap V2",
"onlyRewardInRangeLiquidity": true,
"liquidityPerHour": 1000,
"customFunction": "function(x) { return x * 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,
"secondReferralReward": 5,
"enableStreaks": true,
"promoCode": "PROMO123",
"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
}
],
"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",
"abi": "[]",
"event": "Transfer",
"criteria": "everyEvent",
"params": [
{
"name": "value",
"condition": ">=",
"value": "100"
}
],
"withCustomRange": true,
"customRange": {
"startsAt": "2024-01-01T00:00:00Z",
"endsAt": "2024-01-31T23:59:59Z"
},
"withMax": true,
"max": 1000,
"withBonus": true,
"bonus": [
{
"amount": 50,
"count": 5
}
],
"addressMapping": "0x123...789"
},
"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"
},
"mediaUrl": "<string>",
"loyaltyBadge": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"description": "<string>",
"imageUrl": "<string>"
}
}
}
]
}
],
"hasNextPage": true
}
Authorizations
Query Parameters
Required range:
1 <= x <= 1000
Response
200
application/json
200
The response is of type object
.
Was this page helpful?
import SnagSolutions from '@snagsolutions/sdk';
const client = new SnagSolutions({
apiKey: process.env['X_API_KEY'], // This is the default and can be omitted
});
async function main() {
const response = await client.loyalty.ruleGroups.getRuleGroups();
console.log(response.data);
}
main();
{
"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",
"hasOrderSource": true,
"orderSource": "opensea.io",
"liquidity": {
"chain": "mainnet",
"protocol": "Uniswap V2",
"onlyRewardInRangeLiquidity": true,
"liquidityPerHour": 1000,
"customFunction": "function(x) { return x * 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,
"secondReferralReward": 5,
"enableStreaks": true,
"promoCode": "PROMO123",
"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
}
],
"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",
"abi": "[]",
"event": "Transfer",
"criteria": "everyEvent",
"params": [
{
"name": "value",
"condition": ">=",
"value": "100"
}
],
"withCustomRange": true,
"customRange": {
"startsAt": "2024-01-01T00:00:00Z",
"endsAt": "2024-01-31T23:59:59Z"
},
"withMax": true,
"max": 1000,
"withBonus": true,
"bonus": [
{
"amount": 50,
"count": 5
}
],
"addressMapping": "0x123...789"
},
"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"
},
"mediaUrl": "<string>",
"loyaltyBadge": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"description": "<string>",
"imageUrl": "<string>"
}
}
}
]
}
],
"hasNextPage": true
}