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.

Every other tool needs a projectId. These two are where you get one, and where you read what a community is: its profile, its team, and the totals it has paid out.

Base URL
https://app.airaa.xyz

Every 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

POST/api/ai/mcp/tools/list_manageable_projects/execute

Which communities can this key reach?

Every other tool needs a projectId, and this is where you get one. Returns the communities where you are an admin or a moderator. An empty list means the key cannot reach any community data. Passing a projectId you do not administer returns 403 everywhere else.

Arguments

No arguments. Send {"args": {}}.

Returns

Fields inside result.

projectsarray of ManageableProject

Errors

  • 400An argument is missing or failed validation; the message names the field. Also returned when a required projectId is omitted.
  • 401The key is missing or not valid.
  • 403The key is valid but you do not administer that community.
  • 404No such tool, or no campaign with that id.
  • 429Too many requests. Tool execution is limited to 120 calls per minute per user.

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": {}}'

Response

200
{
  "result": {
    "projects": [
      {
        "projectId": "3f2a9c7e-1b84-4d5a-9e60-7c1af2b83d41",
        "slug": "lumenlabs",
        "name": "Lumen Labs",
        "role": "ADMIN",
        "logo": "https://cdn.airaa.xyz/projects/lumenlabs/logo.png",
        "pointsToken": {
          "id": "b6c0e83f-4a71-4d92-8e15-3c7f9021ba64",
          "name": "Lumen Points",
          "symbol": "LUMEN",
          "logo": "https://cdn.airaa.xyz/tokens/lumen.png"
        },
        "campaignCommission": 10
      },
      {
        "projectId": "8b41d0c5-72e6-4a19-8f3b-2d95e4a17c68",
        "slug": "northwind",
        "name": "Northwind Audio",
        "role": "MODERATOR",
        "logo": null,
        "pointsToken": null,
        "campaignCommission": 10
      }
    ]
  }
}

get_project_info

Get a community profile

POST/api/ai/mcp/tools/get_project_info/execute

What is this community, and how big is it?

The community's profile (name, slug, category, logo, banner, description and connected socials) alongside the totals the dashboard header shows: member counts, active and total campaigns, rewards and points distributed, the team roster, and X follower counts.

projectId is required. Omitting it returns 400.

Arguments

projectIdstring | nullrequired

The community id, from list_manageable_projects.

Returns

Fields inside result.

idstring
slugstring
namestring
isWhitelabelEnabledboolean
categorystring | null
logostring | null
bannerstring | null
descriptionstring | null
twitterProfileUrlstring | null

X profile URL. Same value as socials.x.

totalMemberCountinteger
activeMembersCountinteger
isUserMemberboolean
userMembershipStatusenum | null
ACTIVEINACTIVEPENDINGSUSPENDED
userRoleenum | null
MEMBERMODERATORADMIN
activeCampaignsCountinteger
totalCampaignsCountinteger
rewardsDistributedstring | null

Total ERC20 value paid out across all campaigns. Decimal string.

totalPointsDistributedstring | null

Total community points awarded. Decimal string.

erc20Totalsarray of TokenTotal
pointsTotalsarray of TokenTotal
teamMembersarray of TeamMember
twitterFollowersCountinteger
pointsTokenobject | null
socialsCommunitySocials

Only the platforms the community has connected are present.

pendingActionsobject

Queues waiting on an admin: creators who applied to a gig, and people who asked to join the community. Each carries a count and the first few rows.

Errors

  • 400An argument is missing or failed validation; the message names the field. Also returned when a required projectId is omitted.
  • 401The key is missing or not valid.
  • 403The key is valid but you do not administer that community.
  • 404No such tool, or no campaign with that id.
  • 429Too many requests. Tool execution is limited to 120 calls per minute per user.

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"}}'

Response

200
{
  "result": {
    "id": "3f2a9c7e-1b84-4d5a-9e60-7c1af2b83d41",
    "slug": "lumenlabs",
    "name": "Lumen Labs",
    "isWhitelabelEnabled": false,
    "category": "Tech",
    "logo": "https://cdn.airaa.xyz/projects/lumenlabs/logo.png",
    "banner": "https://cdn.airaa.xyz/projects/lumenlabs/banner.png",
    "description": "Focus tooling for people who build things.",
    "twitterProfileUrl": "https://x.com/lumenlabs",
    "totalMemberCount": 1284,
    "activeMembersCount": 417,
    "isUserMember": true,
    "userMembershipStatus": "ACTIVE",
    "userRole": "ADMIN",
    "activeCampaignsCount": 2,
    "totalCampaignsCount": 11,
    "rewardsDistributed": "48210.50",
    "totalPointsDistributed": "1920000",
    "erc20Totals": [
      {
        "totalAmount": "48210.50",
        "symbol": "USDC",
        "decimals": 6
      }
    ],
    "pointsTotals": [
      {
        "totalAmount": "1920000",
        "symbol": "LUMEN",
        "decimals": 0
      }
    ],
    "teamMembers": [
      {
        "userId": "d3b71f68-92a4-4c05-8e37-6b1902ac4f5d",
        "role": "ADMIN",
        "photoUrl": "https://cdn.airaa.xyz/users/priya.jpg",
        "username": "priyanotes",
        "name": "Priya R."
      }
    ],
    "twitterFollowersCount": 84500,
    "pointsToken": {
      "symbol": "LUMEN",
      "logo": "https://cdn.airaa.xyz/tokens/lumen.png"
    },
    "socials": {
      "web": "https://lumenlabs.com/",
      "twitter": "https://x.com/lumenlabs",
      "telegram": null,
      "discord": "https://discord.gg/lumenlabs",
      "youtube": null,
      "instagram": "https://instagram.com/lumenlabs",
      "tiktok": null
    },
    "pendingActions": {
      "gigApplications": {
        "count": 18,
        "preview": [
          {
            "userId": "5e9c1a47-3d20-4b68-9f15-8c7e2a04d3b1",
            "username": "marasolace",
            "photoUrl": "https://cdn.airaa.xyz/users/mara.jpg"
          }
        ]
      },
      "joinRequests": {
        "count": 4,
        "preview": [
          {
            "userId": "2c8f45d1-6e93-40a7-b25c-1d3e9f7a6b08",
            "username": "devonbuilds",
            "photoUrl": "https://cdn.airaa.xyz/users/devon.jpg"
          }
        ]
      }
    }
  }
}