Official Python SDK for interacting with the CommunityOne API. This SDK provides both synchronous and asynchronous methods to interact with CommunityOne's API endpoints.
CommunityOne is a platform that helps Discord communities grow and engage their members through quests, rewards, and gamification.
You can install the package using pip:
pip install communityone
from communityone import CommunityOneSDK
# Initialize the SDK with your server ID and API key
sdk = CommunityOneSDK(server_id=YOUR_SERVER_ID, api_key="YOUR_API_KEY")
# Get all custom quests
custom_quests = sdk.get_custom_quests()
# Get player information
player_info = sdk.get_player_info(discord_user_id="DISCORD_USER_ID")
# Complete a custom quest
result = sdk.complete_custom_quest(custom_quest_id="CUSTOM_QUEST_ID", discord_user_id="DISCORD_USER_ID")
# Get completed members for a quest
completed_members = sdk.get_completed_members(custom_quest_id="CUSTOM_QUEST_ID")
The SDK also provides async methods for all operations:
import asyncio
from communityone import CommunityOneSDK
async def main():
sdk = CommunityOneSDK(server_id=YOUR_SERVER_ID, api_key="YOUR_API_KEY")
# Get custom quests asynchronously
custom_quests = await sdk.get_custom_quests_async()
# Get player information asynchronously
player_info = await sdk.get_player_info_async("DISCORD_USER_ID")
# Complete a custom quest asynchronously
result = await sdk.complete_custom_quest_async(custom_quest_id="CUSTOM_QUEST_ID", discord_user_id="DISCORD_USER_ID")
# Get completed members asynchronously
completed_members = await sdk.get_completed_members_async(custom_quest_id="CUSTOM_QUEST_ID")
# Run the async code
asyncio.run(main())
get_custom_quests()
: Get all custom quests for the serverget_player_info(discord_user_id)
: Get information about a playercomplete_custom_quest(custom_quest_id, discord_user_id)
: Mark a custom quest as completedget_completed_members(custom_quest_id)
: Get all members who completed a quest
get_custom_quests_async()
: Get all custom quests for the server asynchronouslyget_player_info_async(discord_user_id)
: Get player information asynchronouslycomplete_custom_quest_async(custom_quest_id, discord_user_id)
: Complete a quest asynchronouslyget_completed_members_async(custom_quest_id)
: Get completed members asynchronously
CommunityOne allows you to test the full quest completion workflow in your application without affecting production quests data, helping you verify quest functionality before releasing it to your community. When a quest is in testing mode:
- The quest won't be visible to regular Discord server members
- No code changes needed! - use the same SDK methods for testing and production quests (the API automatically routes to our internal test environment)
How to enable:
- Go to your server's CommunityOne dashboard
- Navigate to Hype Engine > Custom Quests
- Click the Edit button on your quest
- Enable testing mode
All API endpoints are subject to rate limiting:
- 60 requests per minute per server
- Rate limits are applied separately for each endpoint
- Exceeding the rate limit will result in a 429 Too Many Requests response
- Python 3.7 or higher
- requests>=2.25.0
- aiohttp>=3.8.0
This project is licensed under the MIT License - see the LICENSE file for details.