Adding readability scoring to your app usually means pulling in a full NLP library — Flesch-Kincaid alone requires syllable counting, sentence splitting, and word frequency logic. The Text Stats & Readability API bundles all of it in a pure Node.js REST service with no ML, no external model calls.
POST /api/v1/analyze returns everything in one shot — Flesch Reading Ease, Flesch-Kincaid Grade Level, top keywords with frequency and density, plus word/sentence/paragraph counts:
curl --request POST \
--url 'https://text-stats-readability-api.p.rapidapi.com/api/v1/analyze' \
--header 'x-rapidapi-key: YOUR_RAPIDAPI_KEY' \
--header 'x-rapidapi-host: text-stats-readability-api.p.rapidapi.com' \
--header 'content-type: application/json' \
--data '{"text": "Your article or blog post goes here.", "topN": 10}'
The response includes fleschReadingEase (0–100, higher = easier), fleschKincaidGrade (US school grade level), and interpretation ("Easy", "Standard", "Difficult", etc.). The topKeywords array gives each keyword's count and density percentage after stop-word filtering.
const res = await fetch(
'https://text-stats-readability-api.p.rapidapi.com/api/v1/analyze',
{
method: 'POST',
headers: {
'x-rapidapi-key': process.env.RAPIDAPI_KEY,
'x-rapidapi-host': 'text-stats-readability-api.p.rapidapi.com',
'content-type': 'application/json',
},
body: JSON.stringify({ text: articleBody, topN: 10 }),
}
);
const { fleschReadingEase, fleschKincaidGrade, topKeywords } = await res.json();
Need just one metric? POST /api/v1/readability returns Flesch scores only; POST /api/v1/keywords returns keywords only; POST /api/v1/summary/stats returns word, sentence, paragraph, and character counts.
Free tier on RapidAPI: https://rapidapi.com/danieligel/api/text-stats-readability-api
Do you currently gate content on a readability target, or do you use readability scores more as a post-publish signal?
Top comments (0)