{ "opencollection": "1.0.0", "info": { "name": "Creed achievements gamification API", "version": "1.0.0" }, "items": [ { "info": { "name": "gamification", "type": "folder" }, "items": [ { "info": { "name": "Get Rewards", "type": "http" }, "http": { "method": "GET", "url": "{{baseUrl}}/api/gamification/rewards", "headers": [ { "name": "x-user-id", "value": "" } ], "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Get all active token rewards.\n\nReturns a list of all active rewards with their token amounts." }, { "info": { "name": "Earn Reward", "type": "http" }, "http": { "method": "POST", "url": "{{baseUrl}}/api/gamification/rewards/earn", "headers": [ { "name": "x-user-id", "value": "" } ], "body": { "type": "json", "data": "{}" }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Award tokens to the user for completing a reward source.\n\n- **reward_key**: The reward key identifier (e.g., 'quest_daily_reading', 'achievement_bible_read_10')\n\nThis endpoint is called when a user completes a quest, achievement, daily login, etc.\nThe token amount is determined by the reward configuration in the database." }, { "info": { "name": "Earn Tokens", "type": "http" }, "http": { "method": "POST", "url": "{{baseUrl}}/api/gamification/tokens/earn", "headers": [ { "name": "x-user-id", "value": "" } ], "body": { "type": "json", "data": "{}" }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Award a custom amount of tokens to the user directly.\n\n- **amount**: Number of tokens to award\n- **source**: Label describing the source of the award\n\nThis endpoint bypasses reward configuration and awards tokens directly." }, { "info": { "name": "Get Transactions", "type": "http" }, "http": { "method": "GET", "url": "{{baseUrl}}/api/gamification/tokens/transactions", "headers": [ { "name": "x-user-id", "value": "" } ], "params": [ { "name": "limit", "value": "", "type": "query", "description": "Number of transactions to return" }, { "name": "offset", "value": "", "type": "query", "description": "Number of transactions to skip" } ], "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Get transaction history for the authenticated user.\n\nReturns a list of token transactions (both earned and spent) with details." }, { "info": { "name": "Get Token Products", "type": "http" }, "http": { "method": "GET", "url": "{{baseUrl}}/api/gamification/tokens/products", "headers": [ { "name": "x-user-id", "value": "" } ], "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Get the active token product catalog available for purchase.\n\nReturns purchasable token packs keyed by a stable default id, along with\nthe underlying App Store / Play Store product ids for each platform." }, { "info": { "name": "Get Shop Items", "type": "http" }, "http": { "method": "GET", "url": "{{baseUrl}}/api/gamification/items", "headers": [ { "name": "x-user-id", "value": "" } ], "params": [ { "name": "pricing_variant", "value": "", "type": "query", "description": "Which price to return as token_price -- 'paid_tokens' for the paid_token_exp treatment cohort" } ], "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Get all currently available shop items.\n\nReturns items that are currently available (within their availability window).\nUse /items/unlocked endpoint to determine which items the user owns." }, { "info": { "name": "Get Unlocked Items", "type": "http" }, "http": { "method": "GET", "url": "{{baseUrl}}/api/gamification/items/unlocked", "headers": [ { "name": "x-user-id", "value": "" } ], "params": [ { "name": "pricing_variant", "value": "", "type": "query", "description": "Which price to return as token_price -- 'paid_tokens' for the paid_token_exp treatment cohort" } ], "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Get all items unlocked by the authenticated user with full item details.\n\nReturns a list of unlocked items with full marketplace details plus unlock timestamps." }, { "info": { "name": "Purchase Item", "type": "http" }, "http": { "method": "POST", "url": "{{baseUrl}}/api/gamification/items/purchase", "headers": [ { "name": "x-user-id", "value": "" } ], "params": [ { "name": "pricing_variant", "value": "", "type": "query", "description": "Which price to charge -- 'paid_tokens' for the paid_token_exp treatment cohort" } ], "body": { "type": "json", "data": "{}" }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Purchase an item with tokens.\n\n- **item_key**: The unique key of the item to purchase (e.g., 'theme_ocean', 'frame_gold')\n\nThis endpoint validates the user's token balance, deducts the tokens,\nand grants the item to the user. Returns the new balance and item details." }, { "info": { "name": "Unlock Item", "type": "http" }, "http": { "method": "POST", "url": "{{baseUrl}}/api/gamification/items/unlock", "headers": [ { "name": "x-user-id", "value": "" } ], "body": { "type": "json", "data": "{}" }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Unlock an item for the user without spending tokens.\n\n- **item_key**: The unique key of the item to unlock (e.g., 'theme_premium_dark', 'icon_special_event')\n\nThis endpoint is for unlocking premium items, special event items, or other\nitems that don't require token payment. No transaction is created." } ] } ], "bundled": true }