Now available โ€” iOS, Android & Flutter

License plate recognition
built for developers.

A precise, offline-capable ALPR SDK that runs entirely on-device. No cloud dependency, no latency, no per-scan fees.

Get API key โ€” it's free Read the docs
๐ŸŽ iOS 16+ ๐Ÿค– Android 8+ ๐Ÿ’™ Flutter ๐ŸŒ 90+ Countries โœˆ๏ธ Offline
๐Ÿ“ท
ABCยท1234
Detected in 42ms ยท 94% confidence ยท Offline
42ms
Average detection time
90+
Countries supported
97%
Accuracy in good lighting
0
Internet requests per scan
Platforms
One SDK.
Every platform.

A consistent API across iOS, Android, and Flutter so your team integrates once and ships everywhere.

๐ŸŽ

iOS (Swift)

Native XCFramework using Apple Vision and AVFoundation. SwiftUI and UIKit compatible. Ships as a binary framework โ€” no source required.

Available now
๐Ÿค–

Android (Kotlin)

CameraX + ML Kit powered AAR library. Jetpack Compose and View-based apps both supported. Minimum Android 8.0 (API 26).

Available now
๐Ÿ’™

Flutter (Dart)

A first-class Flutter plugin wrapping the native iOS and Android SDKs. Drop-in widget, event streams, and full configuration API.

Available now
Features
Everything you need.
Nothing you don't.
โœˆ๏ธ

Fully offline

All inference runs on-device using the platform's native ML stack. Zero network requests during scanning. Works in tunnels, parking garages, and remote locations.

๐ŸŒ

90+ country support

Region-aware validation with per-country regex patterns. Supports standard and vanity formats for US, UK, EU, India, Australia, Middle East, and more.

โšก

Real-time processing

Frame-by-frame scanning at full camera frame rate. Crops the pixel buffer to your defined region of interest before OCR โ€” no wasted computation.

๐Ÿ”’

Licence-gated

API key + secret key validation against your portal. Enforce app-level restrictions, usage tiers, and expiry dates without resubmitting to the App Store.

๐Ÿงฉ

Simple integration โ€” less than 10 lines of code

Activate with your API key, set a delegate, call startScanning(). The SDK handles camera permissions, session management, Vision requests, cropping, validation, and deduplication. Drop in the preview view and you're done.

Integration
Three lines to scan.
Swift (iOS)
Kotlin (Android)
Flutter (Dart)
// 1. Activate your licence
PlateVisionSDK.shared.activate(apiKey: "pv_live_xxx", secretKey: "sk_xxx") { result in
    if case .success(let licence) = result, licence.isValid {

        // 2. Configure (optional)
        var config = PVConfiguration.default
        config.region = .us
        config.minimumConfidence = 0.70
        PlateVisionSDK.shared.configure(config)

        // 3. Set delegate and start
        PlateVisionSDK.shared.delegate = self
        PlateVisionSDK.shared.startScanning()
    }
}

// 4. Receive results
func plateVision(_ sdk: PlateVisionSDK, didDetect result: PVDetectionResult) {
    print(result.plateText, result.confidencePercent)
}
Pricing
Pay for what
you build with.
Starter
$0
forever free
For evaluation, prototyping, and hobby projects.

  • 1 app / 1 key
  • iOS SDK
  • 2,500 activations/mo
  • Community support
Get started free
Enterprise
Custom
annual contract
For organisations with custom compliance, SLA, or white-label needs.

  • Unlimited apps
  • All platforms
  • White-label SDK
  • Dedicated support
  • Custom SLA
  • On-premise portal
Contact us