The Airaa API gives you programmatic access to your own communities: campaigns, creator submissions, engagement, members, leaderboards and payout tokens.
It is the same set of tools an AI assistant sees when you connect Airaa over MCP. Anything Claude or Cursor can read through the connector, you can read with a single HTTP call.
What you can read
| Area | Tools |
|---|---|
| Communities | list_manageable_projects, get_project_info |
| Campaigns | get_my_campaigns, get_campaign_details, get_clipping_campaign_detail |
| Submissions | get_campaign_submissions, get_clipping_owner_submissions |
| People | get_project_members_detailed, get_project_leaderboard |
| Account | get_user_info, get_tokens, get_current_datetime |
Every field of every response is documented in the endpoint pages, grouped by area: Communities, Campaigns, Submissions, People and Account.
Get a key
- Open the Airaa dashboard.
- Go to Profile then API key.
- Create a key. It looks like
airaa_00000000-0000-0000-0000-000000000000.
Your key acts as you. It can only reach communities where you are already an admin or a moderator, so it can never see another brand's data. You can rotate it whenever you want.
Your first call
Every endpoint is a POST to the same shape, with arguments wrapped in an args object.
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": {}}'
{
"result": {
"projects": [
{
"projectId": "3f2a9c7e-1b84-4d5a-9e60-7c1af2b83d41",
"slug": "lumenlabs",
"name": "Lumen Labs",
"role": "ADMIN"
}
]
}
}
Successful responses always return a single result key.
Connect an agent
Claude Code, Claude Desktop and Cursor speak MCP natively, so they pick the tools up with no code.
claude mcp add --transport http --scope user airaa \
https://app.airaa.xyz/api/mcp \
--header "Authorization: Bearer airaa_<your-key>"
For editors that use a JSON config file:
{
"mcpServers": {
"airaa": {
"type": "http",
"url": "https://app.airaa.xyz/api/mcp",
"headers": {
"Authorization": "Bearer airaa_<your-key>"
}
}
}
}
Then ask in plain language: "Who earned the most in my community this month?"
Choosing a community
Most tools need a projectId. If you do not already have one, call list_manageable_projects first and use an id from that response.
- No results means the key cannot reach any community data.
- One result means you can use it directly.
- Several results means you pick the one you want by
name,slugorprojectId.
Passing a projectId you do not administer returns 403.
Pagination
Paginated tools take page (starting at 1) and limit (1 to 100), and return a metadata object:
{
"metadata": { "page": 1, "limit": 10, "totalItems": 44, "totalPages": 5 }
}
Two exceptions worth knowing:
get_my_campaignsreturns acountsobject instead ofmetadata.get_project_members_detailedreturns a bare array with nometadataat all, so nothing in the response tells you whether more pages exist.
Errors
| Status | Meaning |
|---|---|
400 | An argument is missing or failed validation. The message names the field. |
401 | The key is missing or not valid. |
403 | The key is valid but you do not administer that community. |
404 | No such tool, or no campaign with that id. |
405 | Execute endpoints accept POST only. |
500 | An id argument was not a valid UUID. |
Reference
Full request and response schemas for all twelve tools, with examples: