Batch Update Properties
Set or unset first-party profile properties for up to 100 wallets in a single request. Each item is a flat object with a required address; null values delete properties, unknown keys are ignored, and invalid rows are quarantined rather than failing the whole batch.
Deleting properties in a batch
Anull value deletes (unsets) that property, exactly as on the single-wallet endpoint. Set and unset can mix freely within and across rows:
user_id cannot be unset (it participates in identity stitching); a row with "user_id": null fails request validation with 400 BAD_REQUEST. The literal string _is_deleted is a reserved internal value and is rejected wherever a property value is accepted.Authorizations
Workspace API key (e.g. formo_xxx). Create one in the Formo dashboard under Team Settings > API.
Body
1 - 100 elementsWallet address. Literal EVM (0x...) or Solana address only; ENS names are not resolved in batch requests.
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.