Skip to main content
POST
/
v0
/
profiles
/
properties
Batch set user properties
curl --request POST \
  --url https://api.formo.so/v0/profiles/properties \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
[
  {
    "address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
    "display_name": "alice.eth",
    "email": "alice@example.com"
  },
  {
    "address": "EPjFWaYbrgqCC2Qbg4EV4FjUreEMKwMn1zNbiboXXKV",
    "twitter": "bob"
  }
]
'
{
  "successful_rows": 123,
  "quarantined_rows": 123,
  "errors": [
    {
      "index": 123,
      "reason": "<string>",
      "address": "<string>"
    }
  ]
}

Authorizations

Authorization
string
header
required

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

Body

application/json
Required array length: 1 - 100 elements
address
string
required

Wallet address. Literal EVM (0x...) or Solana address only; ENS names are not resolved in batch requests.

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

Batch processed. Returns counts of forwarded vs quarantined rows, with a per-row errors entry for each quarantined row.

Acknowledgement for a batch write. successful_rows counts rows accepted and forwarded to ingest after a 2xx (ingestion is async/eventually-consistent; there is no follow-up read). quarantined_rows counts rows skipped for an invalid address or no valid keys; errors (omitted when nothing was quarantined) maps each skipped row back to its request index.

successful_rows
integer
required

Number of rows accepted and forwarded to ingest.

quarantined_rows
integer
required

Number of rows skipped (invalid address, or no valid keys).

errors
object[]

One entry per quarantined row. Omitted when quarantined_rows is 0.