Skip to main content
PUT
/
v0
/
profiles
/
{address}
/
properties
Update user properties
curl --request PUT \
  --url https://api.formo.so/v0/profiles/{address}/properties \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "display_name": "alice.eth",
  "email": "alice@example.com",
  "twitter": "alice"
}
'
{
  "address": "<string>",
  "updated_at": "2023-11-07T05:31:56Z",
  "user_id": "<string>",
  "display_name": "<string>",
  "email": "<string>",
  "farcaster": "<string>",
  "discord": "<string>",
  "twitter": "<string>",
  "telegram": "<string>",
  "instagram": "<string>",
  "website": "<string>",
  "github": "<string>",
  "linkedin": "<string>",
  "facebook": "<string>",
  "tiktok": "<string>",
  "youtube": "<string>",
  "reddit": "<string>",
  "avatar": "<string>",
  "description": "<string>",
  "location": "<string>",
  "ens": "<string>",
  "lens": "<string>",
  "basenames": "<string>",
  "linea": "<string>"
}

Documentation Index

Fetch the complete documentation index at: https://docs.formo.so/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

Authorization
string
header
required

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

Headers

Idempotency-Key
string

Optional unique value (e.g. a UUID v4) that lets you safely retry POST/PUT/PATCH/DELETE requests. The first request runs normally; subsequent requests with the same key replay the stored response (status + body) for 24 hours, so retries can never double-create or double-charge. Two concurrent requests with the same key return 409 IDEMPOTENCY_IN_PROGRESS. Generate a fresh key per logical operation.

Maximum string length: 255

Path Parameters

address
string
required

Wallet address (EVM 0x... or Solana base58)

Body

application/json

Merge-update of profile properties. Only the listed keys are accepted; unknown keys are rejected. At least one key must be provided.

user_id
string
display_name
string
email
string
farcaster
string
discord
string
twitter
string
telegram
string
instagram
string
website
string
github
string
linkedin
string
facebook
string
tiktok
string
youtube
string
reddit
string
avatar
string
description
string
location
string
ens
string
lens
string
basenames
string
linea
string

Response

Properties updated. Returns the merged identity (the keys actually set, plus address + updated_at) so callers can cache without a follow-up read.

Echo of the wallet identity after the merge-update applied. Synthesised from the request payload - analytics ingestion is eventually consistent, so the response reflects the applied write rather than a follow-up read.

address
string
required
updated_at
string<date-time>
required
user_id
string | null
display_name
string | null
email
string | null
farcaster
string | null
discord
string | null
twitter
string | null
telegram
string | null
instagram
string | null
website
string | null
github
string | null
linkedin
string | null
facebook
string | null
tiktok
string | null
youtube
string | null
reddit
string | null
avatar
string | null
description
string | null
location
string | null
ens
string | null
lens
string | null
basenames
string | null
linea
string | null