Communities
Find the communities a key can reach, and read one community's profile, team and totals.
2 endpoints, generated from openapi.yaml. New to the API? Start with the Overview.
https://app.airaa.xyzEvery tool is a POST to /api/ai/mcp/tools/{tool}/execute with arguments wrapped in an args object, authorised with Authorization: Bearer airaa_<key>.
list_manageable_projects
List communities you can manage
Returns the communities where the authenticated user is an admin or a moderator, with projectId, slug, name and role.
Call this first whenever you need a projectId and do not already have one. If it returns nothing, the key cannot reach any community data and there is no other lookup that will work.
Arguments
No arguments. Send {"args": {}}.
Returns
Fields inside result.
projectsarray of ManageableProjectErrors
401The key is missing or not valid.405Execute endpoints accept POST only.
Request
curl -X POST https://app.airaa.xyz/api/ai/mcp/tools/list_manageable_projects/execute \
-H "Authorization: Bearer $AIRAA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"args": {}}'const res = await fetch("https://app.airaa.xyz/api/ai/mcp/tools/list_manageable_projects/execute", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.AIRAA_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"args": {}
}),
});
const { result } = await res.json();import os
import requests
res = requests.post(
"https://app.airaa.xyz/api/ai/mcp/tools/list_manageable_projects/execute",
headers={"Authorization": f"Bearer {os.environ['AIRAA_API_KEY']}"},
json={
"args": {}
},
)
res.raise_for_status()
result = res.json()["result"]Response
{
"result": {
"projects": [
{
"projectId": "3f2a9c7e-1b84-4d5a-9e60-7c1af2b83d41",
"slug": "lumenlabs",
"name": "Lumen Labs",
"guildEnabled": true,
"role": "ADMIN",
"demoMode": false,
"isPersonalProject": false,
"accentColor": "#f5cb42",
"logo": "https://cdn.airaa.xyz/images/projects/logo/3f2a9c7e-1b84-4d5a-9e60-7c1af2b83d41.png",
"pointsToken": {
"id": "b81c4d02-5f6a-4e33-a1d7-92e845bc0f16",
"name": "Lumen Points",
"symbol": "LUM",
"logo": ""
},
"campaignCommission": 50
}
]
}
}get_project_info
Get a community profile
Returns a community overview: metadata, the authenticated user's membership status and role, member counts, campaign and rewards totals, team members, X follower counts, points token and social links.
projectId is required in practice. The tool schema marks it optional, but omitting it returns 400.
Arguments
projectIdstringrequiredA community id from list_manageable_projects.
Returns
Fields inside result.
idstringslugstringnamestringisWhitelabelEnabledbooleancategorystring | nulllogostring | nullbannerstring | nulldescriptionstring | nulltwitterProfileUrlstring | nulltotalMemberCountintegerisUserMemberbooleanuserMembershipStatusenum | nullACTIVEINACTIVEPENDINGSUSPENDEDuserRoleMemberRole | nullMEMBERMODERATORADMINactiveCampaignsCountintegertotalCampaignsCountintegerrewardsDistributedstringTotal ERC20 value paid out, as a decimal string.
totalPointsDistributedstringerc20Totalsarray of TokenTotalpointsTotalsarray of TokenTotalactiveMembersCountintegerteamMembersarray of objectsmartFollowersCountintegerpointsTokenobjecttwitterFollowersCountintegerdemoModebooleanchecklistobjectsocialsobjectPresent keys vary by what the community has connected.
Errors
400projectIdwas not supplied.401The key is missing or not valid.403The key is valid but the user does not administer the requested community.405Execute endpoints accept POST only.500An id argument was not a valid UUID. The API currently surfaces the underlying database error rather than a validation message, so validate ids before sending them.
Request
curl -X POST https://app.airaa.xyz/api/ai/mcp/tools/get_project_info/execute \
-H "Authorization: Bearer $AIRAA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"args": {"projectId": "3f2a9c7e-1b84-4d5a-9e60-7c1af2b83d41"}}'const res = await fetch("https://app.airaa.xyz/api/ai/mcp/tools/get_project_info/execute", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.AIRAA_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"args": {
"projectId": "3f2a9c7e-1b84-4d5a-9e60-7c1af2b83d41"
}
}),
});
const { result } = await res.json();import os
import requests
res = requests.post(
"https://app.airaa.xyz/api/ai/mcp/tools/get_project_info/execute",
headers={"Authorization": f"Bearer {os.environ['AIRAA_API_KEY']}"},
json={
"args": {
"projectId": "3f2a9c7e-1b84-4d5a-9e60-7c1af2b83d41"
}
},
)
res.raise_for_status()
result = res.json()["result"]Response
{
"result": {
"id": "3f2a9c7e-1b84-4d5a-9e60-7c1af2b83d41",
"slug": "lumenlabs",
"name": "Lumen Labs",
"isWhitelabelEnabled": true,
"category": "Tech",
"logo": "https://cdn.airaa.xyz/images/projects/logo/3f2a9c7e-1b84-4d5a-9e60-7c1af2b83d41.png",
"banner": "https://cdn.airaa.xyz/images/projects/banner/3f2a9c7e-1b84-4d5a-9e60-7c1af2b83d41.jpeg",
"description": "We see, we create, we earn",
"twitterProfileUrl": "https://x.com/lumenlabs",
"totalMemberCount": 10,
"isUserMember": true,
"userMembershipStatus": "ACTIVE",
"userRole": "ADMIN",
"activeCampaignsCount": 33,
"totalCampaignsCount": 35,
"rewardsDistributed": "371.4",
"totalPointsDistributed": "53018",
"erc20Totals": [
{
"totalAmount": "371.40000000",
"symbol": "USDC",
"decimals": 18
}
],
"pointsTotals": [
{
"totalAmount": "53017.00000000",
"symbol": "LUM",
"decimals": 0
}
],
"activeMembersCount": 10,
"teamMembers": [
{
"userId": "8d15b4c7-3e29-4a60-9f81-6b2c7e04d5a3",
"role": "ADMIN",
"photoUrl": "https://cdn.airaa.xyz/images/user-avatars/8d15b4c7-3e29-4a60-9f81-6b2c7e04d5a3",
"username": "alexmorgan",
"name": "Alex Morgan"
},
{
"userId": "c40f7a15-9e2b-4c86-b1d3-58a90e6f27b4",
"role": "MODERATOR",
"photoUrl": "https://cdn.airaa.xyz/images/profile-placeholders/image3.webp",
"username": "mayaokonkwo",
"name": "Maya Okonkwo"
}
],
"smartFollowersCount": 1,
"pointsToken": {
"symbol": "LUM",
"logo": null
},
"twitterFollowersCount": 105,
"demoMode": false,
"checklist": {
"hasAnnouncement": true,
"hasGig": true
},
"socials": {
"x": "https://x.com/lumenlabs",
"telegram": "https://t.me/lumenlabs",
"discord": "https://discord.gg/lumenlabs",
"youtube": "https://youtube.com/@lumenlabs",
"instagram": "https://instagram.com/lumenlabs",
"tiktok": "https://tiktok.com/@lumenlabs"
}
}
}