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

Disinformation & Manipulation API

Detect manipulation signals in text - not political truth.

The Disinformation & Manipulation API classifies submitted text against 200 indicators across 6 manipulation groups in 16 supported languages.

Use the results to enrich integrity review, research, moderation, and analyst workflows.

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

Scope

Sentiqra analyzes signals contained in the text you submit. It does not independently determine whether a political claim is true, whether a source is credible, whether accounts are coordinated, or whether an image, audio clip, or video is synthetic.

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": "Share this everywhere before they delete it. An anonymous source says every major outlet is hiding the story.",
    "language": "en",
    "analyzers": [
        "disinformation"
    ]
}'

Example response:

{
    "language": "en",
    "language_source": "declared",
    "signals": [
        {
            "analyzer": "disinformation",
            "code": "manipulation_coordination",
            "label": "Manipulation & Coordination",
            "score": 0.91,
            "level": "category"
        },
        {
            "analyzer": "disinformation",
            "code": "urgency_amplification",
            "label": "Urgency Amplification",
            "score": 0.88,
            "level": "label",
            "parent": "manipulation_coordination"
        }
    ],
    "meta": {
        "analyzers": [
            {
                "name": "disinformation",
                "status": "completed",
                "applicability": "analyzable",
                "assessment": "signals_detected",
                "signal_count": 2,
                "billed": true
            }
        ]
    },
    "usage": {
        "analyzer_runs": 1
    },
    "verification": {
        "configuration": "sqcfg_FRA3E88J",
        "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

Classifies manipulation-related signals in submitted text and returns ranked groups and indicators.

Request

{
    "text": "Share this everywhere before they delete it. An anonymous source says every major outlet is hiding the story.",
    "language": "en",
    "analyzers": [
        "disinformation"
    ]
}

Parameters

Parameter Type Required Default Description
textstringYes-Text to analyze
languagestringNo"en"Supported language code
Advanced parameters →

Related endpoints

GET /v1/meta/domains/disinformation

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

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.

What the API can classify from text

Sentiqra can identify language associated with documented manipulation mechanisms such as:

Can classify from text

  • • Rhetorical persuasion techniques
  • • Emotional amplification
  • • Polarizing language
  • • Conspiracy framing
  • • Scapegoating
  • • Attribution patterns
  • • Propaganda techniques
  • • Unsupported or strongly asserted allegations
  • • Information-integrity signals expressed in the text

Requires external evidence

  • • Claim truth or falsity
  • • Source authenticity
  • • Coordinated-account behavior
  • • Bot identity
  • • Deepfake authenticity
  • • Network amplification
  • • Campaign attribution
  • • Narrative propagation velocity

These are classification signals, not judgments about political viewpoint or factual truth. For cases requiring external evidence, Sentiqra can provide one textual evidence layer for your broader analysis.

What requires additional evidence

Some integrity conclusions cannot be established from an isolated text item.

Claim truth or falsity

Determining whether a claim is true generally requires external evidence, provenance, or fact-checking.

Source authenticity

Determining whether a source, quote, document, or attribution is genuine requires provenance evidence.

Coordinated influence

Coordination normally requires account, timing, network, behavioral, or campaign-level evidence.

Synthetic media

Deepfake or synthetic-media verification requires image, audio, video, or provenance analysis.

Narrative propagation

Virality and campaign evolution require state across multiple items and time.

Classification is not enforcement

A typical integrity workflow looks like:

Content
        ↓
Sentiqra manipulation signals
        ↓
Source / account / network / provenance context
        ↓
Human or policy review
        ↓
Customer-defined decision

Sentiqra supplies structured classification evidence. Your organization determines whether additional investigation, labeling, reduced distribution, enforcement, or no action is appropriate.

Response structure

groups

High-level manipulation categories (level: "category").

{
    "analyzer": "disinformation",
    "code": "manipulation_coordination",
    "label": "Manipulation & Coordination",
    "score": 0.91,
    "level": "category"
}

signals

More specific indicators within each group (level: "label").

{
    "analyzer": "disinformation",
    "code": "urgency_amplification",
    "label": "Urgency Amplification",
    "score": 0.88,
    "level": "label",
    "parent": "manipulation_coordination"
}

parent

Category slug this label-level signal belongs to. Dotted form is group.label - e.g. manipulation_coordination.urgency_amplification means urgency_amplification sits under manipulation_coordination.

Field Type Description
codestringStable machine identifier
labelstringHuman-readable display name
parentstringParent category code (label-level only)
scorefloatSignal-match strength (0.0–1.0)

Signal scores

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.

Paid API keys receive the continuous score (profile full.v1); anonymous, playground, demo, and free-tier responses return banded scores with a confidence band (profile reduced.v1). See Understanding signals for the profile and band table.

It does not represent:

  • • Probability that a claim is false
  • • Probability that a speaker is malicious
  • • Political bias
  • • Source credibility
  • • Justification for an enforcement action

Confidence should determine evidence strength - not enforcement policy. Configure review thresholds according to indicator type, policy, context, and your own labeled evaluation data.

Your application decides what happens next.

200 indicators across 6 manipulation groups

The taxonomy is designed to describe mechanisms and signals, rather than political viewpoints. Groups may cover areas such as:

Persuasion & Propaganda
Manipulative Framing
Information Reliability Signals
Attribution & Source Claims
Polarization & Scapegoating
Narrative Manipulation
Coordinated-Influence Signals
Emotional Manipulation

Deterministic classification

For the same normalized input evaluated against the same supported pinned configuration and output profile, Sentiqra returns the same canonical signals.

Version changes are explicit so historical and current analyzer behavior can be distinguished.

Supported languages

Disinformation Analysis currently supports 16 languages.

Code Language Status
en English Production
fr French Production
es Spanish Production
de German Production
it Italian Production
nl Dutch Production
no Norwegian Production
pl Polish Production
uk Ukrainian Production
ru Russian Production
sv Swedish Production
fi Finnish Production
lv Latvian Production
lt Lithuanian Production
pt Portuguese Production
tr Turkish 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 →

Using Sentiqra for coordination analysis

Sentiqra does not independently discover coordinated networks from a single text request. Instead:

Content items
        ↓
Sentiqra technique classifications
        ↓
Your account + timestamp + network data
        ↓
Correlation / coordination analysis

Use Sentiqra's per-item manipulation signals as features in your own coordination-analysis layer.

Using Sentiqra with synthetic-media analysis

Sentiqra does not perform image, audio, or video forensics.

If another system identifies media as synthetic or suspicious, you can combine that provenance signal with Sentiqra's text classification in your downstream workflow.

Sentiqra can classify textual references to deepfakes and synthetic-media narratives. It does not verify whether media is actually synthetic.

Performance

Built for real-time integrity and moderation pipelines.

p50 < 200ms
Median response time (single request)
p95 < 500ms
95th percentile latency - published target

Published latency targets, not measured guarantees - measured snapshot figures are on the performance dashboard. Actual latency depends on network conditions, payload size, and load.

Errors, limits, and rate controls

The Disinformation API uses standard HTTP response codes:

Code Description
400Invalid request
401Authentication error
403Access unavailable
413Input too large
429Rate or quota exceeded
500Internal error
503Temporary unavailability

For retryable responses, follow documented backoff and Retry-After behavior.

Header Description
X-RateLimit-LimitMax requests per second
X-RateLimit-RemainingRemaining requests in current window
X-RateLimit-ResetUnix timestamp when window resets
View current pricing and limits →

Data handling

Sentiqra documents separately what crosses and remains within the service boundary:

Raw request content

Submitted text is processed in memory and not retained. No model training on your data.

Signal metadata

Individual signal results are not stored. Only aggregate counters are derived from them before the response is sent, apart from the bounded idempotency replay copy and webhook delivery payloads described in the retention schedule.

Operational metadata

Request status, key identifiers, latency, and billing information are logged for operational purposes.

Code examples

All examples use environment variables for API keys - do not hard-code keys in source.

curl -X POST https://sentiqra.tech/v1/analyze \
  -H "Authorization: Bearer $SENTIQRA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "Share this everywhere before they delete it. An anonymous source says every major outlet is hiding the story.",
    "language": "en",
    "analyzers": [
        "disinformation"
    ]
}'

Use an SDK

Official SDKs are available for Python, JavaScript, Go, and PHP.

View SDK preview →

Reading Disinformation Analysis output

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

Intended task

Flag documented manipulation techniques - fake authority, urgency amplification, conspiracy framing - present in a piece of text.

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 "disinformation"; 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 text only - author identity, distribution, and source reputation are not inputs.

Ordinary positive

“They do not want you to see these numbers. Every official source is compromised - share this everywhere before it gets deleted.”

source_authority_manipulation very high
suppression_distraction high

Safe inference: The text uses documented manipulation techniques. Queue it for review or downrank it per your integrity policy.

Confusing negative · Quotation

“The viral post claimed "every official source is compromised" - the audit released today shows the figures are real.”

What happens: Manipulation signals can still fire on the quoted claim. Debunks repeat the language they debunk - a signal marks the presence of a technique's vocabulary, not the author's side of the argument.

Why it's tricky: The analyzer detects techniques in text; it never decides which underlying claim is true. Fact-checkers, researchers, and journalists regularly produce text that matches - that is a routing signal, not an accusation.

What you can safely infer

  • Which documented manipulation techniques appear in the text.
  • That the same text on the same pinned configuration replays identically for your research record.

What you must not infer

  • ✕That the author is running an influence operation - technique presence is not attribution.
  • ✕That the underlying claim is true or false - truth adjudication is out of scope.
  • ✕That text with no signals is trustworthy - a missing signal means "not detected," never "clean."

Boundary: Manipulation signals flag techniques in the text - they are not a verdict on which claim is true and not attribution of an operation.