We are currently building something exciting and will be launching soon. Registration is temporarily closed. Launching soon — registration temporarily closed.

Dating Safety API

Classify text with structured, versioned results. The Dating Safety analyzer classifies text against 200 indicators in 5 groups across 40 supported languages.

Use the returned groups, indicators, confidence values, and version metadata in your own triage and review workflows.

POST /v1/analyze · REST · JSON · Bearer authentication

Make your first request

curl -X POST https://sentiqra.tech/v1/analyze \
  -H "Authorization: Bearer $SENTIQRA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "I've never asked you for anything before, but my daughter needs surgery and I can't cover the hospital bill \u2014 can you help me just this once?",
    "language": "en",
    "analyzers": [
        "dating-safety"
    ]
}'

Example response:

{
    "language": "en",
    "language_source": "declared",
    "signals": [
        {
            "analyzer": "dating-safety",
            "code": "deception_manipulation",
            "label": "Deception & Manipulation",
            "score": 0.94,
            "level": "category"
        },
        {
            "analyzer": "dating-safety",
            "code": "scam_money_request",
            "label": "Direct request for money or financial help",
            "score": 0.92,
            "level": "label",
            "parent": "deception_manipulation"
        },
        {
            "analyzer": "dating-safety",
            "code": "scam_emergency_medical",
            "label": "Fabricated medical emergency needing funds",
            "score": 0.9,
            "level": "label",
            "parent": "deception_manipulation"
        }
    ],
    "meta": {
        "analyzers": [
            {
                "name": "dating-safety",
                "status": "completed",
                "applicability": "analyzable",
                "assessment": "signals_detected",
                "signal_count": 3,
                "billed": true
            }
        ]
    },
    "usage": {
        "analyzer_runs": 1
    },
    "verification": {
        "configuration": "sqcfg_SNEEC9V3",
        "fingerprint": "fp_8a72...19f",
        "input_commitment": "ic_31bd...a42",
        "signature": "sig_ed25519_4c1f...e2a",
        "key_id": "edk_af4f218e"
    }
}

Don't have an API key? Generate one from the API Keys page in your dashboard.

Endpoint

POST /v1/analyze

Analyzes submitted text and returns structured signals with scores and a verification receipt. Select this analyzer via the analyzers parameter with ID dating-safety.

Request

{
    "text": "I've never asked you for anything before, but my daughter needs surgery and I can't cover the hospital bill \u2014 can you help me just this once?",
    "language": "en",
    "analyzers": [
        "dating-safety"
    ]
}

Parameters

Parameter Type Required Default Description
textstringYes-Text to analyze
languagestringNo"en"Supported language code
analyzersstring[]Yes-1–2 analyzer slugs to run (never defaults to all)

Related endpoints

GET /v1/meta/domains

Lists all analyzers with identifiers, status, and endpoints - no authentication required. Send a Bearer API key for taxonomy size and language counts.

GET /v1/meta/domains/dating-safety

Identifier, availability, and endpoint for this analyzer. Send a Bearer API key for taxonomy summary and supported languages.

GET /v1/account/usage

Current-period usage and quota for your API key. Requires authentication.

Response fields

Field Type Description
analyzerstringAnalyzer that produced this signal
codestringStable machine identifier - immutable across API versions; use for storage and cross-referencing
labelstringHuman-readable display name
scorefloatSignal-match strength (0.0-1.0)
levelstring"category" or "label"
parentstringParent category code (label-level only)

Important behavior

Determinism

For the same normalized input evaluated against the same pinned configuration and output profile, Sentiqra returns the same canonical signals. Version changes are explicit.

Confidence

A score expresses signal-match strength under a particular analyzer configuration. It is not a probability that the signal or a downstream action is correct. Validate action thresholds on representative labeled data.

Privacy

Submitted text is processed in memory and not retained. See data handling for exact retention behavior.

Limits

Character limit, RPS, and monthly quota depend on your plan. See pricing for current limits.

Supported languages

Dating Safety currently supports 40 languages.

Code Language Status
ar Arabic Production
arz Egyptian Arabic Production
be Belarusian Production
bg Bulgarian Production
bn Bengali Production
cs Czech Production
da Danish Production
de German Production
el Greek Production
en English Production
es Spanish Production
fi Finnish Production
fr French Production
hi Hindi Production
hr Croatian Production
hu Hungarian Production
id Indonesian Production
it Italian Production
ja Japanese Production
ko Korean Production
lt Lithuanian Production
mr Marathi Production
nl Dutch Production
no Norwegian Production
pcm Nigerian Pidgin Production
pl Polish Production
pt Portuguese Production
ro Romanian Production
ru Russian Production
sk Slovak Production
sr Serbian Production
sv Swedish Production
sw Swahili Production
ta Tamil Production
te Telugu Production
tr Turkish Production
uk Ukrainian Production
ur Urdu Production
vi Vietnamese Production
zh Chinese Production

All languages this detector supports are enabled on every plan. Custom or restricted arrangements may scope language access - check the dashboard or GET /v1/account/entitlements for account-specific availability.

Detector does not support language → 400 unsupported_language
Detector supports language but the account is not entitled (restricted/custom arrangements only - GA plans include all supported languages) → 403 language_not_in_plan

View language coverage and benchmarks →

Taxonomy

The Dating Safety taxonomy contains 5 groups and 200 indicators. Representative entries are shown publicly - the complete taxonomy is available to customers after request access .

1

Deception Manipulation

deception_manipulation

50 indicators

The complete signal list is available to customers. Request access to view it.

2

Abuse Threats

abuse_threats

50 indicators

The complete signal list is available to customers. Request access to view it.

3

Sexual Boundaries

sexual_boundaries

30 indicators

The complete signal list is available to customers. Request access to view it.

4

Exploitation

exploitation

30 indicators

The complete signal list is available to customers. Request access to view it.

5

Platform Misc

platform_misc

40 indicators

The complete signal list is available to customers. Request access to view it.

Reading Dating Safety output

What you can safely infer from a result - and what you must not.

Intended task

Flag documented dating-risk patterns - scam lures, coercion, unsafe-contact escalation - in member text for review and warning flows.

Input requirements

  • text - the only field analyzed; up to 4,096 Unicode code points. Over the limit is rejected with input_too_long, never truncated.
  • language - must be a language this analyzer supports. Unsupported codes are rejected with 400 unsupported_language, never analyzed as a different language.
  • analyzers - include "dating-safety"; up to 2 analyzers per request, one billed run each.
  • No context beyond text - no user IDs, history, profiles, or attachments are read or inferred.
  • Analyzes the submitted message only - profiles, photos, match history, and payment records are not inputs.

Ordinary positive

“My love, the customs office is holding your package. I need EUR 400 for the release fee - can you send it today?”

romance_scam very high
scam_money_request very high
scam_customs_fee high

Safe inference: The message matches documented romance-scam and money-request patterns - route it to the specialized queue before money moves.

Confusing negative · Quotation

“He wrote "the customs office is holding your gift - I need EUR 400 for the release fee" - is this a scam?”

What happens: Scam signals can still fire: the member is quoting the lure to report it, but the analyzer scores the submitted text as written. The signal means the text contains documented scam language - not that the sender of this message is a scammer.

Why it's tricky: Reports, safety warnings, and appeals all quote the messages they describe. Combine the signal with who sent the text and your own context - and remember that a bare "can you send me money?" may be too thin to match strongly. Absence is "not detected," never clearance.

What you can safely infer

  • Which documented risk behaviors the text matched, and at what signal-match strength.
  • That the receipt ties each flag to the configuration that produced it - a replayable record for investigators.

What you must not infer

  • ✕That the sender is actually a scammer - the signal describes the text, not the person.
  • ✕That the recipient is a victim or that a reported incident occurred.
  • ✕That unflagged conversations are safe - a missing signal means "not detected," never "cleared."
  • ✕Anything outside the submitted text - no photos, profiles, or account metadata are analyzed.

Boundary: Dating Safety signals flag risk language in a message - they do not determine that a user is a scammer, and a clean result is not clearance. Enforcement stays with your moderation team.

Next steps