Skip to content
FitMyKB

FitMyKB Verify

Add a CAPTCHA to a Flutter app

One call shows the check in a bottom sheet and returns a one-time token for your server. Android and iOS, in 35 languages.

Add the package

Download the SDK zip from the docs and copy its sdk/flutter folder into your project, then add it as a path dependency. It uses webview_flutter and nothing else.

YAML · pubspec.yaml
# pubspec.yaml: the Flutter SDK is the sdk/flutter folder of the SDK zip
dependencies:
  fitmykb_verify:
    path: ./packages/fitmykb_verify

Allow your app

In your dashboard, add the app's package name or bundle id (for example com.example.shop) as one of the site key's websites. That's the only setting.

Ask for the check

FitMyKBVerify.verify opens a bottom sheet with the check and returns the token, or null if the person closes it. Language, theme, size and puzzle style work as on the web.

Dart · sign-up
import 'package:fitmykb_verify/fitmykb_verify.dart';

Future<void> createAccount(BuildContext context) async {
  final token = await FitMyKBVerify.verify(
    context,
    siteKey: 'YOUR_SITE_KEY',
    appId: 'com.example.shop', // your package name / bundle id
    language: 'hi',            // or leave it out to follow the phone
  );
  if (token == null) return;   // the person closed the sheet
  // Send the token to YOUR server, which checks it with siteverify.
  await api.signUp(email, password, captcha: token);
}

Check it on your server

Send the token with the sign-up request. Your server posts it to siteverify with the secret. Never put the secret in the app: anyone can read an app's files.

Score only

Pass action: 'signup' to skip the box entirely: the sheet closes by itself and your server gets a score from 0 to 1.

Get free keys · Full developer docs

Questions

Good questions

Anything else? Read the docs or ask us.

Does it work on the web build?

On Flutter web, put the website widget on the page instead: the Flutter SDK is for Android and iOS.