TextLens API
You need readability, sentiment, and keyword extraction. That's 3 Python packages, model downloads, and cold starts your lambda can't absorb. One API call returns all of it in under 50ms — no model to host, no GPU required.
curl -X POST https://api.ckmtools.dev/v1/analyze \
-H "X-API-Key: your_api_key" \
-H "Content-Type: application/json" \
-d '{"text": "Your text here..."}'
What you get
8 Readability Formulas
Flesch, Flesch-Kincaid, Coleman-Liau, ARI, Gunning Fog, SMOG, Dale-Chall, Linsear Write.
Sentiment Analysis
Positive, negative, or neutral with confidence score.
Keyword Extraction
Top keywords ranked by TF and length weighting.
Keyword Density
Unigram, bigram, and trigram frequency analysis.
SEO Scoring
Composite score with actionable suggestions.
Fast
Sub-50ms response times. Pure algorithmic, no ML cold starts.
Code examples
curl -X POST https://api.ckmtools.dev/v1/analyze \
-H "X-API-Key: $API_KEY" \
-H "Content-Type: application/json" \
-d '{"text": "The quick brown fox jumps over the lazy dog."}'
import pandas as pd, requests
df = pd.read_csv('reviews.csv')
def analyze(text):
r = requests.post('https://api.ckmtools.dev/v1/analyze',
headers={'X-API-Key': 'your_api_key'},
json={'text': text, 'options': {'modules': ['sentiment', 'keywords']}})
return r.json()
df['sentiment'] = df['review_text'].apply(lambda t: analyze(t)['sentiment']['label'])
const response = await fetch('https://api.ckmtools.dev/v1/analyze', {
method: 'POST',
headers: {
'X-API-Key': 'your_api_key',
'Content-Type': 'application/json',
},
body: JSON.stringify({ text: 'Your text here...' }),
});
const result = await response.json();
console.log(`Readability grade: ${result.readability.consensusGrade}`);
require 'net/http'
require 'json'
uri = URI('https://api.ckmtools.dev/v1/analyze')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
req = Net::HTTP::Post.new(uri, 'X-API-Key' => 'your_api_key', 'Content-Type' => 'application/json')
req.body = { text: 'Your text here...' }.to_json
res = http.request(req)
puts JSON.parse(res.body)
Sample response
{
"statistics": {
"words": 156,
"sentences": 8,
"paragraphs": 3
},
"readability": {
"fleschReadingEase": { "score": 65.2, "grade": 8, "interpretation": "Standard" },
"consensusGrade": 8
},
"sentiment": {
"score": 0.23,
"label": "positive",
"confidence": 0.67
},
"keywords": [
{ "word": "analysis", "score": 4.2, "count": 3, "density": 1.92 }
],
"meta": {
"characters": 892,
"processing_time_ms": 12
}
}
Switching from a Python library? See textstat vs TextLens API →
Also comparing: TextBlob vs TextLens API
Also comparing: VADER vs TextLens API
Also comparing: spaCy vs TextLens API
Also comparing: NLTK vs TextLens API
Switching from AWS? TextLens API vs AWS Comprehend →
Using Azure? TextLens API vs Azure Text Analytics →
Using Google Cloud? TextLens API vs Google Cloud NL API →
See all Python library comparisons →
Using Ruby? See Ruby-specific examples →
Using Go? See Go-specific examples →
Using Python? See Python-specific examples →
Using PHP? See PHP-specific examples →
Using Java? See Java-specific examples →
Data engineer? See pandas/DataFrame examples →
Built for data pipelines
Process text columns at scale. No model to deploy. No GPU to manage. Drop TextLens into your pipeline in 5 minutes.
import pandas as pd, requests
df = pd.read_csv('reviews.csv')
def analyze(text):
r = requests.post('https://api.ckmtools.dev/v1/analyze',
headers={'X-API-Key': 'your_api_key'},
json={'text': text, 'options': {'modules': ['sentiment', 'keywords']}})
return r.json()
df['sentiment'] = df['review_text'].apply(lambda t: analyze(t)['sentiment']['label'])
No GPU required. Pure algorithmic — sub-50ms per call. Same input always returns same output.
Join the Waitlist
No model to deploy. No GPU to manage. Drop TextLens into your data pipeline in 5 minutes — 1,000 free requests, no credit card.
Pricing
AWS Comprehend charges ~$0.50 per 1,000 requests. TextLens Pro is $29/mo for 100,000 requests — 17× cheaper for typical NLP workloads.
Pro
- 100,000 requests/mo
- 120 req/min rate limit
- 100,000 char max per request
Enterprise
- 500,000 requests/mo
- 300 req/min rate limit
- 500,000 char max per request
Get Early Access
Join the waitlist to be first to receive a free API key (1,000 requests/month) at launch.
API reference
Analyze text content. Auth: X-API-Key header. Body: {"text": "...", "options": {"modules": [...]}}
Available modules: readability, sentiment, keywords, density, seo. Omit modules to run all.
Current month usage and remaining quota. Auth: X-API-Key header.
Service health status. No authentication required.
Error codes
| Code | Description |
|---|---|
| 400 | Invalid request body or missing text field |
| 401 | Missing or invalid API key |
| 429 | Rate limit exceeded |
| 500 | Internal server error |