Text Analytics:
Turn Any Text into
Structured Data
The same NLP models that enrich news from 150,000+ publishers are available for your own content. Annotate, categorize, extract entities, score sentiment, detect language and parse articles — each with a single REST call.
{ "entities": [
{ "text": "Microsoft", "type": "ORGANIZATION" },
{ "text": "London", "type": "CITY" },
{ "text": "$2.4 billion", "type": "MONEY" },
{ "text": "CEO", "type": "TITLE" },
{ "text": "Satya Nadella", "type": "PERSON" } ] }
Semantic annotation
POST/api/v1/annotate
Identify the people, organizations, locations and things mentioned in a document and disambiguate them to unique Wikipedia and WikiData entries. Annotation works in over 100 languages; each detected concept carries the exact character span where it appears, a link to Wikipedia in the document's language, a secUrl link to the English Wikipedia and a relevance weight — so "Azure's" resolves to Microsoft Azure, not the color.
Sample text · annotated
Microsoft has agreed to acquire the London-based AI startup for $2.4 billion, its largest European deal to date. CEO Satya Nadella said the acquisition will strengthen Azure's machine learning capabilities and create 300 new jobs in the United Kingdom.
POST /api/v1/annotate200 OK · application/json
{
"annotations": [
{
"title": "Microsoft",
"url": "http://en.wikipedia.org/wiki/Microsoft",
"wikiDataItemId": "Q2283",
"dbPediaTypes": ["Agent", "Organisation", "Company"],
"support": [{ "chFrom": 0, "chTo": 8,
"text": "Microsoft" }],
"wgt": 0.667
},
{
"title": "Satya Nadella",
"url": "http://en.wikipedia.org/wiki/Satya_Nadella",
"wikiDataItemId": "Q7426870",
"support": [{ "chFrom": 117, "chTo": 129,
"text": "Satya Nadella" }],
"wgt": 0.357
},
{ "title": "Microsoft Azure", "wikiDataItemId": "Q725967", … },
{ "title": "Machine learning", "wikiDataItemId": "Q2539", … }
],
"language": "en"
}
Read the documentation Try semantic annotation in the sandbox →
Categorization
POST/api/v1/categorize
Classify content into predefined taxonomies and get a ranked list of categories with confidence scores. Choose the taxonomy that fits your use case: DMOZ (5,000+ categories in 3 levels, English documents), news (8 top-level news categories, works in any language) or IPTC subject codes (1,000+ categories maintained by the IPTC news-media standards body). Works best on article-length documents.
Computed categories · news taxonomy
Same text · dmoz taxonomy
Same text · iptc taxonomy
POST /api/v1/categorize200 OK · application/json
{
"categories": [
{
"label": "news/Technology",
"score": 0.6768,
"uri": "news/Technology"
},
{
"label": "news/Business",
"score": 0.301,
"uri": "news/Business"
}
]
}
// taxonomy: "dmoz" on the same text
{
"categories": [
{
"label": "dmoz/Computers/Artificial Intelligence",
"score": 0.3415,
"uri": "dmoz/Computers/Artificial_Intelligence"
}, …
]
}
Named entity recognition
POST/api/v1/ner
Detect the people, organizations, locations, dates, monetary amounts and other named entities in your content. Every entity comes typed and with its exact character offsets (startCh, endCh), so you can highlight, link or redact it directly in the original text. Sample documents are available in English, German, Spanish and Chinese in the sandbox.
Sample text · detected entities
Microsoft has agreed to acquire the London-based AI startup for $2.4 billion, its largest European deal to date. CEO Satya Nadella said the acquisition will strengthen Azure's machine learning capabilities and create 300 new jobs in the United Kingdom.
POST /api/v1/ner200 OK · application/json
{
"entities": [
{ "startCh": 0, "endCh": 9,
"type": "ORGANIZATION", "text": "Microsoft" },
{ "startCh": 36, "endCh": 42,
"type": "CITY", "text": "London" },
{ "startCh": 64, "endCh": 76,
"type": "MONEY", "text": "$2.4 billion" },
{ "startCh": 90, "endCh": 98,
"type": "NATIONALITY", "text": "European" },
{ "startCh": 113, "endCh": 116,
"type": "TITLE", "text": "CEO" },
{ "startCh": 117, "endCh": 130,
"type": "PERSON", "text": "Satya Nadella" },
{ "startCh": 217, "endCh": 220,
"type": "NUMBER", "text": "300" },
{ "startCh": 237, "endCh": 251,
"type": "COUNTRY", "text": "United Kingdom" }
]
}
Read the documentation Try named entity recognition in the sandbox →
Sentiment analysis
POST/api/v1/sentiment
Score the sentiment of English text on a scale from −1 (very negative) to +1 (very positive). Pick the vocabulary-based method or a neural-network model, and get both the document average and a sentence-by-sentence breakdown — so one enthusiastic quote can't hide a critical paragraph.
Sentence-by-sentence sentiment
- 0.00 The company is expected to report quarterly results on Thursday.
- +0.80 Reviewers praised the sleek design and outstanding battery life.
- −0.74 However, critics warned that supply chain delays could frustrate customers in the coming months.
POST /api/v1/sentiment200 OK · application/json
{
"avgSent": 0.0197,
"sentimentPerSent": [
0,
0.802,
-0.743
]
}
Read the documentation Try sentiment analysis in the sandbox →
Detect language
POST/api/v1/detectLanguage
Identify the language a text is written in. The response reports how reliable the detection is and lists the most likely languages with their probabilities, each with standard ISO 639-1 and ISO 639-3 codes ready to feed into the rest of your pipeline.
Sample text
“รัฐบาลได้อนุมัติร่างกฎหมายส่งเสริมการใช้พลังงานหมุนเวียนในวันนี้”
Detected language
POST /api/v1/detectLanguage200 OK · application/json
[
{
"name": "THAI",
"code": "th",
"percent": 100,
"score": 1024,
"iso3": "tha",
"iso1": "th"
}
]
Read the documentation Try language detection in the sandbox →
Extract article information
POST/api/v1/extractArticleInfo
Point the API at any article URL and get the story back as clean, structured data. We crawl the page and extract the title, full body text, authors, publishing date and time, main image, outgoing links, embedded videos and the rest of the available metadata — no scraping code, no boilerplate removal, no site-specific parsers to maintain.
Input URL
Extracted fields
- title
- US women in politics spark conversation about balancing family and career
- authors
- Madeline Halpert
- datetime
- 2026-08-15T23:01:50Z
- image
- https://ichef.bbci.co.uk/news/1024/branded_news/cdba/live/bc3d…
- body
- Last summer, Representative Sara Jacobs would run up to her office… (5,800 characters)
- links
- 18 outgoing links with anchor texts
POST /api/v1/extractArticleInfo200 OK · application/json
{
"title": "US women in politics spark conversation
about balancing family and career",
"authors": ["Madeline Halpert"],
"date": "2026-08-15",
"datetime": "2026-08-15T23:01:50Z",
"image": "https://ichef.bbci.co.uk/news/1024/…",
"body": "Last summer, Representative Sara Jacobs
would run up to her office…",
"links": [
{ "anchorText": "freezing her eggs",
"url": "https://www.bbc.com/news/…" }, …
],
"urlCanonical": "https://www.bbc.com/news/articles/cjwxgz95jvgo"
}
Read the documentation Try article extraction in the sandbox →
Pricing
Text analytics is billed in tokens, and each analyzed document costs only a fraction of a token — so a single token covers the analysis of many documents. The 5K plan ($90/month) includes 5,000 tokens; here is what that buys for each analyzer.
| Action | Tokens per document | API calls with the $90 plan | Price per 1,000 documents |
|---|---|---|---|
| Semantic annotation | 0.04 | 125,000 | $0.72 |
| Categorization | 0.04 | 125,000 | $0.72 |
| Named entity recognition | 0.02 | 250,000 | $0.36 |
| Sentiment analysis | 0.02 | 250,000 | $0.36 |
| Detect language | 0.01 | 500,000 | $0.18 |
| Extract article information | 0.05 | 100,000 | $0.90 |
Every new account starts with 2,000 free tokens — no credit card required — enough for 100,000 named-entity calls or 40,000 article extractions. Plans and pricing page show all the available pricing information.
Start Analyzing Text in Minutes
Your NewsAPI.ai key unlocks all six text analytics endpoints alongside news search — register and get 2,000 free tokens, no credit card required.