{"openapi":"3.0.0","paths":{"/launcher/{id}/heartbeat":{"post":{"operationId":"LauncherController_heartbeat","summary":"Heartbeat","parameters":[{"name":"x-api-key","required":true,"in":"header","schema":{"type":"string"}},{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Launcher"]}},"/launcher/{id}/get-attribution":{"post":{"operationId":"LauncherController_getAttribution","summary":"Get badge attribution","parameters":[{"name":"x-api-key","required":true,"in":"header","schema":{"type":"string"}},{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetBadgeAttributionDto"}}}},"responses":{"201":{"description":""}},"tags":["Launcher"]}},"/launcher/{id}/get-connections":{"post":{"operationId":"LauncherController_getConnections","summary":"Get account connections","description":"Retrieve the connected Glyph Wallet address and X (Twitter) username for an account.","parameters":[{"name":"x-api-key","required":true,"in":"header","schema":{"type":"string"}},{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetConnectionsDto"}}}},"responses":{"201":{"description":""}},"tags":["Launcher"]}},"/launcher/{id}/upsert-attribution":{"post":{"operationId":"LauncherController_attributeBadge","summary":"Create or update a badge attribution","parameters":[{"name":"x-api-key","required":true,"in":"header","schema":{"type":"string"}},{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"conditionKey","required":true,"in":"query","schema":{"type":"string"}},{"name":"condition","required":true,"in":"query","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateBadgeAttributionDto"}}}},"responses":{"201":{"description":""}},"tags":["Launcher"]}},"/community":{"get":{"operationId":"CommunityController_getCommunities","summary":"Get communities","parameters":[{"name":"page","required":false,"in":"query","description":"Page of results to return.","schema":{"type":"number"}},{"name":"perPage","required":false,"in":"query","description":"Number of items per page to return. Defaults to 100.","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/PaginatedDto"},{"properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/CommunityDto"}}}}]}}}}},"tags":["Communities"],"security":[{"apiKey":[]}]}},"/community/{id}":{"get":{"operationId":"CommunityController_getCommunity","summary":"Get a community","parameters":[{"name":"id","required":true,"in":"path","description":"Community ID","schema":{"type":"string"}}],"responses":{"default":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommunityDto"}}}}},"tags":["Communities"],"security":[{"apiKey":[]}]}},"/community/{id}/member":{"get":{"operationId":"CommunityMemberController_getCommunityMembers","summary":"Get community members","parameters":[{"name":"id","required":true,"in":"path","description":"Community ID","schema":{"type":"string"}},{"name":"page","required":false,"in":"query","description":"Page of results to return.","schema":{"type":"number"}},{"name":"perPage","required":false,"in":"query","description":"Number of items per page to return. Defaults to 100.","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/PaginatedDto"},{"properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/CommunityMemberDto"}}}}]}}}}},"tags":["Communities"],"security":[{"apiKey":[]}]},"post":{"operationId":"CommunityMemberController_createCommunityMember","summary":"Add community member","deprecated":true,"parameters":[{"name":"id","required":true,"in":"path","description":"Community ID","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCommunityMemberDto"}}}},"responses":{"410":{"description":"This endpoint is deprecated"}},"tags":["Communities"],"security":[{"apiKey":[]}]}},"/community/{id}/member/bulk":{"post":{"operationId":"CommunityMemberController_addBulkMembers","summary":"Bulk add community members","deprecated":true,"parameters":[{"name":"id","required":true,"in":"path","description":"Community ID","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkImportCommunityMemberDto"}}}},"responses":{"410":{"description":"This endpoint is deprecated"}},"tags":["Communities"],"security":[{"apiKey":[]}]}},"/community/{id}/member/{idOrAddress}":{"get":{"operationId":"CommunityMemberController_getCommunityMember","summary":"Get community member","parameters":[{"name":"id","required":true,"in":"path","description":"Community ID","schema":{"type":"string"}},{"name":"idOrAddress","required":true,"in":"path","description":"Account UUID or an Ethereum address linked to the member account","schema":{"type":"string"}}],"responses":{"default":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommunityMemberDto"}}}}},"tags":["Communities"],"security":[{"apiKey":[]}]}},"/community/{id}/member/{idOrAddress}/tokens":{"get":{"operationId":"CommunityMemberController_getCommunityMemberTokens","summary":"Get community member tokens","parameters":[{"name":"id","required":true,"in":"path","description":"Community ID","schema":{"type":"string"}},{"name":"idOrAddress","required":true,"in":"path","description":"Account UUID or an Ethereum address linked to the member account","schema":{"type":"string"}},{"name":"collection","required":false,"in":"query","description":"Filter by token collection addresses","schema":{"type":"array","items":{"type":"string"}}},{"name":"blockNumber","required":true,"in":"query","schema":{"type":"number"}},{"name":"page","required":false,"in":"query","description":"Page of results to return.","schema":{"type":"number"}},{"name":"perPage","required":false,"in":"query","description":"Number of items per page to return. Defaults to 100.","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/PaginatedDto"},{"properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/TokenDto"}}}}]}}}}},"tags":["Communities"],"security":[{"apiKey":[]}]}},"/community/{id}/member/{idOrAddress}/badges":{"get":{"operationId":"CommunityMemberController_getCommunityMemberBadges","summary":"Get community member badges","parameters":[{"name":"id","required":true,"in":"path","description":"Community ID","schema":{"type":"string"}},{"name":"idOrAddress","required":true,"in":"path","schema":{"type":"string"}},{"name":"status","required":false,"in":"query","description":"Filter badges by status","schema":{"enum":["earned","claimed"],"type":"string"}},{"name":"perPage","required":false,"in":"query","schema":{}},{"name":"page","required":false,"in":"query","schema":{}}],"responses":{"default":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedDto"}}}}},"tags":["Communities"],"security":[{"apiKey":[]}]}},"/community/{id}/badge":{"post":{"operationId":"CommunityBadgeController_createCommunityBadge","summary":"Create badge","parameters":[{"name":"id","required":true,"in":"path","description":"Community ID","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateBadgeDto"}}}},"responses":{"201":{"description":""}},"tags":["Community Badges"],"security":[{"apiKey":[]}]},"get":{"operationId":"CommunityBadgeController_getCommunityBadges","summary":"Get badges","parameters":[{"name":"id","required":true,"in":"path","description":"Community ID","schema":{"type":"string"}},{"name":"chainId","required":true,"in":"query","schema":{"type":"number"}},{"name":"page","required":false,"in":"query","description":"Page of results to return.","schema":{"type":"number"}},{"name":"perPage","required":false,"in":"query","description":"Number of items per page to return. Defaults to 100.","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/PaginatedDto"},{"properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/BadgeDto"}}}}]}}}}},"tags":["Community Badges"],"security":[{"apiKey":[]}]}},"/community/{id}/badge/{badgeId}":{"patch":{"operationId":"CommunityBadgeController_updateCommunityBadge","summary":"Update badge","parameters":[{"name":"id","required":true,"in":"path","description":"Community ID","schema":{"type":"string"}},{"name":"badgeId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateBadgeDto"}}}},"responses":{"200":{"description":""}},"tags":["Community Badges"],"security":[{"apiKey":[]}]},"delete":{"operationId":"CommunityBadgeController_deleteCommunityBadge","summary":"Delete badge","parameters":[{"name":"id","required":true,"in":"path","description":"Community ID","schema":{"type":"string"}},{"name":"badgeId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Community Badges"],"security":[{"apiKey":[]}]},"get":{"operationId":"CommunityBadgeController_getCommunityBadge","summary":"Get badge","parameters":[{"name":"id","required":true,"in":"path","description":"Community ID","schema":{"type":"string"}},{"name":"badgeId","required":true,"in":"path","description":"Badge ID","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadgeDto"}}}}},"tags":["Community Badges"],"security":[{"apiKey":[]}]}},"/community/{id}/badge/{badgeId}/reward":{"post":{"operationId":"CommunityBadgeController_createBadgeReward","summary":"Create badge reward","deprecated":true,"parameters":[{"name":"id","required":true,"in":"path","description":"Community ID","schema":{"type":"string"}},{"name":"badgeId","required":true,"in":"path","description":"Badge ID","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateBadgeRewardDto"}}}},"responses":{"201":{"description":"Badge reward created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadgeRewardDto"}}}}},"tags":["Community Badges"],"security":[{"apiKey":[]}]},"get":{"operationId":"CommunityBadgeController_getBadgeRewards","summary":"Get badge rewards","deprecated":true,"parameters":[{"name":"id","required":true,"in":"path","description":"Community ID","schema":{"type":"string"}},{"name":"badgeId","required":true,"in":"path","description":"Badge ID","schema":{"type":"string"}}],"responses":{"200":{"description":"Badge rewards retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BadgeRewardDto"}}}}}},"tags":["Community Badges"],"security":[{"apiKey":[]}]}},"/community/{id}/badge/{badgeId}/reward/{rewardId}":{"get":{"operationId":"CommunityBadgeController_getSpecificBadgeReward","summary":"Get badge reward","deprecated":true,"parameters":[{"name":"id","required":true,"in":"path","description":"Community ID","schema":{"type":"string"}},{"name":"badgeId","required":true,"in":"path","description":"Badge ID","schema":{"type":"string"}},{"name":"rewardId","required":true,"in":"path","description":"Reward ID","schema":{"type":"string"}}],"responses":{"200":{"description":"Badge reward retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadgeRewardDto"}}}}},"tags":["Community Badges"],"security":[{"apiKey":[]}]},"patch":{"operationId":"CommunityBadgeController_updateBadgeReward","summary":"Update badge reward","deprecated":true,"parameters":[{"name":"id","required":true,"in":"path","description":"Community ID","schema":{"type":"string"}},{"name":"badgeId","required":true,"in":"path","description":"Badge ID","schema":{"type":"string"}},{"name":"rewardId","required":true,"in":"path","description":"Reward ID","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateBadgeRewardDto"}}}},"responses":{"200":{"description":"Badge reward updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadgeRewardDto"}}}}},"tags":["Community Badges"],"security":[{"apiKey":[]}]},"delete":{"operationId":"CommunityBadgeController_deleteBadgeReward","summary":"Delete badge reward","deprecated":true,"parameters":[{"name":"id","required":true,"in":"path","description":"Community ID","schema":{"type":"string"}},{"name":"badgeId","required":true,"in":"path","description":"Badge ID","schema":{"type":"string"}},{"name":"rewardId","required":true,"in":"path","description":"Reward ID","schema":{"type":"string"}}],"responses":{"200":{"description":"Badge reward deleted successfully"}},"tags":["Community Badges"],"security":[{"apiKey":[]}]}},"/community/{id}/badge/{badgeId}/attribution":{"get":{"operationId":"CommunityBadgeController_getCommunityMemberBadges","summary":"Get badge attributions","parameters":[{"name":"id","required":true,"in":"path","description":"Community ID","schema":{"type":"string"}},{"name":"badgeId","required":true,"in":"path","description":"Badge ID","schema":{"type":"string"}},{"name":"search","required":false,"in":"query","schema":{"type":"string"}},{"name":"page","required":false,"in":"query","description":"Page of results to return.","schema":{"type":"number"}},{"name":"perPage","required":false,"in":"query","description":"Number of items per page to return. Defaults to 100.","schema":{"type":"string"}},{"name":"status","required":false,"in":"query","description":"Filter badge attributions by status","schema":{"enum":["earned","claimed"],"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/PaginatedDto"},{"properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/CommunityMemberBadgeResponseDto"}}}}]}}}}},"tags":["Community Badges"],"security":[{"apiKey":[]}]},"post":{"operationId":"CommunityBadgeController_createBadgeAttribution","summary":"Create badge attribution","parameters":[{"name":"id","required":true,"in":"path","description":"Community ID","schema":{"type":"string"}},{"name":"badgeId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAttributionDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommunityMemberBadgeResponseDto"}}}}},"tags":["Community Badges"],"security":[{"apiKey":[]}]},"patch":{"operationId":"CommunityBadgeController_updateBadgeAttribution","summary":"Update badge attribution","parameters":[{"name":"id","required":true,"in":"path","description":"Community ID","schema":{"type":"string"}},{"name":"badgeId","required":true,"in":"path","schema":{"type":"string"}},{"name":"conditionKey","required":false,"in":"query","description":"Optional condition key used to prevent invalid metadata updates","schema":{"type":"string"}},{"name":"condition","required":false,"in":"query","description":"Optional condition used to determine the comparison of the new metadata value to the current value","schema":{"enum":["gt","lt"],"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAttributionDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommunityMemberBadgeAttributionResponseDto"}}}}},"tags":["Community Badges"],"security":[{"apiKey":[]}]}},"/community/{id}/badge/{badgeId}/attribution/by-metadata":{"get":{"operationId":"CommunityBadgeController_getBadgeAttributionByMetadata","summary":"Get a badge attribution by metadata property","parameters":[{"name":"id","required":true,"in":"path","description":"Community ID","schema":{"type":"string"}},{"name":"badgeId","required":true,"in":"path","schema":{"type":"string"}},{"name":"key","required":true,"in":"query","description":"Metadata key to find the badge attribution by","schema":{"type":"string"}},{"name":"value","required":true,"in":"query","description":"Metadata value to find the badge attribution by","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommunityMemberBadgeAttributionResponseDto"}}}}},"tags":["Community Badges"],"security":[{"apiKey":[]}]}},"/community/{id}/badge/{badgeId}/attribution/{attributionId}":{"get":{"operationId":"CommunityBadgeController_getBadgeAttribution","summary":"Get a badge attribution","parameters":[{"name":"id","required":true,"in":"path","description":"Community ID","schema":{"type":"string"}},{"name":"badgeId","required":true,"in":"path","schema":{"type":"string"}},{"name":"attributionId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommunityMemberBadgeAttributionResponseDto"}}}}},"tags":["Community Badges"],"security":[{"apiKey":[]}]}},"/community/{id}/badge/{badgeId}/leaderboard":{"get":{"operationId":"CommunityBadgeController_getCommunityMemberBadgeLeaderboard","summary":"Get badge leaderboard","parameters":[{"name":"id","required":true,"in":"path","description":"Community ID","schema":{"type":"string"}},{"name":"badgeId","required":true,"in":"path","description":"Badge ID","schema":{"type":"string"}},{"name":"metric","required":false,"in":"query","description":"Determines the leaderboard based on a badge metadata metric. If no metrics are available the leaderboard is returned based on ascending order the badge was earned.","schema":{"enum":["time","score","rank","position","points"],"type":"string"}},{"name":"metricDirection","required":false,"in":"query","description":"Direction to sort the leaderboard by metric","schema":{"enum":["ASC","DESC"],"type":"string"}},{"name":"perPage","required":false,"in":"query","schema":{}},{"name":"page","required":false,"in":"query","schema":{}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CommunityMemberBadgeLeaderboardResponseDto"}}}}}},"tags":["Community Badges"],"security":[{"apiKey":[]}]}},"/community/{id}/badge/{badgeId}/code":{"get":{"operationId":"CommunityBadgeController_generateQrCode","summary":"Generate badge attribution code","description":"Generates a code that a member can use to earn a badge.","parameters":[{"name":"id","required":true,"in":"path","description":"Community ID","schema":{"type":"string"}},{"name":"badgeId","required":true,"in":"path","description":"ID of the badge to generate the code for.","schema":{"type":"string"}},{"name":"seed","required":false,"in":"query","description":"Optional seed to generate a one-time use code (this is required and must be a valid wallet address if the code will be consumed by the /attribution endpoint)","schema":{"type":"string"}},{"name":"expiresIn","required":false,"in":"query","description":"Number of seconds the code will be valid for. Leave empty if you want the code to be valid indefinitely.","schema":{"type":"number"}},{"name":"generateQR","required":true,"in":"query","description":"Generate a QR image for the code (defaults to true).","schema":{"type":"boolean"}}],"responses":{"200":{"description":"QR code data URL"}},"tags":["Community Badges"],"security":[{"apiKey":[]}]}},"/community/{id}/experience":{"get":{"operationId":"CommunityExperienceController_findAll","summary":"Get experiences","parameters":[{"name":"id","required":true,"in":"path","description":"Community ID","schema":{"type":"string"}}],"responses":{"200":{"description":"Returns all experiences","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedDto"}}}}},"tags":["Community Experiences"],"security":[{"apiKey":[]}]},"post":{"operationId":"CommunityExperienceController_create","summary":"Create experience","parameters":[{"name":"id","required":true,"in":"path","description":"Community ID","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateExperienceDto"}}}},"responses":{"201":{"description":"The experience has been successfully created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperienceDto"}}}}},"tags":["Community Experiences"],"security":[{"apiKey":[]}]}},"/community/{id}/experience/{experienceId}":{"get":{"operationId":"CommunityExperienceController_findOne","summary":"Get experience","parameters":[{"name":"id","required":true,"in":"path","description":"Community ID","schema":{"type":"string"}},{"name":"experienceId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"Returns the experience","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperienceDto"}}}},"404":{"description":"Experience not found"}},"tags":["Community Experiences"],"security":[{"apiKey":[]}]},"patch":{"operationId":"CommunityExperienceController_update","summary":"Update experience","parameters":[{"name":"id","required":true,"in":"path","description":"Community ID","schema":{"type":"string"}},{"name":"experienceId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateExperienceDto"}}}},"responses":{"200":{"description":"The experience has been successfully updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperienceDto"}}}},"404":{"description":"Experience not found"}},"tags":["Community Experiences"],"security":[{"apiKey":[]}]},"delete":{"operationId":"CommunityExperienceController_remove","summary":"Delete experience","parameters":[{"name":"id","required":true,"in":"path","description":"Community ID","schema":{"type":"string"}},{"name":"experienceId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"The experience has been successfully deleted"},"404":{"description":"Experience not found"}},"tags":["Community Experiences"],"security":[{"apiKey":[]}]}},"/community/{id}/experience/{experienceId}/leaderboard":{"patch":{"operationId":"CommunityExperienceController_updateLeaderboard","summary":"Update experience leaderboard configuration","parameters":[{"name":"id","required":true,"in":"path","description":"Community ID","schema":{"type":"string"}},{"name":"experienceId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateExperienceLeaderboardDto"}}}},"responses":{"200":{"description":"The experience leaderboard has been successfully updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperienceLeaderboardDto"}}}},"404":{"description":"Experience not found"}},"tags":["Community Experiences"],"security":[{"apiKey":[]}]}},"/community/{id}/file":{"post":{"operationId":"CommunityFileController_createFile","summary":"Create a file upload","parameters":[{"name":"id","required":true,"in":"path","description":"Community ID","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateFileDto"}}}},"responses":{"200":{"description":"File created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/File"}}}}},"tags":["Community Files"],"security":[{"apiKey":[]}]},"get":{"operationId":"CommunityFileController_getFiles","summary":"Get files","parameters":[{"name":"id","required":true,"in":"path","description":"Community ID","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Community Files"],"security":[{"apiKey":[]}]}},"/community/{id}/file/{fileId}":{"get":{"operationId":"CommunityFileController_getFile","summary":"Get a file","parameters":[{"name":"id","required":true,"in":"path","description":"Community ID","schema":{"type":"string"}},{"name":"fileId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Community Files"],"security":[{"apiKey":[]}]},"delete":{"operationId":"CommunityFileController_deleteFile","summary":"Delete a file","parameters":[{"name":"id","required":true,"in":"path","description":"Community ID","schema":{"type":"string"}},{"name":"fileId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Community Files"],"security":[{"apiKey":[]}]}},"/m/c/{id}":{"get":{"operationId":"MetadataController_getCollectionMetadata","summary":"Get collection metadata by ID","parameters":[{"name":"id","required":true,"in":"path","description":"Collection ID","schema":{"type":"string"}}],"responses":{"200":{"description":"Collection metadata","content":{"application/json":{"schema":{"$ref":"#/components/schemas/"}}}}},"tags":["Metadata"]}},"/m/b/{id}":{"get":{"operationId":"MetadataController_getBadgeMetadata","summary":"Get badge metadata by ID","parameters":[{"name":"id","required":true,"in":"path","description":"Badge ID","schema":{"type":"string"}}],"responses":{"200":{"description":"Badge metadata","content":{"application/json":{"schema":{"$ref":"#/components/schemas/"}}}}},"tags":["Metadata"]}},"/m/mml/{id}":{"get":{"operationId":"MetadataController_getMmlMetadata","summary":"Get MML by ID","parameters":[{"name":"id","required":true,"in":"path","description":"MML ID","schema":{"type":"string"}}],"responses":{"200":{"description":"MML metadata","content":{"application/json":{"schema":{"$ref":"#/components/schemas/"}}}}},"tags":["Metadata"]}},"/m/{id}":{"get":{"operationId":"MetadataController_getMintableMetadata","summary":"Get mintable metadata by ID","parameters":[{"name":"id","required":true,"in":"path","description":"Mintable ID","schema":{"type":"string"}}],"responses":{"200":{"description":"Mintable metadata","content":{"application/json":{"schema":{"$ref":"#/components/schemas/"}}}}},"tags":["Metadata"]}}},"info":{"title":"OpenPage API Reference","description":"","version":"1.0","contact":{}},"tags":[{"name":"Launcher","description":"Launcher endpoints are used to interact with your embedded or external experiences.\n\n**Launcher endpoints require setting up a Community Experience.**\n\nSee: [Community Experiences](/api-reference/community-experiences/create-experience)"},{"name":"Communities","description":"Community endpoints are used to retrieve information about your Communities and associated members.\n\n**Community API endpoints require an API key obtained from the Community dashboard.**\n\n[Community Dashboard](https://portal.openpage.fun)"},{"name":"Community Badges","description":"Community Badge endpoints are used to create and manage badges, their associated rewards, and member attributions.\n\n**Community Badge endpoints require an API key obtained from the Community dashboard.**\n\n[Community Dashboard](https://portal.openpage.fun)"},{"name":"Community Files","description":"Community File endpoints are used to create and manage files used for Badges and Collections.\n\n**Community File endpoints require an API key obtained from the Community dashboard.**\n\n[Community Dashboard](https://portal.openpage.fun)"},{"name":"Community Experiences","description":"Community Experience endpoints are used to create and manage experiences.\n\n**Community Experience endpoints require an API key obtained from the Community dashboard.**\n\n[Community Dashboard](https://portal.openpage.fun)"}],"servers":[{"url":"https://api.openpage.fun/v1"}],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","name":"X-Api-Key","in":"header"},"bearer":{"scheme":"bearer","bearerFormat":"JWT","type":"http"},"oauth2":{"type":"oauth2","flows":{}}},"schemas":{"GetBadgeAttributionDto":{"type":"object","properties":{"badgeId":{"type":"string","description":"The badge ID"},"jwt":{"type":"string","description":"The launcher session JWT"}},"required":["badgeId","jwt"]},"GetConnectionsDto":{"type":"object","properties":{"jwt":{"type":"string","description":"The launcher session JWT"}},"required":["jwt"]},"CreateBadgeAttributionDto":{"type":"object","properties":{"badgeId":{"type":"string","description":"The badge ID"},"metadata":{"type":"object","description":"Additional metadata to be included in the badge attribution"},"jwt":{"type":"string","description":"The launcher session JWT"},"autoClaim":{"type":"boolean","description":"Automatically claim the badge for the member. On-chain badges will be airdropped to the wallet immediately."}},"required":["badgeId","jwt"]},"PaginatedDto":{"type":"object","properties":{"total":{"type":"number"},"perPage":{"type":"number"},"page":{"type":"number"}},"required":["total","perPage","page"]},"CommunityDto":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"shortName":{"type":"string"},"description":{"type":"string"},"twitter":{"type":"string"},"discord":{"type":"string"},"youtube":{"type":"string"},"website":{"type":"string"},"logo":{"type":"string"},"type":{"type":"string"},"requestLevel":{"type":"string","enum":["open","approvalRequired","restricted"]},"approvedAt":{"format":"date-time","type":"string"},"verifiedAt":{"format":"date-time","type":"string"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"required":["id","name","shortName","description","twitter","discord","youtube","website","logo","type","requestLevel","approvedAt","verifiedAt","createdAt","updatedAt"]},"CommunityMemberAvatarDto":{"type":"object","properties":{"tokenId":{"type":"string"},"contract":{"type":"string"},"chainId":{"type":"string"},"image":{"type":"string"},"name":{"type":"string"}},"required":["tokenId","contract","chainId","image","name"]},"CommunityMemberDto":{"type":"object","properties":{"id":{"type":"string"},"role":{"type":"string","enum":["owner","admin","team","member"]},"wallet":{"type":"string"},"ensName":{"type":"string"},"avatar":{"$ref":"#/components/schemas/CommunityMemberAvatarDto"},"addMethod":{"type":"string","enum":["manual","csv","discord","request","collection","api"]},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"confirmedAt":{"format":"date-time","type":"string"}},"required":["id","role","wallet","ensName","avatar","addMethod","createdAt","updatedAt","confirmedAt"]},"CreateCommunityMemberDto":{"type":"object","properties":{"wallet":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}}},"required":["wallet","tags"]},"BulkImportCommunityMemberDto":{"type":"object","properties":{"wallets":{"type":"array","items":{"type":"string"}},"tags":{"type":"array","items":{"type":"string"}}},"required":["wallets","tags"]},"TokenTrait":{"type":"object","properties":{"key":{"type":"string"},"type":{"type":"string"},"value":{"type":"string"},"tokenCount":{"type":"number"},"rarity":{"type":"number"},"rarityPercent":{"type":"number"}},"required":["key","type","value","tokenCount","rarity","rarityPercent"]},"TokenDto":{"type":"object","properties":{"id":{"type":"string"},"collectionName":{"type":"string"},"name":{"type":"string"},"kind":{"type":"string","enum":["erc721","erc1155"]},"chainId":{"type":"string","default":"1"},"contract":{"type":"string"},"tokenId":{"type":"string"},"image":{"type":"string"},"uri":{"type":"string"},"rarity":{"type":"string"},"rarityRank":{"type":"number"},"description":{"type":"string"},"externalUrl":{"type":"string"},"animationUrl":{"type":"string"},"traits":{"type":"array","items":{"$ref":"#/components/schemas/TokenTrait"}},"quantity":{"type":"number"},"burnDate":{"format":"date-time","type":"string"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"required":["id","collectionName","name","kind","chainId","contract","tokenId","image","uri","rarity","rarityRank","description","externalUrl","animationUrl","traits","quantity","burnDate","createdAt","updatedAt"]},"BadgeTagDto":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]},"BadgeAuthorDto":{"type":"object","properties":{"name":{"type":"string"},"uri":{"type":"string"}},"required":["name","uri"]},"CreateBadgeDto":{"type":"object","properties":{"status":{"type":"string","example":"live","enum":["draft","under_review","approved","rejected","live"]},"title":{"type":"string"},"image":{"type":"string","description":"The image URL of the badge. Can be an IPFS url or OpenPage File."},"type":{"type":"string","enum":["achievement","attendance"]},"description":{"type":"string"},"chainId":{"type":"string","description":"The chain ID of the badge.","example":"11155111"},"contract":{"type":"string"},"claimEndDate":{"format":"date-time","type":"string"},"maxClaims":{"type":"number"},"tags":{"description":"Array of tags. Members with matching tags are eligible to claim the badge.","type":"array","items":{"$ref":"#/components/schemas/BadgeTagDto"}},"author":{"$ref":"#/components/schemas/BadgeAuthorDto"}},"required":["title","image","type","description","claimEndDate","maxClaims","tags","author"]},"UpdateBadgeDto":{"type":"object","properties":{"status":{"type":"string","example":"live","enum":["draft","under_review","approved","rejected","live"]},"title":{"type":"string"},"image":{"type":"string","description":"The image URL of the badge. Can be an IPFS url or OpenPage File."},"type":{"type":"string","enum":["achievement","attendance"]},"description":{"type":"string"},"chainId":{"type":"string","description":"The chain ID of the badge.","example":"11155111"},"contract":{"type":"string"},"claimEndDate":{"format":"date-time","type":"string"},"maxClaims":{"type":"number"},"tags":{"description":"Array of tags. Members with matching tags are eligible to claim the badge.","type":"array","items":{"$ref":"#/components/schemas/BadgeTagDto"}},"author":{"$ref":"#/components/schemas/BadgeAuthorDto"}}},"BadgeRequirementDto":{"type":"object","properties":{"title":{"type":"string"},"description":{"type":"string"}},"required":["title","description"]},"BadgeRewardDto":{"type":"object","properties":{"id":{"type":"string"},"image":{"type":"string"},"provider":{"type":"string","enum":["Vault"]},"providerImage":{"type":"string"},"name":{"type":"string"},"type":{"type":"string","enum":["native","erc20","erc721","erc1155","points"]},"status":{"type":"string","enum":["open","pending","sent"]},"vaultId":{"type":"string"},"contract":{"type":"string"},"chainId":{"type":"string"},"amount":{"type":"array","items":{"type":"number"}},"description":{"type":"string"},"endDate":{"format":"date-time","type":"string"},"maxSpend":{"type":"number"},"transactionHash":{"type":"string"},"deletedAt":{"format":"date-time","type":"string"},"sentAt":{"format":"date-time","type":"string"}},"required":["id","image","provider","providerImage","name","type","status","amount","description","endDate","maxSpend"]},"BadgeDto":{"type":"object","properties":{"id":{"type":"string"},"key":{"type":"string"},"title":{"type":"string"},"type":{"type":"string","enum":["achievement","collector","attendance"]},"description":{"type":"string"},"badge":{"type":"string"},"requirements":{"$ref":"#/components/schemas/BadgeRequirementDto"},"rewards":{"type":"array","items":{"$ref":"#/components/schemas/BadgeRewardDto"}},"author":{"type":"object"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"community":{"type":"object"}},"required":["id","key","title","type","description","badge","requirements","rewards","createdAt","updatedAt"]},"CreateBadgeRewardDto":{"type":"object","properties":{"name":{"type":"string"},"image":{"type":"string"},"provider":{"type":"string","enum":["Vault"]},"type":{"type":"string","enum":["native","erc20","erc721","erc1155","points"]},"status":{"type":"string","enum":["open","pending","sent"]},"vaultId":{"type":"string"},"contract":{"type":"string"},"chainId":{"type":"string"},"amount":{"type":"array","items":{"type":"string"}},"description":{"type":"string"},"endDate":{"format":"date-time","type":"string"},"maxSpend":{"type":"number"}},"required":["name","image","provider","type","status","vaultId","contract","chainId","amount","description","endDate","maxSpend"]},"UpdateBadgeRewardDto":{"type":"object","properties":{"name":{"type":"string"},"image":{"type":"string"},"provider":{"type":"string","enum":["Vault"]},"type":{"type":"string","enum":["native","erc20","erc721","erc1155","points"]},"status":{"type":"string","enum":["open","pending","sent"]},"vaultId":{"type":"string"},"contract":{"type":"string"},"chainId":{"type":"string"},"amount":{"type":"array","items":{"type":"string"}},"description":{"type":"string"},"endDate":{"format":"date-time","type":"string"},"maxSpend":{"type":"number"},"transactionHash":{"type":"string"}}},"AccountDto":{"type":"object","properties":{}},"CommunityMembershipDto":{"type":"object","properties":{"id":{"type":"string"},"role":{"type":"string"},"wallet":{"type":"string"},"addMethod":{"type":"string"},"confirmedAt":{"format":"date-time","type":"string"}},"required":["id","role","wallet","addMethod","confirmedAt"]},"CommunityMemberBadgeResponseDto":{"type":"object","properties":{"id":{"type":"string"},"earnedAt":{"format":"date-time","type":"string"},"claimedAt":{"format":"date-time","type":"string"},"transactionHash":{"type":"string"},"tokenId":{"type":"string"},"badge":{"$ref":"#/components/schemas/BadgeDto"},"account":{"$ref":"#/components/schemas/AccountDto"},"membership":{"$ref":"#/components/schemas/CommunityMembershipDto"}},"required":["id","earnedAt","claimedAt","transactionHash","tokenId","badge","account","membership"]},"CreateAttributionDto":{"type":"object","properties":{"wallet":{"type":"string","description":"Wallet address (if not using a claim code)"},"code":{"type":"string","description":"Claim code (if not using a wallet address)"},"autoClaim":{"type":"boolean","description":"Automatically claim the badge for the member. On-chain badges will be airdropped to the wallet immediately."},"metadata":{"type":"object","description":"Additional metadata to be included in the badge attribution"}},"required":["wallet","code"]},"CommunityMemberBadgeAttributionResponseDto":{"type":"object","properties":{"id":{"type":"string"},"badgeId":{"type":"string"},"earnedAt":{"format":"date-time","type":"string"},"claimedAt":{"format":"date-time","type":"string"},"transactionHash":{"type":"string"},"tokenId":{"type":"string"},"chainId":{"type":"number"},"contract":{"type":"string"},"metadata":{"type":"object"},"metadata.[key]":{"type":"object"}},"required":["id","badgeId","earnedAt","claimedAt","transactionHash","tokenId","chainId","contract","metadata","metadata.[key]"]},"UpdateAttributionDto":{"type":"object","properties":{"wallet":{"type":"string","description":"Wallet address (if not using a claim code)"},"metadata":{"type":"object","description":"Metadata to be included in the badge attribution"}},"required":["wallet"]},"CommunityMemberBadgeLeaderboardResponseDto":{"type":"object","properties":{"name":{"type":"string"},"earnedAt":{"format":"date-time","type":"string"},"claimedAt":{"format":"date-time","type":"string"},"wallet":{"type":"string"},"username":{"type":"string"},"displayName":{"type":"string"},"avatar":{"type":"string"},"rewards":{"type":"object"},"metadata.[key]":{"type":"object"}},"required":["name","earnedAt","claimedAt","wallet","username","displayName","avatar","rewards","metadata.[key]"]},"ExperienceLeaderboardPrizeDto":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"imageUrl":{"type":"string"}},"required":["name","description","imageUrl"]},"ExperienceLeaderboardDto":{"type":"object","properties":{"badgeId":{"type":"string"},"metric":{"type":"string","description":"The metric to use for the leaderboard. This key must be present in the badge metadata."},"direction":{"type":"string","enum":["ASC","DESC"]},"totalPlays":{"type":"number"},"prizes":{"type":"array","items":{"$ref":"#/components/schemas/ExperienceLeaderboardPrizeDto"}}},"required":["badgeId","metric","direction"]},"ExperienceDto":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"public":{"type":"boolean"},"secret":{"type":"string"},"imageUrl":{"type":"string"},"bannerUrl":{"type":"string"},"experienceUrl":{"type":"string"},"serverId":{"type":"string"},"serverStatus":{"type":"string","enum":["active","inactive"]},"codeUrl":{"type":"string"},"startDate":{"format":"date-time","type":"string"},"endDate":{"format":"date-time","type":"string"},"type":{"type":"string","enum":["web","mml","unity","instant"]},"communityId":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"leaderboard":{"$ref":"#/components/schemas/ExperienceLeaderboardDto"}},"required":["id","name","description","public","secret","imageUrl","bannerUrl","experienceUrl","serverId","serverStatus","codeUrl","startDate","endDate","type","communityId","createdAt","updatedAt"]},"CreateExperienceDto":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string","enum":["web","mml","unity","instant"]},"description":{"type":"string"},"imageUrl":{"type":"string"},"bannerUrl":{"type":"string"},"codeUrl":{"type":"string"},"startDate":{"format":"date-time","type":"string"},"endDate":{"format":"date-time","type":"string"},"leaderboard":{"$ref":"#/components/schemas/ExperienceLeaderboardDto"}},"required":["name","type","description","imageUrl","bannerUrl","codeUrl","startDate","endDate"]},"UpdateExperienceDto":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"imageUrl":{"type":"string"},"bannerUrl":{"type":"string"},"codeUrl":{"type":"string"},"startDate":{"format":"date-time","type":"string"},"endDate":{"format":"date-time","type":"string"}},"required":["name","description","imageUrl","bannerUrl","codeUrl","startDate","endDate"]},"UpdateExperienceLeaderboardDto":{"type":"object","properties":{"badgeId":{"type":"string"},"metric":{"type":"string","description":"The metric to use for the leaderboard. This key must be present in the badge metadata."},"direction":{"type":"string","enum":["ASC","DESC"]},"totalPlays":{"type":"number"},"prizes":{"type":"array","items":{"$ref":"#/components/schemas/ExperienceLeaderboardPrizeDto"}}}},"CreateFileDto":{"type":"object","properties":{"name":{"type":"string","description":"The name of the file (must include file extension)"}},"required":["name"]},"File":{"type":"object","properties":{}}}}}