Mobile SDK — iOS & Android

Your app. Real content. Verified.

Add AI-detection trust badges to your iOS or Android app in hours. Native components, on-device caching, and viewport-aware scoring — the full Verigin standard, designed for mobile.

iOS 15+
Android 8+
4% AI
41% AI
6% AI

The raw API isn't enough for mobile.

A raw HTTP endpoint works fine for servers. But mobile apps have unique constraints: network variability, scroll-triggered rendering, tight memory budgets, and readers who expect native UI. The Verigin Mobile SDK handles all of that — so you drop in trust badges without rebuilding your feed.

Everything the API doesn't give you.

Built specifically for the constraints and expectations of native mobile development.

📱

Native badge components

Drop-in SwiftUI View and Jetpack Compose component. Matches Verigin's visual standard without any custom drawing code on your end.

👁️

Viewport-aware scoring

Content is scored only when it enters the visible viewport — not pre-loaded on feed init. Saves bandwidth, battery, and API quota.

💾

On-device content deduplication

Content is identified by a hash of its URL or text fingerprint. The same article read 1,000 times costs one API call, not 1,000. Never burns your MAU quota on repeated views.

🔐

C2PA provenance display

When cryptographic provenance is present, shows readers exactly who created the content and what edits it went through — the signal that can't be faked.

🌐

WKWebView & WebView bridge

Have a hybrid app or embed web content? The SDK bridges scoring results into your web views with a single line, so your web and native content share the same trust signal.

Integrate in an afternoon.

A few lines of code. Everything else is handled.

// 1. Import the SDK
import VeriginSDK

// 2. Configure once at app launch
@main
struct MyApp: App {
  init() {
    Verigin.configure(siteKey: "YOUR_SITE_KEY")
  }
}

// 3. Add the badge to any view
VeriginBadge(contentURL: article.imageURL)
  .frame(maxWidth: .infinity)

// That's it. Scoring, caching, and display are automatic.
// 1. Import the SDK
import VeriginSDK

// 2. Configure at app launch
func application(_ application: UIApplication,
  didFinishLaunchingWithOptions options: ...) {
  Verigin.configure(siteKey: "YOUR_SITE_KEY")
  return true
}

// 3. Add badge to any UIViewController
let badge = VeriginBadgeView()
badge.score(url: article.imageURL)
contentView.addSubview(badge)
// 1. Add to build.gradle
dependencies {
  implementation("com.verigin:sdk-android:1.0.0")
}

// 2. Configure at app start
class MyApp : Application() {
  override fun onCreate() {
    super.onCreate()
    Verigin.configure(this, siteKey = "YOUR_SITE_KEY")
  }
}

// 3. Use the Compose component
VeriginBadge(contentUrl = article.imageUrl)
<!-- Drop into any XML layout -->
<com.verigin.sdk.VeriginBadgeView
  android:id="@+id/veriginBadge"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  app:contentUrl="@{article.imageUrl}"
  app:autoScore="true"
/>

<!-- Viewport detection handles scoring automatically -->

SDK vs. raw API — what changes.

Both use the same underlying Verigin engine. The SDK adds the mobile-specific layer on top.

Capability Raw API Mobile SDK
AI detection + C2PA scoring
Native badge UI component ✓ SwiftUI + Compose
Viewport-triggered scoring ✓ Automatic
On-device content deduplication ✓ URL + text hash
WKWebView / WebView bridge ✓ One line
Pricing model Per-request MAU-based — predictable

Predictable pricing. Priced on users, not scans.

A flat MAU-based fee means you can build features freely without watching a per-request meter.

Developer
Free
Up to 100 MAU
Build and test. Full SDK, no commitment.
  • Full iOS + Android SDK
  • Native badge components
  • Viewport-aware scoring
  • On-device deduplication
  • C2PA provenance display
  • WKWebView / WebView bridge
  • Dashboard analytics
Get SDK
Growth
$499 / mo
Up to 50,000 MAU
Growing media apps and regional news platforms.
  • Everything in Starter
  • Custom badge theme
  • Dedicated Slack channel
  • Priority support
  • 90-day analytics history
  • SLA guarantee
  • SSO / SAML
Scale
From $1,499 / mo
Up to 100,000 MAU
National publishers and large consumer apps.
  • Everything in Growth
  • 99.9% uptime SLA
  • SSO / SAML
  • Dedicated account manager
  • Custom contract & invoicing
  • Volume pricing > 500K MAU
Talk to us →

MAU = Monthly Active Users who view at least one piece of Verigin-scored content. Inactive users don't count toward your tier.

Engineering FAQ.

iOS is available now via Swift Package Manager and CocoaPods. The Android SDK (Kotlin, Gradle) is in closed beta. Sign up for early access and we'll notify you when it's ready for production use.
An MAU is any unique device that views at least one piece of Verigin-scored content in a calendar month. Users who open the app but never see a scored content item don't count. Users who view the same article fifty times count as one MAU.
No. Scoring is triggered only when content enters the visible viewport and happens asynchronously — it never blocks the main thread or delays rendering. Badges appear progressively as scores return. On-device caching means repeat views have zero latency.
Yes. The SDK includes a WKWebView bridge (iOS) and WebView bridge (Android) that injects scoring results into your web content. You can use either the native badge or the web embed — whichever fits your rendering stack.
Absolutely. Any app that displays text, images, or video to users can benefit from origin signals — social platforms, marketplaces, community apps, e-learning products. If your users create or consume content, they deserve to know where it came from.

Your readers are on their phones. Meet them there.

Start with the free Developer tier. Full SDK. No credit card. Ship when you're ready.

Get the SDK → Talk to our mobile team