# SmartLinks SDK documentation

Connect your mobile app to SmartLinks for analytics, deep links and app-growth workflows. These guides are public: anyone can read them without an account. All credentials in examples are placeholders, including `YOUR_API_KEY`.

## Choose your SDK

| Your app | Start here | Package |
| --- | --- | --- |
| Flutter for iOS and Android | [Flutter guide](/docs/flutter) | `smartlinks_flutter` |
| Native Android / Kotlin | [Android guide](/docs/android) | `live.smartlinks:smartlinks-sdk` |
| Native iOS / Swift | [iOS guide](/docs/ios) | `SmartLinksSDK` |
| React Native | [React Native guide](/docs/react-native) | `smartlinks` + `react-native-smartlinks` |

The cross-platform SDKs use native mobile components. Do not assume web, desktop or Expo Go support from the JavaScript or Dart package alone.

## From setup to your first event

1. [Create an account](/register) or [sign in](/login) to SmartLinks.
2. Connect your app and check its Android application ID and/or iOS bundle identifier. These must match the app you build.
3. Open your app's **API Keys** page. Obtain a key for that app using an account with permission to manage its keys. Keep multi-app and administrative credentials out of client apps.
4. Follow your platform guide, replacing `YOUR_API_KEY` only in your own development environment. Do not paste a key into this website, a public issue or a shared AI prompt.
5. Initialize once before sending events. Run a development build and send an event with a non-sensitive name such as `integration_test`.
6. In your private app dashboard, inspect the matching app, time range and event. Initialization alone is not proof that an event reached the server.

## What you can add next

- **Analytics:** send events with consistent names and a small set of useful properties.
- **Deep links:** configure App Links or Universal Links and map received routes to screens in your app.
- **Engagement:** add feedback, app-list, community and blog screens where appropriate.
- **Monetization:** configure ads, promo codes and store purchase verification separately. An analytics event is not proof of a verified purchase.
- **AI Gateway:** enable the feature in the private dashboard before using SDK AI calls. Provider credentials belong in server-side configuration, never in mobile code or public documentation.

Feature availability and usage limits depend on your [plan](/pricing), enabled modules and connected services. Start with analytics and deep links, then enable optional modules deliberately.

## Public docs, private credentials

Reading these pages does not grant access to customer apps, dashboard data or protected API endpoints. The public guides are the same for guests and signed-in readers. They do not load your app or its keys.

Read [API keys and security](/docs/authentication) before deploying your integration. A key embedded in a distributed mobile application can be extracted; hiding it from documentation does not make the mobile binary a secret store.

## For AI assistants and developer tools

Every guide has a plain Markdown version, for example [Flutter Markdown](/docs/flutter.md) and [getting-started Markdown](/docs/getting-started.md). Share these URLs with your coding assistant, leaving `YOUR_API_KEY` unchanged in shared prompts.

Public guides are linked in the [sitemap](/sitemap.xml) and [public resource summary](/llms.txt). These help discovery but do not guarantee indexing or AI recommendations.

## Version notes and support

Installation examples were checked against package metadata on **7 September 2026**: Flutter 2.0.3, Android 2.0.2, iOS 2.0.2 and React Native 2.0.3. Check the linked package release notes before upgrading; do not mix legacy Linklytics APIs with SmartLinks 2.x examples.

Need help? [Contact SmartLinks](/contact) with your SDK version, platform, a redacted error and reproduction steps. Never send passwords, private keys, purchase receipts or API credentials in public support messages.
