TextLens API for Data Engineers
Process text columns in your pandas DataFrames with one API call. Readability grades, AFINN sentiment, TF-IDF keywords — no model to deploy, no GPU to manage, no cold starts.
import pandas as pd
import requests
df = pd.read_csv("reviews.csv")
def analyze(text):
return requests.post(
"https://api.ckmtools.dev/v1/analyze",
headers={"X-API-Key": TEXTLENS_KEY},
json={"text": text}
).json()
# Analyze 10,000 reviews — no model required
df["sentiment"] = df["text"].apply(lambda t: analyze(t)["sentiment"]["label"])
df["grade"] = df["text"].apply(lambda t: analyze(t)["readability"]["consensus_grade"])
df["keywords"] = df["text"].apply(lambda t: analyze(t)["keywords"]["top_5"])
Join the Waitlist
Free tier: 1,000 req/month. No credit card required.
Why not spaCy / TextBlob / VADER?
| spaCy | TextBlob | VADER | TextLens API | |
|---|---|---|---|---|
| Readability formulas | No | No | No | 8 formulas |
| Sentiment | Yes | Yes | Yes | Yes (AFINN) |
| Keywords (TF-IDF) | No | No | No | Yes |
| Install size | 20MB–560MB + model | 100MB+ | 5MB | Zero (HTTP call) |
| Deterministic output | Yes | Yes | No | Yes |
| Works in Lambda/serverless | Complex | Complex | Yes | Yes |
All three Python libraries are excellent. TextLens API is not a replacement — it is the option when you want deterministic readability scores AND sentiment AND keyword extraction from one endpoint without installing NLP model files.
What data engineers use it for
Content quality scoring pipelines
Score readability of articles or product descriptions. Flesch-Kincaid, Gunning Fog, SMOG, consensus grade in one call.
Pre-training data filtering
Filter training corpus by sentiment or readability before fine-tuning. Remove low-quality samples without running a full NLP pipeline.
Feature engineering
Add readability_grade, sentiment_score, keyword_count as features in your classification pipeline.
Deterministic, not ML
TextLens API uses algorithmic formulas (Flesch-Kincaid, Dale-Chall, Gunning Fog) and AFINN word lists — not ML models. Same input always returns the same output. Easy to unit test. No model versioning issues. No concept drift.
If you need named entity recognition or dependency parsing, use spaCy. If you need readability + sentiment + TF-IDF keywords without model dependencies, TextLens API covers all three.
Batch processing
import time, requests
from concurrent.futures import ThreadPoolExecutor
def analyze_batch(texts, api_key, max_workers=5, delay=0.1):
def analyze_one(text):
time.sleep(delay)
r = requests.post("https://api.ckmtools.dev/v1/analyze",
headers={"X-API-Key": api_key}, json={"text": text})
return r.json()
with ThreadPoolExecutor(max_workers=max_workers) as pool:
return list(pool.map(analyze_one, texts))
results = analyze_batch(df["review_text"].tolist(), api_key=TEXTLENS_KEY)
vs AWS Comprehend
| AWS Comprehend | TextLens API Pro | |
|---|---|---|
| 100,000 requests | ~$50 (at 500 chars/call) | $29/month |
| Readability scoring | Not available | 8 formulas |
| Keyword extraction | Not available | TF-IDF included |
| Pricing model | Per character | Flat monthly |
AWS Comprehend pricing estimates are approximate — see aws.amazon.com/comprehend/pricing.
No model to deploy. No GPU to manage.
Drop TextLens into your data pipeline in 5 minutes. 1,000 free requests, no credit card.
Notify Me When It Launches$0 — no credit card required
General Python examples? See Python-specific examples →