Skip to main content
POST
/
v0
/
raw_events
Track Event
curl --request POST \
  --url https://events.formo.so/v0/raw_events \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
[
  {
    "type": "page",
    "channel": "client",
    "version": "0",
    "anonymous_id": "c2bc0ebe-d852-49d1-9efd-e45744850ae0",
    "user_id": "a46e6878-1ed5-4a81-9185-83608df2fcb6",
    "address": "0x9CC3cB28cd94eB4423B15cdA73346e204f59a407",
    "event": "",
    "context": {
      "user_agent": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36",
      "locale": "en-GB",
      "timezone": "Africa/Lagos",
      "location": "NG",
      "ref": "",
      "referrer": "",
      "utm_campaign": "",
      "utm_content": "",
      "utm_medium": "",
      "utm_source": "",
      "utm_term": "",
      "page_title": "WalletConnect Content Cabal",
      "page_url": "https://app.formo.so/lByfTbeUSL_mxy_TN2m3d",
      "page_path": "/lByfTbeUSL_mxy_TN2m3d",
      "library_name": "Formo Web SDK",
      "library_version": "1.25.0",
      "browser": "chrome",
      "device": "mobile",
      "os": "Android",
      "screen_width": 393,
      "screen_height": 873,
      "screen_density": 2.75,
      "viewport_width": 392,
      "viewport_height": 735
    },
    "properties": {
      "url": "https://app.formo.so/lByfTbeUSL_mxy_TN2m3d",
      "path": "/lByfTbeUSL_mxy_TN2m3d",
      "hash": "",
      "query": ""
    },
    "original_timestamp": "2025-04-23T13:15:17.000Z",
    "sent_at": "2025-04-23T13:15:18.000Z",
    "message_id": "48555101eee2f44ac0f0632fcb7c7c9f6ce0012ae395ae79f8a0d515e4f5e41f"
  }
]
'
{
  "successful_rows": 1,
  "quarantined_rows": 0
}
Send events to Formo from any source. Sending custom events? See the event specs.
This endpoint is hosted on events.formo.so, a separate service from the main API at api.formo.so.
Sending events from the backend? Use the server-side SDK.

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
type
enum<string>
required

Type of the event

Available options:
page,
screen,
connect,
disconnect,
chain,
signature,
transaction,
track,
decoded_log,
detect,
identify
channel
string
required

Event channel (e.g. client, server, import)

version
string
required

Event spec version

anonymous_id
string
required

Pseudo-identifier for the user (device ID)

message_id
string
required

Unique identifier for the event

user_id
string | null

Unique user identifier

address
string | null

Wallet address

event
string | null

Name of the event (for track events)

context
object

Contextual information about the event

properties
object

Event-specific properties. Can contain any key-value pairs relevant to the event.

original_timestamp
string<date-time>

Time when the event occurred on the client

sent_at
string<date-time>

Time when the event was sent from the client

Response

Event successfully tracked

successful_rows
integer

Number of events successfully ingested

Example:

1

quarantined_rows
integer

Number of events that failed validation and were quarantined

Example:

0