Skip to main content
GET
/
v0
/
profiles
/
{address}
Get Wallet Profile
curl --request GET \
  --url https://api.formo.so/v0/profiles/{address} \
  --header 'Authorization: Bearer <token>'
{
  "isSuccess": true,
  "data": {
    "address": "0x9CC3cB28cd94eB4423B15cdA73346e204f59a407",
    "net_worth_usd": 125000.5,
    "ens": "vitalik.eth",
    "farcaster": null,
    "lens": null,
    "basenames": null,
    "linea": null,
    "discord": null,
    "telegram": null,
    "website": "https://example.com",
    "github": "github.com/username",
    "twitter": "@username",
    "linkedin": null,
    "email": null,
    "instagram": null,
    "facebook": null,
    "tiktok": null,
    "youtube": null,
    "reddit": null,
    "avatar": "https://example.com/avatar.png",
    "description": "Wallet description",
    "display_name": "Display Name",
    "updated_at": "2025-01-20T14:22:00Z",
    "tx_count": 1234,
    "first_onchain": "2024-01-15T10:30:00Z",
    "last_onchain": "2025-01-20T14:22:00Z",
    "first_seen": "2024-01-15T10:30:00Z",
    "last_seen": "2025-01-20T14:22:00Z",
    "first_utm_source": "google",
    "last_utm_source": "direct",
    "first_utm_medium": "cpc",
    "last_utm_medium": null,
    "first_utm_campaign": "summer_sale",
    "last_utm_campaign": null,
    "first_utm_content": null,
    "last_utm_content": null,
    "first_utm_term": null,
    "last_utm_term": null,
    "first_referrer": "example.com",
    "last_referrer": null,
    "first_referrer_url": "https://example.com/page",
    "last_referrer_url": null,
    "first_ref": "ref123",
    "last_ref": null,
    "location": "US",
    "device": "Desktop",
    "browser": "Chrome",
    "os": "macOS",
    "last_type": "track",
    "last_event": "Page Viewed",
    "last_properties": "{\"page\":\"/home\"}",
    "num_sessions": 45,
    "revenue": 1500.75,
    "volume": 50000,
    "points": 2500,
    "activity_dates": [
      "2024-01-15",
      "2024-01-16",
      "2024-01-20"
    ],
    "chains": [
      {
        "chain_id": "1",
        "net_worth_usd": 100000,
        "tx_count": 1000,
        "first_onchain": "2024-01-15T10:30:00Z",
        "last_onchain": "2025-01-20T14:22:00Z"
      },
      {
        "chain_id": "137",
        "net_worth_usd": 25000.5,
        "tx_count": 234,
        "first_onchain": "2024-03-01T08:00:00Z",
        "last_onchain": "2025-01-18T12:00:00Z"
      }
    ],
    "labels": [
      {
        "id": "label_123",
        "value": "Whale",
        "chain_id": "1",
        "source": "manual"
      }
    ],
    "apps": [
      {
        "chain_id": "1",
        "id": "uniswap",
        "name": "Uniswap",
        "img": "https://example.com/uniswap.png",
        "url": "https://uniswap.org",
        "balance_usd": 50000
      }
    ],
    "tokens": [
      {
        "chain_id": "1",
        "token_address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
        "app_id": "usdc",
        "name": "USD Coin",
        "symbol": "USDC",
        "img": "https://example.com/usdc.png",
        "decimals": 6,
        "price": 1,
        "balance": "1000000000",
        "balance_usd": 1000
      }
    ]
  }
}
Retrieves wallet profile information for a given address. Returns comprehensive profile data including wallet properties, labels, tokens, and apps. If you have Formo installed on your website and app, you will also get the user’s web demographics (country, device, browser, operating system), lifecycle, volume, and revenue.
Profiles API architecture diagram showing user device, Profiles API, and Wallet Profiles interaction

Authentication

This endpoint requires authentication using a Workspace API Key with profiles:read permission. Include the API key in your request headers:
Authorization: Bearer <your_workspace_api_key>
The API key needs to have the read permission for profiles in the API settings. You can configure this in your workspace API key settings.

Path parameters

  • address (string): EVM Wallet address e.g. 0x0000000000000000000000000000000000000000.

Query parameters

expand

Comma-separated list of optional sections to include in the response. Supported values:
  • apps - DeFi app interactions and balances
  • chains - Per-chain activity metrics (net worth, tx count, first/last activity per chain)
  • tokens - Token holdings with balances and prices
  • labels - Wallet labels from various sources
Examples:
curl -sS \
  -H "Authorization: Bearer <your_workspace_api_key>" \
  "https://api.formo.so/v0/profiles/0x0000000000000000000000000000000000000000?expand=apps,chains,tokens,labels"
The apps, chains, and tokens collections are capped at 50 items each.

Response Fields

Core Profile Data

FieldTypeDescription
addressstringThe wallet address
net_worth_usdnumberTotal net worth in USD across all chains
tx_countintegerTotal transaction count across all chains
first_onchainstring | nullFirst on-chain activity timestamp (ISO 8601)
last_onchainstring | nullLast on-chain activity timestamp (ISO 8601)
updated_atstring | nullLast profile update timestamp (ISO 8601)

Lifecycle

FieldTypeDescription
lifecyclestring | nullUser lifecycle stage based on activity patterns
Possible lifecycle values:
  • New - Recently acquired user
  • Returning - User who has returned after absence
  • Power user - Highly active user
  • Resurrected - User who returned after long absence
  • Churned - User who has stopped engaging

Social & Identity

FieldTypeDescription
ensstring | nullENS name
farcasterstring | nullFarcaster username
lensstring | nullLens handle
basenamesstring | nullBase names
lineastring | nullLinea identifier
discordstring | nullDiscord username
telegramstring | nullTelegram username
twitterstring | nullTwitter/X handle
githubstring | nullGitHub username
linkedinstring | nullLinkedIn profile
emailstring | nullEmail address
websitestring | nullWebsite URL
instagramstring | nullInstagram handle
facebookstring | nullFacebook profile
tiktokstring | nullTikTok handle
youtubestring | nullYouTube channel
redditstring | nullReddit username

Profile Display

FieldTypeDescription
avatarstring | nullAvatar image URL
display_namestring | nullDisplay name
descriptionstring | nullProfile description

User Engagement Data

These fields are populated based on events tracked in your project:
FieldTypeDescription
first_seenstring | nullFirst seen timestamp in your app (ISO 8601)
last_seenstring | nullLast seen timestamp in your app (ISO 8601)
num_sessionsinteger | nullTotal number of sessions
revenuenumber | nullTotal revenue
volumenumber | nullTotal volume
pointsnumber | nullTotal points
activity_datesarray | nullArray of activity dates (YYYY-MM-DD format)

Device & Location

FieldTypeDescription
locationstring | nullUser location (country code)
devicestring | nullDevice type
browserstring | nullBrowser name
osstring | nullOperating system

Attribution & UTM

FieldTypeDescription
first_utm_sourcestring | nullFirst UTM source
last_utm_sourcestring | nullLast UTM source
first_utm_mediumstring | nullFirst UTM medium
last_utm_mediumstring | nullLast UTM medium
first_utm_campaignstring | nullFirst UTM campaign
last_utm_campaignstring | nullLast UTM campaign
first_utm_contentstring | nullFirst UTM content
last_utm_contentstring | nullLast UTM content
first_utm_termstring | nullFirst UTM term
last_utm_termstring | nullLast UTM term
first_referrerstring | nullFirst referrer domain
last_referrerstring | nullLast referrer domain
first_referrer_urlstring | nullFirst referrer full URL
last_referrer_urlstring | nullLast referrer full URL
first_refstring | nullFirst referral code
last_refstring | nullLast referral code

Last Event

FieldTypeDescription
last_typestring | nullLast event type
last_eventstring | nullLast event name
last_propertiesstring | nullLast event properties (JSON string)

Expanded Fields

When using the expand parameter, these additional fields are included:

chains (when expand=chains)

Array of per-chain wallet data:
FieldTypeDescription
chain_idstringChain ID
net_worth_usdnumberNet worth on this chain
tx_countintegerTransaction count on this chain
first_onchainstringFirst activity on this chain
last_onchainstringLast activity on this chain

labels (when expand=labels)

Array of wallet labels:
FieldTypeDescription
idstringLabel ID
valuestringLabel value
chain_idstringChain ID where label applies
sourcestringLabel source (e.g., manual, automated)

apps (when expand=apps)

Array of DeFi app interactions:
FieldTypeDescription
chain_idstringChain ID
idstringApp ID
namestringApp name
imgstring | nullApp image URL
urlstring | nullApp URL
balance_usdnumberBalance in USD for this app

tokens (when expand=tokens)

Array of token holdings:
FieldTypeDescription
chain_idstringChain ID
token_addressstringToken contract address
app_idstringApp ID
namestringToken name
symbolstringToken symbol
imgstring | nullToken image URL
decimalsintegerToken decimals
pricenumberToken price in USD
balancestringToken balance (as string to preserve precision)
balance_usdnumberToken balance value in USD

Example Response

{
  "address": "0x9CC3cB28cd94eB4423B15cdA73346e204f59a407",
  "net_worth_usd": 125000.5,
  "ens": "vitalik.eth",
  "farcaster": null,
  "lens": null,
  "tx_count": 1234,
  "first_onchain": "2024-01-15T10:30:00Z",
  "last_onchain": "2025-01-20T14:22:00Z",
  "lifecycle": "Returning",
  "first_seen": "2024-01-15T10:30:00Z",
  "last_seen": "2025-01-20T14:22:00Z",
  "num_sessions": 45,
  "revenue": 1500.75,
  "volume": 50000.0,
  "points": 2500,
  "chains": [
    {
      "chain_id": "1",
      "net_worth_usd": 100000.0,
      "tx_count": 1000,
      "first_onchain": "2024-01-15T10:30:00Z",
      "last_onchain": "2025-01-20T14:22:00Z"
    },
    {
      "chain_id": "137",
      "net_worth_usd": 25000.5,
      "tx_count": 234,
      "first_onchain": "2024-03-01T08:00:00Z",
      "last_onchain": "2025-01-18T12:00:00Z"
    }
  ],
  "labels": [
    {
      "id": "label_123",
      "value": "Whale",
      "chain_id": "1",
      "source": "manual"
    }
  ],
  "apps": [
    {
      "chain_id": "1",
      "id": "uniswap",
      "name": "Uniswap",
      "img": "https://example.com/uniswap.png",
      "url": "https://uniswap.org",
      "balance_usd": 50000.0
    }
  ],
  "tokens": [
    {
      "chain_id": "1",
      "token_address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
      "app_id": "usdc",
      "name": "USD Coin",
      "symbol": "USDC",
      "img": "https://example.com/usdc.png",
      "decimals": 6,
      "price": 1.0,
      "balance": "1000000000",
      "balance_usd": 1000.0
    }
  ]
}

Error Responses

StatusCodeDescription
400BAD_REQUESTInvalid wallet address format
401UNAUTHORIZEDMissing or invalid API key
403FORBIDDENAPI key does not have profiles:read permission
404PROFILE_NOT_FOUNDProfile does not exist
500INTERNAL_SERVER_ERRORFailed to fetch wallet profile data

Authorizations

Authorization
string
header
required

Workspace API key (e.g. formo_xxx). Create one in the Formo dashboard under Team Settings > API Keys.

Path Parameters

address
string
required

EVM Wallet address e.g. 0x0000000000000000000000000000000000000000

Query Parameters

expand
string

Comma-separated list of additional data to include in the response. Valid options: apps, chains, tokens, labels. Example: expand=apps,chains,tokens,labels

Response

Successfully retrieved wallet profile

isSuccess
boolean
data
object