Deep Link SDKs & API Docs
Platform integration guides, native SDK setup instructions, code snippets, and REST API references for WilderLinks.
Integration path
- 1. Choose a platform and install its verified package or source module.
- 2. Create an app profile and configure your link domain and OS association.
- 3. Handle incoming links in the app; add a deferred-token handoff if needed.
- 4. Inspect configuration with the read-only tester.
- 5. Create links and send custom events from a trusted server; for client-triggered links, have your app call your own authenticated backend.
- 6. Configure webhooks in the workspace, then validate a real link deliberately.
Keep API keys on your server
Organization API keys are secrets. Never embed them in Flutter, React Native, Android, iOS, Unity client builds, or browser JavaScript. Client apps handle incoming URLs and token matching; your trusted backend creates links, retrieves links and QR codes, and submits custom events.
Android package setup
Include the public Gradle source module com.wilderbots.wilderlinks; no Maven artifact is verified. Configure Android App Links and install handling in your app.
A Wilderlink uses its configured domain and path. If the OS has verified the association, it hands the URL to the installed app; the SDK can resolve its payload with GET /api/v1/resolve. Otherwise the service applies routing rules and sends the visitor to the configured app/store or web destination. On desktop it normally redirects to the web destination. Native association and app-side navigation are your responsibility.
your-workspace.wilderlinks.spacego.wilderlinks.spacehttps://api.wilderlinks.spaceCopy exact setup parameters, test installed and deferred deep link flows, and configure app link verification without switching tabs.
Install from Git
Clone the SDK repository or add it as a Git submodule, then include the Android library module in your app build.
include(":wilderlinks")
project(":wilderlinks").projectDir = File(rootDir, "../path/to/wilderlinks-sdks/android/wilderlinks")Add the module dependency
dependencies {
implementation(project(":wilderlinks"))
}Requirements
- minSdk >= 23 (native Android library module)
- A verified WilderLinks domain
- Android package name and SHA-256 fingerprint
Important notice
- If you are migrating from an older URLynk integration, replace legacy package names, hosts, and app identifiers with your WilderLinks configuration before testing.
- Use the WilderLinks domain shown on this page and the app profile path prefix attached to your Android app.
- The path prefix here refers to the WilderLinks app profile namespace, not your Android applicationId.
AndroidManifest setup
Add Internet permission and place the intent filter inside your launcher activity. Use the exact path prefix configured for the app profile attached to this domain.
<uses-permission android:name="android.permission.INTERNET" />
<activity
android:name=".MainActivity"
android:launchMode="singleTop"
android:exported="true">
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:scheme="https"
android:host="your-workspace.wilderlinks.space"
android:pathPrefix="/x4I9/" />
</intent-filter>
</activity>App profile setup
- Create an app from the Apps page.
- Set the Android package name.
- Add SHA-256 fingerprints for debug, release, or Play signing.
- Attach the app profile to the branded domain.
Usage flow
- Initialize your app-side WilderLinks handling as early as possible so incoming links are not missed.
- Call `handleIncomingUri(uri, context)` for every App Link the OS delivers so the SDK sends visitor, device, timezone, OS, and language signals to the resolve API.
- Create links in the dashboard or with the SDK/API from a trusted server. The SDK create methods require a server-held organization API key; never configure that key in a distributed Android app.
- Open that generated link from adb, Chrome, Notes, or another source depending on the kind of test you are running.
Handle an Android App Link
Initialize once, then pass each incoming intent URI to the SDK from your app activity or navigation layer.
import android.content.Context
import android.net.Uri
import com.wilderbots.wilderlinks.Wilderlinks
import com.wilderbots.wilderlinks.WilderlinksConfig
Wilderlinks.init(WilderlinksConfig(
baseUrl = "https://api.wilderlinks.space",
domains = listOf("your-workspace.wilderlinks.space")
))
suspend fun handleIncomingLink(uri: Uri, context: Context) {
val result = Wilderlinks.handleIncomingUri(uri, context)
if (result.matched) {
// Navigate using result.deepLinkPayload or destinationUrl.
}
}Create links from a trusted runtime
The Android SDK exposes createLink, createDeepLink, and createShortLink, matching Flutter. They call POST /api/v1/links and require links:write. Do not configure an organization API key in an Android app; for an app-triggered flow, call your own authenticated backend and return the generated URL to the app.
Wilderlinks.init(WilderlinksConfig(
baseUrl = "https://api.wilderlinks.space",
domains = emptyList(),
apiKey = "<server-held-key>"
))
val link = Wilderlinks.createDeepLink(
defaultUrl = "https://example.com/offers",
appProfileId = "<app-profile-id>",
deepLinkPayload = mapOf("screen" to "offers")
)
val shortUrl = link.shortUrlCheck Play Install Referrer
Use this after a Play Store or Internal Testing install. WilderLinks app fallback URLs include `referrer=dl_match_token%3D<token>`, and the SDK exchanges that token for the original payload.
val result = Wilderlinks.checkInstallReferrer(context)
if (result.matched) {
// result.deepLinkPayload
// result.destinationUrl
}Clipboard fallback
The redirect page also attempts a gesture-gated clipboard write. Use this only as a fallback; Play Install Referrer is the primary Android deferred handoff.
val result = Wilderlinks.checkDeferredInstall(context)Deep link testing
Use this when the app is already installed and you want to confirm Android App Links or app-side routing is working.
adb shell am start -a android.intent.action.VIEW -d "https://your-workspace.wilderlinks.space/x4I9/test-link" YOUR_APPLICATION_IDAndroid deferred link testing
- Run the app on a physical Android device. Emulator behavior is not reliable for App Links and deferred flows.
- Generate a deep link from the dashboard or your trusted backend.
- Open the generated link in the device browser. If the app is installed and App Links are verified, Android should open the app.
- If the app is not installed, WilderLinks sends the user to the Play Store with a `dl_match_token` in the install referrer.
- After Play Store installation, launch the app and call the SDK deferred check during startup.
- Confirm the app receives the payload you attached to the link, such as screen name, campaign data, or offer id.
Play Store deferred install testing
- Publish a test build to a Play Console testing track such as Internal Testing.
- Add the Play App Signing SHA-256 fingerprint to the WilderLinks Android app profile, not just the local debug fingerprint.
- Path: Play Console -> Test and release -> App Integrity -> Play app signing -> Settings -> App Signing key certificate -> SHA-256 fingerprint.
- Allow time for Android domain verification after signing or domain changes; timing varies by device and DNS state.
- Verify the deep link setup inside Play Console under Grow users -> Deep links.
- Use the same Google account on the device that has accepted the Play testing invitation.
- Uninstall any existing build of the app from the device before testing install-time deferred deep linking.
- Open a generated WilderLinks URL in the browser. It should send the user to the Play Store test listing when the app is not installed.
- Install the app from the Play Store test listing.
- Open the app after installation.
- Verify the SDK Play Install Referrer deferred check receives the original deferred payload after first launch.
- The browser page also attempts a gesture-gated clipboard fallback, but Play Install Referrer is the primary Android deferred handoff.
- For direct app opening checks during testing-track development, copy the deep link into a text editor or note-taking app on the device and tap it directly.
Important
- After publishing your app to the Play Store, add the Play App Signing SHA-256 fingerprint from Play Console to the WilderLinks Android app profile.
- This fingerprint is required for reliable direct app opening from Android App Links.
- If browser taps still route to the Play Store during testing-track builds, verify the correct signing fingerprint, domain association, and path prefix before debugging app code.