MicroSurvey.init(config) takes a single InsitoConfig object. Most
apps need just apiKey — every other field is optional with a sane
default.
Full schema
apiKey (required)
Your project secret. Format proj_xxx. Get it from the
dashboard → your project →
Settings → API key.
apiUrl
Defaults to https://api.insito.app. Override when:
- Pointing the SDK at a staging environment.
- Running against a local API instance during development.
Local dev with iOS Simulator: use the host machine’s LAN IP
(
http://192.168.x.x:3001), not localhost. The simulator
treats localhost as itself.requestTimeoutMs
How long the SDK waits for any one request before giving up.
Defaults to 5,000 ms (5 seconds).
Lower this if your users are on consistently fast networks and you
want triggers to fail fast. Raise it if you have a lot of users on
weak cellular — too-tight timeouts increase the offline-queue
backlog.
debug
Enables console.log output for SDK internals — init, identify,
trigger, queue flushes, screen-map flushes, plus error details.
Recommended:
environment
Tags every respondent with the app environment so you can keep staging and
development traffic out of your audience targeting and analytics. There’s no way
to detect this automatically, so you opt in:
environment alongside the auto-captured device metadata (see
below) and is available as a Device property in the survey
Audience filter builder.
Auto-captured device metadata
On everyidentify() the SDK automatically captures a small set of
device + lifecycle properties — no extra code required:
These land in the respondent’s metadata and show up as Device properties in
the Audience filter builder. Anything you pass in
identify({ metadata }) wins over an auto-captured key of the same name. For
fully custom, business-level properties (like plan or transactionsThisMonth)
use identify({ properties }).
locale resolution prefers the optional expo-localization peer dependency
and falls back to the built-in Intl API, so it works in both Expo and bare
React Native apps without any extra setup.theme
Pick a preset, override individual tokens, or both. See
Theming for the full token list.
Updating config after init
init() is a one-shot — repeat calls are ignored, so the theme preset and token
overrides are fixed for the session. <InsitoProvider> has no theme prop.
What you can change at runtime is the light/dark appearance (for Brand Kit
surveys set to themeMode: "auto"), via the provider’s appearance prop:
appearance defaults to "system" (follow the device). See
Theming.
labels
Override the SDK’s built-in UI text (buttons, placeholders, NPS anchors, the
progress counter). Most teams set these from the dashboard instead; use this
when code should win. See Labels.
events and screens
Declare the events and screens this app can trigger surveys on. They’re
registered in the dashboard’s App Variable Registry on
the next identify() call, so teammates can pick them from a searchable list
when configuring a survey’s trigger — even before the SDK has fired them once.
name must match exactly what your app passes to trigger() (for events) or
reports as the screen name. Declared variables show as Not seen yet in the
dashboard until the SDK actually fires them, at which point they flip to
Verified. Auto-discovered events/screens appear automatically — you only
need to declare the ones you want available up front.identify() and re-sent whenever the
list changes, so editing them ships with your next release.