1. Quickstart
CallerAPI Documentation
  • Quickstart
  • Use cases
    • For carriers (MNOs/MVNOs)
    • CPaaS platforms
    • Cloud communications providers
    • SIP trunking providers
    • PBX/Cloud PBX
    • UCaaS vendors
  • Account
    • Balance and email
      GET
  • Spam protection
    • Voice firewall
      • Get started
      • Quickstart
        • What you get
        • Before you start
        • Test with a recording
        • Connect your switch
        • Switch notes
        • Twilio and Telnyx
        • Send text instead of audio
      • Verdicts
        • Read a verdict
        • What to do with a verdict
        • Block a caller
        • Events and webhooks
      • Honeypot
        • Hand a call over
        • Audio, events, and limits
      • Reference
        • Endpoints
        • Errors
        • Limits and thresholds
        • Production checklist
      • REST
        • What this deployment can do
        • List the verdict categories
        • List the honeypot personas
        • Score a transcript or a recording
        • List your recent sessions
        • Get one session with verdict and intel
        • Twilio voice URL for a screened number
        • Preview the Twilio TwiML
        • Telnyx voice URL for a screened number
        • Twilio voice URL for a honeypot number
        • Telnyx voice URL for a honeypot number
      • WebSocket
        • Live scam filter stream
        • Honeypot stream
    • Daily spam reports
      • Webhook
        • Subscribe to daily reports
        • Unsubscribe from daily reports
        • List webhook subscriptions
        • Manual dispatch of reports
        • Test webhook
      • REST
        • Fetch daily spam reports
    • 15 days spam CSV snapshot
      GET
    • Spam score + HLR
      GET
  • Mobile SDK
    • Get started
    • Quickstart
      • What you get
      • Get your keys
      • Android
      • iOS
      • Flutter
      • React Native
      • Check it works
    • Call screening
      • What each platform can do
      • Android call screening
      • iOS prerequisites
      • iOS add the extension
      • iOS test on device
    • Reference
      • Methods
      • Errors
      • Limits and billing
      • Troubleshooting
  • Data partners
    • Partner tems & docs
    • Upload spam reports
      POST
    • Upload contacts
      POST
  • Fraud prevention
    • Ported date
    • Porting history
    • Online presence
    • KYC user identity
  • Business Caller ID
    • Get started
    • Quickstart
      • Announce a call
      • Verify at INVITE
      • What you get
    • Verdicts
      • Show the name and logo
      • Read a verdict
    • REST
      • Verify the calling number
      • Fetch the logo
      • Announce a call
  • Signer reputation by SPC
    GET
  • Signers ranked by score
    GET
  • Schemas
    • Spam protection
      • Spam score request
      • Business info
      • Carrier info
      • Complaint (without number)
      • Daily spam reports request
      • Complaint (with phone)
    • Signer
  1. Quickstart

Flutter

Five minutes. One package, two credential files, one function call.

Before you start#

Your Android build targets minSdk 24 and uses JDK 17.
Your iOS build targets iOS 13.0 or later.
You have your three credentials. See Get your keys.

Step 1: add the package#

In your project folder, run:
That adds callerapi: ^1.6.2 to pubspec.yaml and downloads it.
The plugin pulls the native code from Maven Central on Android and CocoaPods on iOS. You do not copy any files by hand.

Step 2: add your Android credentials#

Open android/app/src/main/AndroidManifest.xml. Paste these three entries inside the <application> tag:
<application ... >

    <meta-data android:name="com.callerapi.sdk.CLIENT_KEY"
               android:value="paste-your-client-key" />
    <meta-data android:name="com.callerapi.sdk.SDK_KEY"
               android:value="paste-your-sdk-key" />
    <meta-data android:name="com.callerapi.sdk.SDK_SECRET"
               android:value="paste-your-sdk-secret" />

</application>

Step 3: add your iOS credentials#

Open ios/Runner/Info.plist. Paste these four lines before the closing </dict>:
<key>CallerAPISDKKey</key>
<string>paste-your-sdk-key</string>
<key>CallerAPISDKSecret</key>
<string>paste-your-sdk-secret</string>
Then run:
Skip this step if you only build for Android today. iOS lookups fail without it, and they fail quietly.

Step 4: look up a number#

Run the app on a device or emulator. The console prints Caller: CallerAPI LC.
There is no initialize call. The plugin starts the SDK when Flutter attaches it, and reads your credentials from the two files above. If you look for an initialize function, you will not find one.
That is the quickstart. Go to Check it works.

Checking for spam#

A complete example#

Things that will confuse you#

It works on Android and returns null on iOS. You skipped step 3, or you did not run pod install after editing Info.plist.
Every lookup returns null on both platforms. Your credentials are wrong or in the wrong place. Try +18883578668 first, because it is a known business. Then check that the manifest entries sit inside <application>.
The Android build fails on Gradle. Confirm JDK 17. Run flutter doctor -v and read the Java version it reports.
The iOS build fails after adding the package. On Flutter 3.44 and later, turn off Swift Package Manager for this project, because the plugin ships a CocoaPods podspec. Run flutter config --no-enable-swift-package-manager.

Which functions exist on which platform#

Some functions only make sense on one platform. They return false rather than throwing on the other, so it is safe to call them without a platform check.
FunctionAndroidiOS
lookupLabel, isSpam, checkInYesYes
requestCallScreeningRole, isCallScreeningRoleGrantedYesReturns false
requestOverlayPermission, isOverlayPermissionGrantedYesReturns false
bootstrapFromInfoPlist, getLiveLookupStatus, prewarmLiveLookup, resetLiveLookupReturns falseYes
setAnalyticsConsentYesDoes nothing
To draw your own Android name card, replace the SDK screening service in Android source. Dart cannot receive onScreenCall. See Drawing your own name card.

Next#

Check it works
Android call screening
iOS prerequisites
Methods
Modified at 2026-08-19 00:11:07
Previous
iOS
Next
React Native
Built with