---
title: "Get wallet profile"
method: GET
path: "/v0/profiles/{address}"
tags: ["Profiles"]
---

# Get wallet profile

`GET /v0/profiles/{address}`

## Request

- Base URL: `https://api.formo.so`
- URL: `https://api.formo.so/v0/profiles/{address}`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-PAYMENT`
  - API key in header `Authorization`

Get a single wallet profile. Agents can call the same path through the paid x402 or MPP gateway hosts without a caller-supplied Formo API key; Paysponge uses Formo's workspace API key behind the scenes. Paid gateway callers only provide the protocol payment header returned by the gateway challenge.

## Path parameters

- `address` string, required

## Query parameters

- `expand` string
- `timestamp` string, date-time

## Response `200`

Profile details

- Profile: Comprehensive wallet profile with onchain and offchain data
  - `address` string
  - `net_worth_usd` number
  - `tx_count` integer
  - `first_onchain` string: First onchain activity date
  - `last_onchain` string: Last onchain activity date
  - `updated_at` string, date-time
  - `ens` string, nullable
  - `farcaster` string, nullable
  - `lens` string, nullable
  - `basenames` string, nullable
  - `linea` string, nullable
  - `avatar` string, nullable
  - `display_name` string, nullable
  - `description` string, nullable
  - `discord` string, nullable
  - `telegram` string, nullable
  - `twitter` string, nullable
  - `github` string, nullable
  - `linkedin` string, nullable
  - `email` string, nullable
  - `instagram` string, nullable
  - `facebook` string, nullable
  - `website` string, nullable
  - `reddit` string, nullable
  - `youtube` string, nullable
  - `tiktok` string, nullable
  - `first_seen` string, nullable: First seen in project
  - `last_seen` string, nullable: Last seen in project
  - `lifecycle` 'New' | 'Returning' | 'Power user' | 'At Risk' | 'Churned' | 'Resurrected', nullable
  - `num_sessions` integer, nullable
  - `revenue` number, nullable
  - `volume` number, nullable
  - `points` number, nullable
  - `device` string, nullable
  - `browser` string, nullable
  - `os` string, nullable
  - `location` string, nullable
  - `first_utm_source` string, nullable
  - `first_utm_medium` string, nullable
  - `first_utm_campaign` string, nullable
  - `first_referrer` string, nullable
  - `last_utm_source` string, nullable
  - `last_utm_medium` string, nullable
  - `last_utm_campaign` string, nullable
  - `last_referrer` string, nullable
  - `first_referrer_url` string, nullable: First referrer full URL
  - `last_referrer_url` string, nullable: Last referrer full URL
  - `first_ref` string, nullable: First referral code
  - `last_ref` string, nullable: Last referral code
  - `first_utm_content` string, nullable: First UTM content
  - `last_utm_content` string, nullable: Last UTM content
  - `first_utm_term` string, nullable: First UTM term
  - `last_utm_term` string, nullable: Last UTM term
  - `first_paid_source` string, nullable: First-touch acquiring ad network (google, meta, microsoft, tiktok, twitter, linkedin, reddit, or paid_utm for pricing-medium UTMs with no click ID)
  - `last_paid_source` string, nullable: Last-touch acquiring ad network (same value set as first_paid_source)
  - `first_click_id` string, nullable: First-touch raw ad-platform click ID (gclid, fbclid, msclkid, ttclid, twclid, li_fat_id, or rdt_cid)
  - `last_click_id` string, nullable: Last-touch raw ad-platform click ID
  - `last_type` string, nullable: Last event type
  - `last_event` string, nullable: Last event name
  - `last_properties` string, nullable: Last event properties (JSON string)
  - `activity_dates` string[], nullable: Array of activity dates (YYYY-MM-DD format)
  - `chains` WalletChain[]: Requires expand=chains
    - `chain_id` string
    - `net_worth_usd` number
    - `tx_count` integer
    - `first_onchain` string
    - `last_onchain` string
  - `apps` WalletApp[]: Requires expand=apps
    - `chain_id` string
    - `id` string
    - `name` string
    - `img` string, nullable
    - `url` string, nullable
    - `balance_usd` number
  - `tokens` WalletToken[]: Requires expand=tokens
    - `chain_id` string
    - `token_address` string
    - `app_id` string
    - `name` string
    - `symbol` string
    - `img` string, nullable
    - `decimals` integer
    - `price` number
    - `balance` string
    - `balance_usd` number
  - `labels` WalletLabel[]: Requires expand=labels
    - `id` string: e.g. coinbase.verified_account
    - `value` string
    - `chain_id` string
    - `source` string

## Other responses

- `202`: Wallet not yet profiled. Returned for a first-time lookup while the profile is still being built; retry after the given delay.
- `404`: Profile not found

---

[API](https://skmtc.dev/formo/apis/formo-public-api.md) · [All operations](https://skmtc.dev/formo/apis/formo-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/formo/apis/formo-public-api/revisions/67ada57df63c?raw)
