Scan a single text input for harmful content across all KOSA categories.
final result = await tuteliq.detectUnsafe( text: "Let's meet at the park after school, don't tell your parents", ageGroup: AgeGroup.tenToTwelve,);print(result.safe); // falseprint(result.severity); // Severity.highprint(result.categories); // [Category.grooming, Category.secrecy]
Analyze a conversation history for grooming indicators.
final result = await tuteliq.detectGrooming( messages: [ Message(role: Role.stranger, text: 'Hey, how old are you?'), Message(role: Role.child, text: "I'm 11"), Message(role: Role.stranger, text: 'Cool. Do you have your own phone?'), Message(role: Role.stranger, text: "Let's talk on a different app, just us"), ], ageGroup: AgeGroup.tenToTwelve,);print(result.groomingDetected); // trueprint(result.riskScore); // 0.92print(result.stage); // GroomingStage.isolation
Evaluate emotional well-being from conversation text.
final result = await tuteliq.analyzeEmotions( text: 'Nobody at school talks to me anymore. I just sit alone every day.', ageGroup: AgeGroup.thirteenToFifteen,);print(result.emotions); // [Emotion(label: 'sadness', score: 0.87), ...]print(result.distress); // trueprint(result.riskLevel); // RiskLevel.elevated
These methods cover financial exploitation, romance scams, and coercive behaviour targeting minors. Other endpoints — detectAppFraud, detectMuleRecruitment, detectGamblingHarm, detectCoerciveControl, and detectRadicalisation — follow the same call pattern shown here.
Identify manipulation tactics designed to trick a child into disclosing information or taking unsafe actions.
final result = await tuteliq.detectSocialEngineering( text: "If you really trusted me you'd send me your home address. All my real friends do.", ageGroup: AgeGroup.tenToTwelve,);print(result.detected); // trueprint(result.tactics); // [Tactic.trustExploitation, Tactic.peerPressure]print(result.riskScore); // 0.88
Analyze conversation text for romantic manipulation patterns that may indicate an adult posing as a peer.
final result = await tuteliq.detectRomanceScam( messages: [ Message(role: Role.stranger, text: "I've never felt this way about anyone before. You're so mature for your age."), Message(role: Role.child, text: "Really? That makes me really happy."), Message(role: Role.stranger, text: "I need you to keep us a secret. People wouldn't understand."), ], ageGroup: AgeGroup.thirteenToFifteen,);print(result.detected); // trueprint(result.riskScore); // 0.91print(result.indicators); // [Indicator.loveBombing, Indicator.secrecyRequest, Indicator.ageFlattery]
Detect attempts to identify and target emotional or situational vulnerabilities in a child.
final result = await tuteliq.detectVulnerabilityExploitation( text: "I know you said your parents don't listen to you. I'm different — I actually care. You can tell me anything.", ageGroup: AgeGroup.thirteenToFifteen,);print(result.detected); // trueprint(result.riskScore); // 0.85print(result.vulnerabilities); // [Vulnerability.parentalConflict, Vulnerability.emotionalNeglect]
Run any supported detection across multiple texts in a single API call to reduce round-trips.
final result = await tuteliq.analyseMulti( inputs: [ AnalyseMultiInput(text: "You're so special. Nobody else understands you like I do.", ageGroup: AgeGroup.thirteenToFifteen), AnalyseMultiInput(text: "Can you keep a secret from your mum?", ageGroup: AgeGroup.tenToTwelve), ], detections: [Detection.socialEngineering, Detection.romanceScam, Detection.grooming],);print(result.results[0].detections); // AnalyseMultiDetections(socialEngineering: ..., ...)print(result.results[1].detections); // AnalyseMultiDetections(grooming: ..., ...)
analyseMulti is billed per individual input × detection combination, not per request.