SDKs
Choose a FounderHQ SDK.
One capture protocol, five SDKs. Pick the one that matches where your code runs, then follow that page.
Before you start
You need a brand and its keys. Copy a publishable key (fhq_pk_...) for
browsers and apps. Copy a secret key (fhq_sk_...) for servers. See
Getting started.
Pick an SDK
| SDK | Package | Key | Use it for |
|---|---|---|---|
| Web | @founderhq/events | publishable | Websites and web apps |
| React Native | @founderhq/events-react-native | publishable | React Native and Expo apps |
| iOS | FounderHQEvents (SwiftPM, CocoaPods) | publishable | Swift and SwiftUI apps |
| Android | com.getfounderhq:events | publishable | Kotlin and Compose apps |
| Node | @founderhq/events-node | secret | Your backend |
What every client SDK does
The web, React Native, iOS, and Android SDKs share one surface.
| You call | It does |
|---|---|
capture | Records one event with your own properties |
identify | Ties the visitor to a contact you know |
setAccount | Says which account the activity belongs to |
setPersonProperties | Updates contact properties |
register / registerOnce / unregister | Adds properties to every later event |
optIn / optOut / isOptedOut | Controls capture consent on the device |
getDistinctId / getSessionId | Reads the current identity and session |
reset | Clears identity and account on logout |
flush / close | Sends queued events now |
Every client SDK queues events, persists them across restarts, retries failures, and sends them in batches. Each one also captures screens or pageviews, sessions, and app or page lifecycle on its own.
What the Node SDK does instead
The Node SDK carries no device state. It has no sessions, no automatic capture, and no consent switches. You name the contact on every call, and you use a secret key. It is also the only SDK that can record account membership changes and send revenue commands.
The protocol underneath
Client SDKs send POST /i/v2/e with a publishable key. The Node SDK sends
POST /api/events with a secret key. Both use one property namespace, one
event shape, and per-event acknowledgements.
Read the protocol reference when you need the wire format, the reserved event names, or the campaign property list.