Amplitude SDK Compatibility
Use Amplitude SDKs with the OpenSnowcat Collector to ingest event data without reimplementation.
OpenSnowcat Collector includes an experimental Amplitude Bridge that allows you to use Amplitude SDKs to collect event data with no reimplementation needed.
Amplitude SDK Configuration
To send events to your OpenSnowcat Collector using the Amplitude SDK, you'll need to add the serverUrl configuration to your Amplitude SDK as shown below.
window.amplitude.init('<< YOUR KEY >>', {
serverUrl: '<< OPENSNOWCAT COLLECTOR FQDN >>/com.amplitude/2/httpapi'
});
The OpenSnowcat Collector can receive events from Amplitude SDKs through httpapi or batch.
How Does It Work?
Amplitude SDKs send events to the OpenSnowcat Collector, which wraps the payload in a com.amplitude/payload self-describing event.
OpenSnowcat Configuration
1. Enable Amplitude Bridge
To enable the Amplitude Bridge in OpenSnowcat Collector, add the following to your Collector configuration.
collector {
...
experimental {
enableAmplitudeBridge = true
}
...
}
To enhance data quality, you can enable CORS by adding a crossDomain section to your Collector configuration as shown below. If your Collector is called from outside these domains, the browser will block the request before it reaches the Collector.
collector {
...
crossDomain {
enabled = true
domains = [ "*.yourdomain.com" ]
# Whether to only grant access to HTTPS or both HTTPS and HTTP sources
secure = false
}
...
}
2. Install Amplitude Schema
Install the Amplitude Payload schema in your Schema Registry so that the Enricher can validate incoming Amplitude events.
{
"$schema": "http://iglucentral.com/schemas/com.snowplowanalytics.self-desc/schema/jsonschema/1-0-0#",
"description": "Amplitude Payload",
"self": {
"vendor": "com.amplitude",
"name": "payload",
"format": "jsonschema",
"version": "1-0-0"
},
"type": "object",
"properties": {
"data": {
"description": "Amplitude Payload",
"type": "object"
}
},
"required": [
"data"
],
"additionalProperties": true
}
Sample Amplitude OpenSnowcat Payload
Below is an event as recorded by OpenSnowcat Devkit with the Amplitude Bridge enabled.
{
"app_id": "amp_bridge",
"collector_tstamp": "2026-01-28T03:00:41.039Z",
"contexts_nl_basjes_yauaa_context_1": [
{
"agentClass": "Browser",
"agentInformationEmail": "Unknown",
"agentName": "Chrome",
"agentNameVersion": "Chrome 144",
"agentNameVersionMajor": "Chrome 144",
"agentVersion": "144",
"agentVersionMajor": "144",
"deviceBrand": "Apple",
"deviceClass": "Desktop",
"deviceCpu": "Intel",
"deviceCpuBits": "64",
"deviceName": "Apple Macintosh",
"layoutEngineClass": "Browser",
"layoutEngineName": "Blink",
"layoutEngineNameVersion": "Blink 144",
"layoutEngineNameVersionMajor": "Blink 144",
"layoutEngineVersion": "144",
"layoutEngineVersionMajor": "144",
"networkType": "Unknown",
"operatingSystemClass": "Desktop",
"operatingSystemName": "Mac OS",
"operatingSystemNameVersion": "Mac OS >=10.15.7",
"operatingSystemNameVersionMajor": "Mac OS >=10.15",
"operatingSystemVersion": ">=10.15.7",
"operatingSystemVersionBuild": "??",
"operatingSystemVersionMajor": ">=10.15",
"webviewAppName": "Unknown",
"webviewAppNameVersionMajor": "Unknown ??",
"webviewAppVersion": "??",
"webviewAppVersionMajor": "??"
}
],
"contexts_org_ietf_http_header_1": [
{
"name": "Host",
"value": "localhost:8080"
},
{
"name": "User-Agent",
"value": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36"
},
{
"name": "Origin",
"value": "https://f7e22789919b.ngrok-free.app"
}
],
"derived_tstamp": "2026-01-28T03:00:41.039Z",
"domain_userid": "201bace5-8c19-490d-9b66-d6680b2ec6fa",
"dvce_created_tstamp": "2026-01-28T03:00:39.896Z",
"etl_tstamp": "2026-01-28T03:00:43.122Z",
"event": "unstruct",
"event_fingerprint": "d88820a9c9fdd858926634b783f47809",
"event_format": "jsonschema",
"event_id": "5b90bd48-64e5-42fa-bdd2-3cd8c73010c7",
"event_name": "payload",
"event_vendor": "com.amplitude",
"event_version": "1-0-0",
"network_userid": "4fe0b108-1e02-4b74-af46-0782718c5742",
"platform": "web",
"unstruct_event_com_amplitude_payload_1": {
"data": {
"device_id": "201bace5-8c19-490d-9b66-d6680b2ec6fa",
"event_id": 37,
"event_properties": {
"[Amplitude] Page Domain": "f7e22789919b.ngrok-free.app",
"[Amplitude] Page Location": "https://f7e22789919b.ngrok-free.app/",
"[Amplitude] Page Path": "/",
"[Amplitude] Page Title": "Amplitude Event Tracking Demo",
"[Amplitude] Page URL": "https://f7e22789919b.ngrok-free.app/",
"[Amplitude] Previous Page Location": "",
"[Amplitude] Previous Page Type": "direct"
},
"event_type": "Sign Up",
"insert_id": "1e08ca17-eb57-4664-b74c-bd83252f5b4c",
"ip": "172.18.0.1",
"language": "en-US",
"library": "amplitude-ts-script/2.34.0",
"platform": "Web",
"session_id": 1769567701407,
"time": 1769569239896,
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36",
"user_id": "demo_user_1897"
}
},
"user_id": "demo_user_1897",
"user_ipaddress": "172.18.0.1",
"useragent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36",
"v_collector": "osc-1.1.7-6-95fc4028-20260127-1858-kafka",
"v_etl": "opensnowcat-enrich-kafka-1.2.7",
"v_tracker": "amplitude-ts-script/2.34.0"
}