Account

The key's owner, the tokens campaigns pay out in, and the server clock.

3 endpoints, generated from openapi.yaml. New to the API? Start with the Overview.

Which account the key acts as, the tokens campaigns can pay out in, and the server clock.

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>.

get_user_info

Get user info

POST/api/ai/mcp/tools/get_user_info/execute

Which account is this key acting as?

The key owner's own profile: name, username, bio, niches, connected social accounts, X profile details, wallets, primary wallet address and display country.

Arguments

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

Returns

Fields inside result.

idstring
emailstring | null
namestring | null
usernamestring
biostring | null
photoUrlstring | null
twitterProfileIdstring | null

Id of the connected X profile, the same value as profile.id.

profileTwitterProfile | null
userNichearray of string

Niches the key owner picked during onboarding or later on their profile page.

primaryWalletAddressstring | null
totalBalancestring | null

Portfolio value across wallets. Decimal string.

walletsarray of Wallet
accountsarray of ConnectedAccount
locationUserLocation | null

Display country only, from the last known request IP.

isAiraaCreatorboolean

True if this account is listed under Airaa certified creators when a brand picks who can join a campaign.

createdAtstring
updatedAtstring

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_user_info/execute \
  -H "Authorization: Bearer $AIRAA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"args": {}}'

Response

200
{
  "result": {
    "id": "d3b71f68-92a4-4c05-8e37-6b1902ac4f5d",
    "email": "priya@lumenlabs.com",
    "name": "Priya R.",
    "username": "priyanotes",
    "bio": "Building Lumen Labs.",
    "photoUrl": "https://cdn.airaa.xyz/users/priya.jpg",
    "twitterProfileId": "aa10f39c-6d54-4b82-9e07-1c8b45a2f36d",
    "profile": {
      "id": "aa10f39c-6d54-4b82-9e07-1c8b45a2f36d",
      "externalId": "1487200364115738624",
      "name": "Priya R.",
      "username": "priyanotes",
      "url": "https://x.com/priyanotes",
      "description": "Building Lumen Labs.",
      "profileImageUrl": "https://cdn.airaa.xyz/users/priya-x.jpg",
      "followersCount": 12400,
      "followingCount": 641,
      "profileCreatedAt": "2022-01-29T11:04:00.000Z",
      "contentCount": 3182,
      "accountBasedIn": "United States"
    },
    "userNiche": [
      "Tech",
      "Business"
    ],
    "primaryWalletAddress": "0x7a2f19c48b0d6e35a1c9f803b7e24d6015c8ab39",
    "totalBalance": "8412.77",
    "wallets": [
      {
        "address": "0x7a2f19c48b0d6e35a1c9f803b7e24d6015c8ab39",
        "type": "EVM",
        "isPrimary": true,
        "projectSlug": null,
        "updatedAt": "2026-08-19T07:41:52.000Z"
      }
    ],
    "accounts": [
      {
        "platformId": "6e2c81b4-3f97-40da-85c1-b70d924ef3a8",
        "platformName": "Twitter/X",
        "externalId": "1487200364115738624",
        "externalUsername": "priyanotes",
        "connectedAt": "2026-02-14T09:20:00.000Z"
      }
    ],
    "location": {
      "country": "United States",
      "countryCode": "US"
    },
    "isAiraaCreator": false,
    "createdAt": "2026-02-14T09:18:31.000Z",
    "updatedAt": "2026-08-19T07:41:52.000Z"
  }
}

get_tokens

List payout tokens

POST/api/ai/mcp/tools/get_tokens/execute

What tokens can campaigns pay out in?

Active payout tokens, of two kinds: ERC20 tokens paid on-chain, and POINTS tokens a community mints for itself. Setting projectId returns that community's token and causes the type filter to be ignored. Sending neither argument returns every active token.

Arguments

typeobject

Token type to fetch. Ignored when projectId is set.

projectIdstring | null

The community id. Narrows the result to that community's token, and causes the type filter to be ignored.

Returns

Fields inside result.

Array item
idstring
symbolstring
namestring
logostring | null
addressstring | null

ERC20 contract address. Null for POINTS tokens.

chainIdstring | null

EVM chain id as a string. Null for POINTS tokens.

decimalsinteger
statusenum
ACTIVEINACTIVE
typeenum
ERC20POINTS

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_tokens/execute \
  -H "Authorization: Bearer $AIRAA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"args": {"projectId": "3f2a9c7e-1b84-4d5a-9e60-7c1af2b83d41"}}'

Response

200
{
  "result": [
    {
      "id": "5c1a908e-47b3-4f26-90d8-e2f74b613a05",
      "symbol": "USDC",
      "name": "USD Coin",
      "logo": "https://cdn.airaa.xyz/tokens/usdc.png",
      "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
      "chainId": "8453",
      "decimals": 6,
      "status": "ACTIVE",
      "type": "ERC20"
    },
    {
      "id": "b6c0e83f-4a71-4d92-8e15-3c7f9021ba64",
      "symbol": "LUMEN",
      "name": "Lumen Points",
      "logo": "https://cdn.airaa.xyz/tokens/lumen.png",
      "address": null,
      "chainId": null,
      "decimals": 0,
      "status": "ACTIVE",
      "type": "POINTS"
    }
  ]
}

get_current_datetime

Get the server clock

POST/api/ai/mcp/tools/get_current_datetime/execute

What time is it on the server?

The current date and time in UTC, or in any IANA timezone you name. Useful for building the startDate and endDate range that get_project_earnings_leaderboard requires.

Arguments

timezonestring | null

IANA timezone name (e.g. "America/New_York"). Defaults to UTC when not provided.

defaults to "UTC"

Returns

Fields inside result.

datetimestring
timezonestring

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_current_datetime/execute \
  -H "Authorization: Bearer $AIRAA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"args": {"timezone": "America/New_York"}}'

Response

200
{
  "result": {
    "datetime": "2026-08-28T09:14:02.000-04:00",
    "timezone": "America/New_York"
  }
}