Ontology Classifier

Classify text against NOSIBLE's ontologies, answered in the shape of a V2.0-preview event's ontologies list.

POST/api/v2.0-preview/models/ontology

Authorizations

Bearer

Body

application/json
textstringrequiredbody

Text to classify. Maximum 50,000 characters.

Example: Microsoft completed its acquisition of Activision Blizzard after regulators approved the deal.

How to use this endpoint

guidance

Use Ontology Classifier to label text that is not in the World archive exactly as V2.0-preview labels its events: the same classifier, the same families and levels, and the same rule that a label needs a probability of at least 0.5. Each family can contribute up to three labels; families with no label at 0.5 or above are left out, so a list can be short or empty. Compare an answer directly with an event's ontologies field. The V1.2 endpoint (/api/models/ontology) is unchanged and returns one top label per family.

Response body

application/json

These are the fields you can build against. Nested names use dot notation; optional sections are called out in their descriptions.

schemastring

Response schema of the V2.0-preview Ontology Classifier.

Example: nosible_model_ontologies_v2

modelstring

Pinned classifier name, version, and immutable build identifier: the classifier that labels V2.0-preview events.

Example: NOSIBLE/ontology-classifier-v3def-2026-07-17@sha256:dacfc51014c5d6b0729d38d46a7318fc09bc49d1e2ee971f3a1ec2c70af5533f

textstring

The exact input text classified by the model.

Example: Microsoft completed its acquisition of Activision Blizzard after regulators approved the deal.

ontologiesobject[]

Labels with a probability of at least 0.5, highest first, in the shape of a V2.0-preview event's ontologies field.

Example: [{ "ontology": "media_frame", "label": "Economic Consequences", "probability": 0.9147 }]

ontologies[].ontologystring

Family, named as in V2.0-preview events: asset_class, ekman7_emotion, emdat, gics, iab, icd11, iptc_genre, iptc_media_topics, media_frame, mitre_attack, nosible, plover, schema_org_event, sdgs, or sportsml.

Example: gics

ontologies[].probabilitynumber

Classifier probability, rounded to four decimal places; always 0.5 or more.

Example: 0.514

ontologies[].<level>string

The label's levels, named by family: iab tier_1 to tier_4; gics sector, industry_group, industry, sub_industry; nosible category, subcategory, event; asset_class main_class, sub_class; emdat disaster_group, disaster_subgroup, disaster_type; iptc_media_topics level_1 to level_3; mitre_attack tactic, technique, subtechnique; icd11 chapter, block; sdgs goal, target; plover event, mode, context; sportsml sport or event_type; media_frame, ekman7_emotion, iptc_genre and schema_org_event label. Levels the label does not reach are omitted.

Example: Communication Services

Responses and errors

HTTP
200Request succeeded. The response body is shown in the panel on the right.
400invalid_request — The request is syntactically valid JSON but a value, date, filter, or combination of fields is invalid.
401unauthorized — The required API key or Bearer credential is missing or invalid.
422validation_error — The request shape is understood but one or more values fail validation.
429rate_limited — The request exceeded the account or public-window rate limit. Respect Retry-After when supplied.
502upstream_error — An upstream retrieval service failed while processing the request.
504upstream_timeout — An upstream retrieval service did not respond within the request timeout.