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

Crisis Intelligence API

Turn crisis-related text into structured analysis signals. The Crisis Intelligence API classifies submitted text against 650 indicators across 7 analysis groups in 21 supported languages.

Use the results to enrich news-monitoring, humanitarian, OSINT, research, and analyst workflows.

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

Scope

Sentiqra classifies the text you submit. It does not collect feeds, verify sources, geolocate events, or independently establish account coordination, narrative propagation, or media authenticity.

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": "More than 80,000 civilians fled after artillery attacks blocked humanitarian access.",
    "language": "en",
    "analyzers": [
        "crisis-intelligence"
    ]
}'

Example response:

{
    "language": "en",
    "language_source": "declared",
    "signals": [
        {
            "analyzer": "crisis-intelligence",
            "code": "humanitarian_migration",
            "label": "Humanitarian Migration",
            "score": 0.94,
            "level": "category"
        },
        {
            "analyzer": "crisis-intelligence",
            "code": "humanitarian_access",
            "label": "Humanitarian Access",
            "score": 0.93,
            "level": "label",
            "parent": "humanitarian_migration"
        },
        {
            "analyzer": "crisis-intelligence",
            "code": "displacement",
            "label": "Displacement",
            "score": 0.9,
            "level": "label",
            "parent": "humanitarian_migration"
        }
    ],
    "meta": {
        "analyzers": [
            {
                "name": "crisis-intelligence",
                "status": "completed",
                "applicability": "analyzable",
                "assessment": "signals_detected",
                "signal_count": 3,
                "billed": true
            }
        ]
    },
    "usage": {
        "analyzer_runs": 1
    },
    "verification": {
        "configuration": "sqcfg_EMKKGD6F",
        "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 crisis-related text and returns ranked analysis groups and indicators.

Request

{
    "text": "More than 80,000 civilians fled after artillery attacks blocked humanitarian access.",
    "language": "en",
    "analyzers": [
        "crisis-intelligence"
    ]
}

Parameters

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

Related endpoints

GET /v1/meta/domains/crisis-intelligence

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 analyzes

Good inputs

  • • News articles and headlines
  • • Field reports
  • • Situation reports
  • • OSINT text
  • • Policy documents
  • • Analyst notes
  • • Public statements
  • • Social-media text supplied by your system

Not independently determined

  • • Whether a reported event is true
  • • Source credibility
  • • Geolocation of events
  • • Account coordination or bot activity
  • • Media authenticity or deepfake detection
  • • Cross-platform propagation

Sentiqra identifies crisis-related language within those inputs. It does not independently determine whether a reported event is true.

Text signals vs contextual evidence

Some indicators can be inferred directly from text:

Directly inferable from text

  • • Displacement
  • • Conflict
  • • Humanitarian need
  • • Border restrictions
  • • Political pressure
  • • Propaganda techniques
  • • Threat language

Requires additional evidence

  • • Bot activity
  • • Coordinated campaigns
  • • Virality
  • • Cross-platform propagation
  • • Source authenticity
  • • Staged events
  • • Deepfakes

For context-dependent indicators, treat the classification as a textual signal to investigate rather than confirmation of the underlying phenomenon. Sentiqra classifies signals present in the text you provide. Context-dependent indicators may reflect language about coordination, provenance, or media authenticity; they do not independently verify those conditions.

Response structure

groups

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

{
    "analyzer": "crisis-intelligence",
    "code": "humanitarian_migration",
    "label": "Humanitarian Migration",
    "score": 0.94,
    "level": "category"
}

signals

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

{
    "analyzer": "crisis-intelligence",
    "code": "humanitarian_access",
    "label": "Humanitarian Access",
    "score": 0.93,
    "level": "label",
    "parent": "humanitarian_migration"
}

parent

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

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 establish:

  • • Whether the reported event occurred
  • • Whether the source is credible
  • • Whether an operational response is appropriate
  • • Whether an analyst conclusion is correct

Use confidence alongside source credibility, provenance, corroboration, and human analysis.

Use confidence as an analyst-routing signal. Validate thresholds by indicator and use case before operational deployment.

650 indicators across 7 analysis groups

The taxonomy covers areas including:

Migration & Border
Humanitarian & Vulnerability
Threat, Conflict & Security
Institutions, Law & Governance
Political, Economic & Societal Pressure
Information Reliability
Crisis & Information Dynamics
Persuasion & Propaganda

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

Crisis Intelligence currently supports 21 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
da Danish Production
ja Japanese Production
ko Korean Production
zh Chinese Production
he Hebrew 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 →

Build it into an analyst workflow

Typical architecture:

Source text
        ↓
Sentiqra classification
        ↓
Source/provenance/context layer
        ↓
Analyst review
        ↓
Briefing, alert, or downstream action

Sentiqra supplies the structured classification signal. Your system and analysts determine what the signal means in context. Use Sentiqra signals as one input to your own early-warning analysis.

Errors and limits

The API returns standard HTTP status codes:

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

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": "More than 80,000 civilians fled after artillery attacks blocked humanitarian access.",
    "language": "en",
    "analyzers": [
        "crisis-intelligence"
    ]
}'

Use an SDK

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

View SDK preview →

Reading Crisis Intelligence output

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

Intended task

Classify crisis-related text - field reports, news copy, public posts - into documented analysis groups covering displacement, humanitarian need, governance, and information dynamics.

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 "crisis-intelligence"; 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.
  • Single texts, not streams - correlation across sources is your pipeline's job.

Ordinary positive

“Roughly 400 families crossed the border overnight after shelling cut the bridge; the reception camp has run out of tents.”

migration_border very high
humanitarian_vulnerability high

Safe inference: The text describes displacement and humanitarian need in the documented language of those categories. Route it to the monitoring desk for that region.

Confusing negative · Reported speech

“Officials claimed 400 families crossed the border overnight, but journalists at the crossing reported no movement and no new arrivals.”

What happens: Migration and displacement signals can still fire: the text describes the event in the documented vocabulary even though it disputes it. The analyzer reads language - it does not adjudicate whether the event happened.

Why it's tricky: Text describing an event is not verification that the event occurred. Denials, debunks, and contested claims can match the same categories as genuine reports - use signals to triage reading volume, then verify through your sources.

What you can safely infer

  • Which documented analysis groups and indicators the text matched.
  • That a high band means the text strongly matches the documented language of the category - useful for triage order.

What you must not infer

  • ✕That the described event is verified, current, or correctly attributed.
  • ✕Casualty or displacement figures as facts - they are claims made in the text.
  • ✕That absent signals mean no crisis - coverage depends on the documented taxonomy and the language of the report.

Boundary: Signals describe text, not events. A displacement or conflict signal means the text uses the documented language of that event type - it is not independent verification that the event occurred, and it carries no validation of figures, dates, or attribution.