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.
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>.
get_tokens
List payout tokens
Returns active payout tokens. Tokens are either POINTS (community points, no chain) or ERC20 (onchain, with an address, chain id and decimals).
Pass projectId to get the tokens a specific community pays in. When projectId is set the type filter is ignored.
With no arguments this returns every active token on the platform, which includes the points tokens of communities the key does not manage.
Arguments
typeenum | nullIgnored when projectId is set.
ERC20POINTSprojectIdstring | nullA community id from list_manageable_projects.
Returns
Fields inside result.
idstringsymbolstringnamestringlogostring | nulladdressstring | nullContract address. Null for POINTS tokens.
chainIdstring | nulldecimalsintegerstatusenumACTIVEINACTIVEtypeTokenTypeERC20POINTSErrors
400An argument failed schema validation. The message names the offending field and its allowed values.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.
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"}}'const res = await fetch("https://app.airaa.xyz/api/ai/mcp/tools/get_tokens/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_tokens/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": "4e8c1a95-7d20-4f63-b8a1-06d9e5c34f27",
"symbol": "USDC",
"name": "USD Coin",
"logo": "https://basescan.org/token/images/centre-usdc_28.png",
"address": "0x3AF9cB6000b310c909e10f79A9Ec642960eeEe99",
"chainId": "8453",
"decimals": 18,
"status": "ACTIVE",
"type": "ERC20"
},
{
"id": "b81c4d02-5f6a-4e33-a1d7-92e845bc0f16",
"symbol": "LUM",
"name": "Lumen Points",
"logo": "https://cdn.airaa.xyz/images/tokens/lumen.jpg",
"address": null,
"chainId": null,
"decimals": 0,
"status": "ACTIVE",
"type": "POINTS"
}
]
}get_user_info
Get the key owner
Returns the profile of the user the key belongs to: account flags, X profile, connected social accounts, wallets, aura points and the last known request location.
Useful for confirming which account a key is acting as before you run anything else.
Arguments
No arguments. Send {"args": {}}.
Returns
Fields inside result.
idstringemailstring | nullbadgestring | nullstatusstring | nullisActivebooleanverifiedbooleanisScoutbooleantwitterProfileIdstring | nullturnkeyExternalUserIdstring | nulltelegramIdstring | nulltelegramUsernamestring | nullprivacyApprovedbooleanisClaimedbooleanprofileTwitterProfile | nulltotalBalancestring | nulltotalVolumestring | nulltotalDappsInteractedinteger | nulltotalAuraPointsintegerprimaryWalletAddressstring | nullprimaryWalletBalancestring | nullcreatedAtstringupdatedAtstringnamestring | nullphotoUrlstring | nulluserNichearray of stringusernamestringbiostring | nullnichearray of stringspamMultipliernumber | nullwalletsarray of objectisAiraaCreatorbooleanisCampaignCreatorbooleanonboardingCompletedbooleanaccountsarray of objectConnected social accounts.
locationobject | nullErrors
401The key is missing or not valid.405Execute endpoints accept POST only.
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": {}}'const res = await fetch("https://app.airaa.xyz/api/ai/mcp/tools/get_user_info/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/get_user_info/execute",
headers={"Authorization": f"Bearer {os.environ['AIRAA_API_KEY']}"},
json={
"args": {}
},
)
res.raise_for_status()
result = res.json()["result"]Response
{
"result": {
"id": "8d15b4c7-3e29-4a60-9f81-6b2c7e04d5a3",
"email": "alex@lumenlabs.example",
"badge": null,
"status": null,
"isActive": true,
"verified": true,
"isScout": false,
"twitterProfileId": "f61a2c48-9b73-4d05-8e2f-30c7a95b1e64",
"turnkeyExternalUserId": "5b0d9e37-2a46-4c81-b7f3-89e14d6a02c5",
"telegramId": null,
"telegramUsername": null,
"privacyApproved": false,
"isClaimed": false,
"profile": {
"id": "f61a2c48-9b73-4d05-8e2f-30c7a95b1e64",
"externalId": "766921563169959936",
"name": "Alex Morgan",
"username": "alexmorgan",
"url": "https://twitter.com/alexmorgan",
"description": "Building Lumen Labs",
"profileImageUrl": "https://pbs.twimg.com/profile_images/example/avatar.jpg",
"followersCount": 2419,
"smartFollowersCount": 6,
"followingCount": 1743,
"profileCreatedAt": "2016-08-20T08:55:24.000Z",
"contentCount": 4516,
"accountBasedIn": null
},
"totalBalance": null,
"totalVolume": null,
"totalDappsInteracted": null,
"totalAuraPoints": 90,
"primaryWalletAddress": "0x7a3f9c21e845bd06f1a2c9e37b508d4a6f2e1c93",
"primaryWalletBalance": null,
"createdAt": "2026-05-31T11:02:45.414Z",
"updatedAt": "2026-08-15T20:54:13.718Z",
"name": "Alex",
"photoUrl": "https://cdn.airaa.xyz/images/profile-placeholders/image2.webp",
"userNiche": [
"Creator",
"Tech",
"Business"
],
"username": "alexmorgan",
"bio": "Building in public",
"niche": [
"SOCIAL/CONSUMER"
],
"spamMultiplier": 0.01,
"wallets": [
{
"updatedAt": "2026-06-18T12:35:44.412Z",
"address": "0x7a3f9c21e845bd06f1a2c9e37b508d4a6f2e1c93",
"type": "EVM",
"projectSlug": null,
"isPrimary": true
}
],
"isAiraaCreator": true,
"isCampaignCreator": false,
"onboardingCompleted": true,
"accounts": [
{
"platformId": "2b8e4a6c-9d03-4f17-c5b2-0a38e6d94f71",
"platformName": "Instagram",
"externalId": "2981370973",
"externalUsername": "alexmorgan",
"connectedAt": "2026-07-31T14:51:10.812Z"
}
],
"location": {
"country": "United States",
"countryCode": "US",
"proxy": false,
"hosting": false,
"lastUpdatedAt": "2026-08-15T16:17:53.558Z"
}
}
}get_current_datetime
Get the server clock
Returns the current date and time, optionally in a given IANA timezone. Mainly useful for agents that need to resolve relative dates such as "this month" before calling get_project_leaderboard.
Over HTTP this returns a locale formatted string such as 8/16/2026, 2:12:52 AM. The same tool called over MCP returns an ISO 8601 timestamp. Parse defensively.
Arguments
timezonestring | nullIANA timezone name. Defaults to UTC.
Returns
Fields inside result.
datetimestringLocale formatted date and time over HTTP.
timezonestringErrors
400An argument failed schema validation. The message names the offending field and its allowed values.401The key is missing or not valid.405Execute endpoints accept POST only.
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": "UTC"}}'const res = await fetch("https://app.airaa.xyz/api/ai/mcp/tools/get_current_datetime/execute", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.AIRAA_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"args": {
"timezone": "UTC"
}
}),
});
const { result } = await res.json();import os
import requests
res = requests.post(
"https://app.airaa.xyz/api/ai/mcp/tools/get_current_datetime/execute",
headers={"Authorization": f"Bearer {os.environ['AIRAA_API_KEY']}"},
json={
"args": {
"timezone": "UTC"
}
},
)
res.raise_for_status()
result = res.json()["result"]Response
{
"result": {
"datetime": "8/16/2026, 2:12:52 AM",
"timezone": "Asia/Kolkata"
}
}