ContentForge — Content Intelligence API · 50 Endpoints

15 min read Original article ↗

Open source · AGPL-3.0 · Self-hostable with Ollama

Know if your post will flop
before you hit send.

Type a tweet, headline, or LinkedIn post. Get a grade, specific feedback, and a rewrite — in under 50 milliseconds. No AI in the scoring path. Same input, same score, every time.

🧩

Score as you type — right in your browser

A floating score badge appears while you compose on X, LinkedIn, Instagram, Threads, and Facebook. No copy-pasting. No context switching. Includes AI rewrite and A/B compare.

Add to Chrome →

# Score a tweet before posting — instant, no AI needed
import requests

r = requests.post("https://contentforge-api-lpp9.onrender.com/v1/score_tweet",
    headers=HEADERS,
    json={"text": "I'm working on a new project."})
# → score: 32  grade: C  ← skip this one

r = requests.post("https://contentforge-api-lpp9.onrender.com/v1/score_tweet",
    headers=HEADERS,
    json={"text": "Got 100 signups in 24 hours 🚀 Here's the copy that converted: #buildinpublic"})
# → score: 91  grade: A  ← post this one

See the Difference

Run a weak headline through /v1/improve_headline — AI rewrites it, scores each version, and returns the best.

Before

"How to make money online"

Score: 49   Grade: C   FAILED

Generic, no specificity, no hook

After

"Can You Really Earn $5,000 a Month Online? Discover the Secrets"

Score: 100   Grade: A   PASSED   +104% lift

Power words: earn, secret, discover · Question hook · Specific number

Built For

Whether you're a solo creator or running an agency, ContentForge fits your workflow.

🐦

Twitter Growth Hackers

Score every tweet before posting. Only publish A-grade content. Use tweet_ideas for an endless pipeline.

✍️

Bloggers & Newsletter Writers

Test 10 headlines in a loop, pick the highest-scoring one. Open rates go up, guaranteed.

🚀

Indie Hackers

Score every build-in-public post before you ship it. Thread outlines, daily tweet ideas, bio optimization — all via API.

🏢

Agencies & Teams

Generate content calendars for multiple clients. Score client-submitted copy. Standardize quality at scale.

🤖

Bot & Automation Builders

Plug ContentForge into your Zapier flows, CMS hooks, or custom bots. Clean JSON, CORS enabled.

📧

Email Marketers

Score subject lines before sending. A/B test 5 variations programmatically. Avoid spam triggers automatically.

📣

Ad Managers

Score Google and Meta ad copy for CTR signals. Check CTA strength, urgency language, and character limits.

📌

Pinterest Creators

Score pin descriptions for saves and SEO. Ensure instructional language, right hashtag count, and keyword density.

🎵

TikTok & Short Video Creators

Score captions for the FYP. Check length, hashtag strategy, and trending language before you post.

Instant scoring, AI generation, and Proof Intelligence endpoints for measurable content performance.

POST

/v1/analyze_headline copy

Score any headline 0–100 with letter grade, power word detection, and specific improvement suggestions.

⚡ Instant

↓ click for example

Example Request Body

{"text": "5 AI Tools That Print Money While You Sleep"}

Test on RapidAPI →

POST

/v1/score_tweet copy

Score any tweet draft for engagement potential before you post. Checks length, hashtags, emojis, power words.

⚡ Instant

↓ click for example

Example Request Body

{"text": "Built an API in 48hr. $500 last month 💸 #buildinpublic"}

Test on RapidAPI →

POST

/v1/score_linkedin_post copy

Score a LinkedIn post 0–100. Evaluates hook strength, paragraph structure, hashtags, list usage, and CTA presence.

⚡ Instant

↓ click for example

Example Request Body

{"post": "I spent 3 years building tools nobody used.\n\nThen I changed one thing..."}

Test on RapidAPI →

POST

/v1/score_instagram copy

Score an Instagram caption for engagement. Checks hashtag count (5–15 optimal), emojis, hook, CTA, and line breaks.

⚡ Instant

↓ click for example

Example Request Body

{"caption": "Stop scrolling 👇\n\n30 days of cold showers changed me.\n\n#productivity #morningroutine"}

Test on RapidAPI →

POST

/v1/score_youtube_title copy

Score a YouTube title for click-through rate. Checks optimal length (40–60 chars), numbers, brackets, and power words.

⚡ Instant

↓ click for example

Example Request Body

{"title": "I Tried Making $1,000 in 24 Hours [Honest Results]", "thumbnail_text": "$1K IN 24H??"}

Test on RapidAPI →

POST

/v1/score_youtube_description copy

Score a YouTube description for SEO and watch time. Checks length, keyword placement, timestamps, links, and CTAs.

⚡ Instant

↓ click for example

Example Request Body

{"description": "In this video I show you exactly how to build a REST API from scratch..."}

Test on RapidAPI →

POST

/v1/score_email_subject copy

Score an email subject line for open rate. Checks length, personalization tokens, power words, spam signals, and urgency.

⚡ Instant

↓ click for example

Example Request Body

{"subject": "Quick question about your content strategy, {{first_name}}"}

Test on RapidAPI →

POST

/v1/score_tiktok copy

Score a TikTok caption for viral potential. Checks length (ideal ≤ 150), hashtag count, emojis, trending signals.

⚡ Instant

↓ click for example

Example Request Body

{"caption": "POV: you just automated your content strategy 🤖✨ #contentcreator #growthhack"}

Test on RapidAPI →

POST

/v1/score_threads copy

Score a Threads post. Checks length (ideal 150–500), conversational tone, questions, CTA, and hashtag usage.

⚡ Instant

↓ click for example

Example Request Body

{"text": "Hot take: most creators should post less and optimize more. Agree?"}

Test on RapidAPI →

POST

/v1/score_facebook copy

Score a Facebook post. Evaluates length, emoji density, questions, CTAs, hashtag count, and engagement triggers.

⚡ Instant

↓ click for example

Example Request Body

{"text": "Just hit 10k followers! 🎉 Here's what actually worked for me this year..."}

Test on RapidAPI →

POST

/v1/score_pinterest copy

Score a Pinterest pin description for saves and discovery. Checks length (150–500), keywords, hashtags, and instructional language.

⚡ Instant

↓ click for example

Example Request Body

{"description": "Save this for later! 10 digital tools that will 10x your productivity as a creator 📌"}

Test on RapidAPI →

POST

/v1/score_reddit copy

Score a Reddit post/title for upvote potential. Checks title length, question hook, self-promotion signals, formatting, hashtag misuse, and link density.

⚡ Instant

↓ click for example

Example Request Body

{"title": "Built a deterministic content scoring API — here's what I learned", "text": "After 3 months of building..."}

Test on RapidAPI →

POST

/v1/score_ad_copy copy

Score Google/Meta ad copy. Evaluates headline length, benefit clarity, urgency, CTA strength, and compliance signals.

⚡ Instant

↓ click for example

Example Request Body

{"headline": "Save 30% on AI Tools Today Only", "body": "Limited offer — get ContentForge Pro free for 7 days.", "platform": "google"}

Test on RapidAPI →

POST

/v1/score_readability copy

Compute Flesch-Kincaid readability for any text. Returns reading ease score, grade level, avg sentence/word length.

⚡ Instant

↓ click for example

Example Request Body

{"text": "The API returns a JSON payload containing the score and grade."}

Test on RapidAPI →

POST

/v1/analyze_hashtags copy

Analyze a list of hashtags — extracts unique tags, detects duplicates, overused tags, and gives per-platform recommendations.

⚡ Instant

↓ click for example

Example Request Body

{"hashtags": "#ai #AI #buildinpublic #growthhack #growthhack", "platform": "instagram"}

Test on RapidAPI →

POST

/v1/score_content copy

Unified scoring endpoint. Pass any platform as a parameter and score with a single URL. No need to remember platform-specific paths.

⚡ Instant

↓ click for example

Example Request Body

{"text": "Just shipped my side project!", "platform": "tweet"}

Test on RapidAPI →

POST

/v1/score_multi copy

Score one piece of text across multiple platforms in a single call. Get Twitter, LinkedIn, Instagram scores simultaneously.

⚡ Instant

↓ click for example

Example Request Body

{"text": "Just shipped my first SaaS 🚀 #buildinpublic", "platforms": ["twitter","instagram","threads"]}

Test on RapidAPI →

POST

/v1/batch_score copy

Score up to 20 content drafts against one platform in a single call. Returns all scores ranked best-first — perfect for A/B testing drafts before posting.

⚡ Instant

↓ click for example

Example Request Body

{"texts": ["Draft A: Big news in tech today", "Draft B: I built a tool that scores your tweets before you post — try it free"], "platform": "twitter"}

Test on RapidAPI →

POST

/v1/compare copy

Head-to-head comparison of two content drafts across multiple platforms. Returns per-platform scores, a winner, and specific advantages — perfect for A/B testing before you post.

⚡ Instant

↓ click for example

Example Request Body

{"text_a": "Ship fast, learn faster.", "text_b": "We are pleased to announce our new product.", "platforms": ["tweet", "linkedin"]}

Test on RapidAPI →

POST

/v1/ab_test copy

Submit 2-20 drafts and a target platform. Returns all drafts ranked by score with a winner recommendation, confidence level, and statistical spread — the ultimate A/B testing tool for content.

⚡ Instant

↓ click for example

Example Request Body

{"drafts": ["Ship fast, learn faster 🚀", "We are pleased to announce our new product.", "Built an API in 48hr — $500 last month #buildinpublic"], "platform": "tweet"}

Test on RapidAPI →

GET

/v1/status copy

Ultra-lightweight uptime check. Returns {"ok": true} with no LLM probe or log reads. Use for monitoring dashboards and extension health checks.

⚡ Instant

↓ click for example

Example Response

{"ok": true, "service": "contentforge", "version": "1.8.0"}

Try it live →

POST

/v1/improve_headline copy

Submit a weak headline, get back N AI-rewritten versions sorted by score. The analyze → improve cycle.

✦ AI

↓ click for example

POST

/v1/generate_hooks copy

Generate scroll-stopping hook lines for any topic. Choose count and tone (bold, curious, direct, viral, etc.).

✦ AI

↓ click for example

Example Request Body

{"topic": "building a SaaS while working full-time", "count": 5, "style": "viral"}

Test on RapidAPI →

POST

/v1/rewrite copy

Rewrite any text for a specific platform (Twitter, LinkedIn, email, blog) and tone in one call.

✦ AI

↓ click for example

Example Request Body

{"text": "I built an API.", "platform": "twitter", "tone": "engaging"}

Test on RapidAPI →

POST

/v1/auto_improve copy

Score → if not PASSED → AI rewrites it → re-scores → loops until PASSED or max iterations. Scorer + generator in a closed feedback loop. Returns best version found + full iteration history.

✦ AI

↓ click for example

Example Request Body

{"text": "I built an API.", "platform": "tweet", "tone": "engaging", "max_iterations": 3, "target_gate": "PASSED"}

Test on RapidAPI →

POST

/v1/compose_assist copy

Generate 2-5 rewrite variants, score each automatically with quality gates, and return the best winner plus score delta vs original draft.

✦ AI

↓ click for example

Example Request Body

{"text": "I built a scoring API for creators.", "platform": "tweet", "tone": "engaging", "count": 3}

Test on RapidAPI →

POST

/v1/tweet_ideas copy

Generate a batch of tweet ideas with hashtags for any niche. Never run out of content ideas.

✦ AI

↓ click for example

Example Request Body

{"niche": "indie hacking", "count": 5, "hashtags": true}

Test on RapidAPI →

POST

/v1/content_calendar copy

Build a 7-day content calendar for any niche and platform with themes and ready-to-post drafts.

✦ AI

↓ click for example

Example Request Body

{"niche": "indie hacking", "days": 7, "platform": "twitter"}

Test on RapidAPI →

POST

/v1/thread_outline copy

Generate a complete Twitter thread: scroll-stopping hook, numbered body tweets, and CTA closing tweet.

✦ AI

↓ click for example

Example Request Body

{"topic": "build a micro-SaaS in a weekend", "tweet_count": 7}

Test on RapidAPI →

POST

/v1/generate_bio copy

Generate an optimized social bio for Twitter (160 chars), LinkedIn (300), or Instagram (150). Auto-trimmed to limit.

✦ AI

↓ click for example

Example Request Body

{"name": "Aden", "niche": "indie dev building APIs", "platform": "twitter"}

Test on RapidAPI →

POST

/v1/generate_caption copy

Generate optimized Instagram or TikTok captions for any topic, with auto-generated hashtags and emoji suggestions.

✦ AI

↓ click for example

Example Request Body

{"topic": "morning productivity routine", "platform": "instagram", "tone": "motivational"}

Test on RapidAPI →

POST

/v1/generate_linkedin_post copy

Generate a full LinkedIn post (hook + body + CTA) from a topic or key points. Follows LinkedIn best practices.

✦ AI

↓ click for example

Example Request Body

{"topic": "lessons learned from my first SaaS failure", "tone": "authentic"}

Test on RapidAPI →

POST

/v1/generate_email_sequence copy

Generate a 3-email drip sequence (welcome, value, pitch) for any product or audience. Subject lines included.

✦ AI

↓ click for example

Example Request Body

{"product": "ContentForge API", "audience": "indie hackers and solopreneurs", "tone": "friendly"}

Test on RapidAPI →

POST

/v1/generate_content_brief copy

Generate a full content brief from a topic: target audience, key messages, SEO keywords, outline, and CTAs.

✦ AI

↓ click for example

Example Request Body

{"topic": "How to grow on LinkedIn as a software developer", "content_type": "blog post"}

Test on RapidAPI →

POST

/v1/record_score_delta copy

Record before/after score changes for one revision so you can prove quality improvements over time.

⚡ Proof

↓ click for example

Example Request Body

{"platform": "tweet", "original_text": "I like ai", "revised_text": "Built this in 48h 🚀", "posted": true}

Try endpoint →

POST

/v1/record_publish_outcome copy

Record engagement outcomes plus estimated revenue lift per post using your score delta and baseline assumptions.

⚡ Proof

↓ click for example

Example Request Body

{"post_id":"x-123","platform":"tweet","score_before":52,"score_after":78,"engagement":{"impressions":5000,"clicks":80},"value_per_click":1.8}

Try endpoint →

POST

/v1/record_revenue copy

Attach realized revenue attribution to a post for evidence-based client reporting and close-proof case studies.

⚡ Proof

↓ click for example

Example Request Body

{"post_id":"x-123","platform":"tweet","revenue_amount":12.5,"revenue_source":"affiliate"}

Try endpoint →

GET

/v1/dashboard_stats copy

Aggregated proof metrics: average score delta, engagement totals, estimated lift, realized revenue, and top wins.

⚡ Proof

↓ click for example

Example Request

GET /v1/dashboard_stats?period=week&platform=all

Try endpoint →

GET

/v1/proof_timeline copy

Daily trendline for proof metrics: average score delta, estimated lift, realized revenue, and combined signal by day.

⚡ Proof

↓ click for example

Example Request

GET /v1/proof_timeline?period=month&platform=all

Try endpoint →

GET

/v1/export_proof_report copy

Export investor/client-ready proof reports as JSON or CSV for case studies, pipeline reviews, and close-proof reporting.

⚡ Proof

↓ click for example

Example Request

GET /v1/export_proof_report?format=csv&period=month&platform=all

Try endpoint →

GET

/v1/proof_recommendations copy

Action-ranked next steps based on your score deltas, attribution quality, and weak-channel detection.

⚡ Proof

↓ click for example

Example Request

GET /v1/proof_recommendations?period=month&platform=all

Try endpoint →

GET

/v1/cohort_benchmarks copy

Compare current period performance vs trailing window and platform medians for score/revenue signal benchmarking.

⚡ Proof

↓ click for example

Example Request

GET /v1/cohort_benchmarks?period=month&platform=all

Try endpoint →

GET

/health copy

Service health check. Returns status, LLM backend, and per-endpoint usage statistics.

⚡ Instant

↓ click for example

The Deterministic Advantage

Interpretable content intelligence — every deduction has a traceable rule, every score has an audit trail.

📐

A Digital Ruler, Not a Black Box

A ruler doesn't need a dataset to measure 12 inches — it just needs to be calibrated. ContentForge's heuristic engine gives the same score to the same input, every time. No variance. No hallucinations. Every deduction is itemised and traceable to a specific rule.

<50ms — No LLM in the Scoring Path

All 12 platform scorers are pure Python heuristics. No network calls, no model inference, no API quota consumed. AI (Ollama or Gemini) is reserved for generation endpoints — rewrites, hooks, subject lines.

🔬

White-Box Scoring — Fully Auditable

The scoring logic is on GitHub. You can trace exactly why a post scored 74 and not 83 — every signal is a readable Python condition. When a client asks "why did this fail the quality gate?", you have a defensible answer, not "the AI said so."

Try It Live

Instant heuristic scoring in the browser — no API key needed.

Score Your Content

Headline · 30–80 chars is optimal · add a number or question

⚔️ A/B Compare

Paste two drafts — see which one wins across platforms, and why.

Simple Pricing

Start free. Scale when you need more. All plans include every endpoint.

Why Not Just Use ChatGPT?

Ask GPT to score the same tweet twice. You'll get two different answers. That's the problem.

LLM-based scoring

score("Great tweet!") → 74
score("Great tweet!") → 79
score("Great tweet!") → 71
1.2s avg · $0.003/call · different every time

ContentForge

score("Great tweet!") → 42
score("Great tweet!") → 42
score("Great tweet!") → 42
18ms · free · same answer forever

🔒

No data stored

Your content is scored and discarded. We never log, store, or sell your text.

🛡️

HTTPS only

All API traffic encrypted in transit. No plaintext. No exceptions.

📖

Open source

Scoring logic is public on GitHub. Audit it yourself.

No account needed

RapidAPI handles auth. We never see your password or payment info.

Self-Host It

Run the entire scoring engine locally. Scoring uses zero AI calls. Open source, AGPL-3.0.

$ git clone https://github.com/CaptainFredric/ContentForge.git
$ pip install -r requirements.txt
$ python scripts/api_prototype.py
Listening on http://localhost:5000 — all 50 endpoints active

Frequently Asked Questions

Is ContentForge free?

Yes. The BASIC plan gives you 50 AI calls and 300 requests per month at no cost, no credit card required. Paid plans start at $9.99/month for higher volume.

Do you store or read my content?

No. Text is scored in memory and discarded immediately. We do not log, store, or analyze your content after the response is sent. See our Terms of Use.

Why is the first request slow?

ContentForge runs on Render's free tier, which puts the server to sleep after inactivity. The first request wakes it up (~15-30 seconds). Subsequent requests are fast (<500ms). Paid infrastructure is on the roadmap.

What platforms does the Chrome extension support?

The extension is available on the Chrome Web Store. It shows a floating score badge on Twitter/X, LinkedIn, Instagram, Threads, and Facebook. You can also use the popup on any page to score content for 12 different platforms including TikTok, YouTube, and email.

Is the scoring AI or rule-based?

The instant scoring endpoints use deterministic rule-based analysis (no LLM, no latency, no hallucinations). The AI endpoints use Ollama-backed language models for content generation, rewriting, and deep analysis.

Can I see the scoring logic?

Yes. ContentForge is open source: github.com/CaptainFredric/ContentForge. Every scoring rule is public and auditable.