v2.4 — Universal Link support now GA

Deep links that
actually work.

Create, manage, and analyze deep links that route users to the exact in-app location — across iOS, Android, and web. No broken flows. No lost conversions.

Link builder
https://sftlnk.io/3xK9m
Start building →View docs ↗
Analytics

Full visibility.
Real-time data.

Every click tracked. Every conversion attributed. See exactly how your deep links perform across platforms and campaigns.

Last 7 days
📈+24%
18,600
Total Clicks
📈+31%
1,143
Conversions
📈+18%
11,204
Unique Users
📈+2.1%
6.2%
Avg. CTR
Capabilities

Everything a deep link
should do.

Instant Routing

Route users to the exact in-app location — no landing pages, no friction. Sub-10ms resolution across 190+ countries.

📊

Precision Analytics

Track clicks, conversions, platform splits, and attribution across every campaign in real time.

🛡️

Deferred Deep Linking

Links survive app installs. Users land exactly where you sent them — even after download and first launch.

🌐

Universal Links

iOS Universal Links and Android App Links configured automatically. No manual entitlement juggling.

🔀

Smart Fallbacks

Define custom fallback paths per platform. Desktop, mobile web, and store redirects handled gracefully.

💻

Developer-First API

RESTful API with SDK support for iOS, Android, React Native, and Flutter. Full OpenAPI spec included.

Developer API

Integrate in minutes.
Not days.

One API call resolves your deep link and routes users to the exact screen — on iOS, Android, Flutter, and Web. Full SDK support included.

View Integration Guide ↗
deep_link_service.dart
// 1. Add to pubspec.yaml
// dependencies:
//   softlink_flutter: ^0.0.11

// 2. Initialize in main.dart
import 'package:softlink_flutter/softlink_flutter.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  runApp(MyApp());
}

// 3. Initialize SDK
await SoftLink.init(
  baseUrl: 'https://api.supersoftlink.com',
  apiKey: 'sl_your_api_key',
  onDeepLink: (deepLink) {
    if (deepLink == null) return;
    // Navigate based on screen key
    handleDeepLink(deepLink.screen, deepLink.params);
  },
});

// 4. Handle navigation
void handleDeepLink(String screen, Map<String, dynamic> params) {
  switch (screen) {
    case 'SCREEN_KEY':
      // navigate to your screen
      break;
    default:
      break;
  }
}

// 5. Generate referral links (Dynamic Links)
final url = await SoftLink.generateReferralLink(
  screenKey: 'SCREEN_KEY',
  values: {'key': 'value'},
  token: 'PARENT_TOKEN',
  referrerId: currentUser.id,
});
if (url != null) Share.share(url);
Pricing

Simple, honest pricing.

Loading plans...

Ship better links.
Lose fewer users.

Start with a free account and upgrade when you need more. No credit card required.

Get started