How it started
I've been wanting to build something with FastAPI for a while and kept putting it off. Then one day I just started, and somehow ended up building 5 APIs over the course of a week. Wasn't really the plan but each one gave me an idea for the next.
What I built
Five APIs, each solving a different problem:
TextPulse — Text analytics. Sentiment analysis, keyword extraction, readability scoring, entity extraction, language detection, summarization. 7 endpoints that replace a bunch of separate tools.
ShieldCheck — Security toolkit. Password strength with pattern detection, crack time estimation, email validation, breach checking, TOTP 2FA, token generation. 11 endpoints covering basically everything you need for auth security.
RankRadar — SEO analyzer. Keywords, readability, headings, meta tags, links, density, titles, slugs, schema markup, competitor comparison. 12 endpoints. Built this because SEO tools are way overpriced for what they do.
ProseGuard — AI content detection. Per-sentence detection, writing pattern analysis, vocabulary scoring, style fingerprinting, authorship comparison, humanize scoring. 11 endpoints. Probably the most technically interesting one.
SocialScrape — Social media analytics. Engagement prediction, viral scoring, hashtags, hooks, posting times, audience matching, cross-platform adaptation. 13 endpoints for 6 platforms.
54 endpoints total. All with free tiers.
The stack
Same architecture for all five:
server.py — Everything in one file
requirements.txt — fastapi, uvicorn, pydantic (that's it)
Procfile — For deployment
.python-version — Pin Python 3.12
No databases. No external API calls. No ML models. Each API is pure Python logic. I know that sounds limiting but it actually covers more ground than you'd think — regex, statistical analysis, Counter, and math.log2 go a surprisingly long way.
Deployed on Railway (one API) and Render (the other four). Both free tiers. Total hosting cost: $0.
The interesting bits
ProseGuard's detection approach:
Instead of training a model, I analyze writing patterns statistically:
- AI overuses certain phrases ("it's important to note", "furthermore", "leverage") — I check for 100+ of these
- AI writes sentences of very similar length — I measure the coefficient of variation
- AI has lower hapax legomena ratio (fewer words used only once)
- Humans use contractions, slang, and expressive punctuation more
- AI sentence starters are less diverse
It's not perfect, but it catches a lot and it's transparent — you can see exactly why it flagged something.
SocialScrape's viral scoring:
I categorized viral triggers into 7 psychological categories (emotional, curiosity, relatability, value, controversy, social proof, urgency) and score content against each one. The research is pretty clear that viral content typically hits 3+ categories simultaneously.
Things that tripped me up
Python 3.14: Don't use it for FastAPI projects yet. pydantic-core uses Rust bindings through PyO3, and PyO3 maxes out at Python 3.13. Wasted an hour on this before realizing.
RapidAPI media types: If your endpoint expects JSON but RapidAPI is set to text/plain, you'll get 422 errors. Check the media type on every endpoint definition.
Testing locally vs through the marketplace: Your API can work perfectly on localhost and still fail through RapidAPI because of how they proxy requests. Always test through the actual marketplace.
What's next
Mostly just seeing if people find these useful. I'm planning to add more endpoints based on feedback and maybe build a couple more APIs. The cool thing about this architecture is that adding a new endpoint is just writing a function and adding a route — deploy and it's live in minutes.
Links
All have free tiers:
- TextPulse (text analytics): https://rapidapi.com/gagebilliot20/api/textpulse
- ShieldCheck (security): https://rapidapi.com/gagebilliot20/api/shieldcheck
- RankRadar (SEO): https://rapidapi.com/gagebilliot20/api/rankradar
- ProseGuard (AI detection): https://rapidapi.com/gagebilliot20/api/proseguard
- SocialScrape (social media): https://rapidapi.com/gagebilliot20/api/socialscrape
Happy to answer questions about any of it.
Top comments (0)