Text Keyword Extractor - RAKE Phrases + Top Words as JSON avatar

Text Keyword Extractor - RAKE Phrases + Top Words as JSON

Pricing

from $0.40 / 1,000 analyzed texts

Go to Apify Store
Text Keyword Extractor - RAKE Phrases + Top Words as JSON

Text Keyword Extractor - RAKE Phrases + Top Words as JSON

Extract ranked multi-word keyword phrases (RAKE-scored) + top words from up to 200 texts per run. For tagging, SEO briefs, ticket clustering, labeling scraped content. $0.0005 per text, no start fee, junk entries never charged. No paid keyword-extraction rival with defined pricing measured.

Pricing

from $0.40 / 1,000 analyzed texts

Rating

0.0

(0)

Developer

Broke to Built

Broke to Built

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Text Keyword Extractor — RAKE Phrases + Top Words, as JSON

Extract the keyword phrases that actually describe a text — multi-word, scored, ranked — plus the top single words by frequency. Up to 200 texts per run, online, by API, or as an agent tool via Apify MCP.

Tagging articles, clustering support tickets, building SEO briefs, labeling scraped content: they all need "what is this text about?" answered mechanically and cheaply. This actor runs the RAKE algorithm (Rapid Automatic Keyword Extraction): candidate phrases are content-word runs between stopwords, scored by word degree/frequency — which is why it surfaces phrases like "keyword extraction" and "linear constraints", not just single words.

What you get

  • keywords — ranked {phrase, score} list (multi-word phrases, RAKE-scored), up to topN (100 max)
  • topWords — top single words by frequency, stopwords excluded
  • uniqueWords / candidatePhrases — corpus stats per text
  • Fail-soft: a non-string entry never fails the run — it returns {ok: false, error} and is never charged.

Input

{ "text": "Your article or document text here...", "topN": 20 }

Bulk: { "texts": ["doc one...", "doc two..."], "maxTexts": 100 }

Output (real run, trimmed)

{
"ok": true,
"keywords": [
{ "phrase": "keyword extraction helps search engines rank documents", "score": 22.33 },
{ "phrase": "keyword extraction", "score": 8.33 },
{ "phrase": "automatic identification", "score": 4 }
],
"topWords": [{ "word": "keyword", "count": 2 }, { "word": "extraction", "count": 2 }],
"keywordCount": 8,
"uniqueWords": 16,
"candidatePhrases": 8
}

Pricing

$0.0005 per text analyzed. No start fee. Non-string entries are never charged. A 1,000-document tagging pass costs $0.50 across runs.

No direct paid keyword-extraction incumbent with defined pricing was found on the store (2026-08-07 search across "keyword extraction", "extract keywords" — nearest results are scrapers and crawl-based tools). Pricing is cost-plus at ~4x measured run cost.

Honest limits

  • Statistical, not semantic: RAKE ranks by co-occurrence structure, not meaning. It will not merge synonyms or resolve "NYC" = "New York City". For most tagging/SEO work that is exactly enough; for semantic clustering, feed these keywords to an embedding step.
  • English stopword list — RAKE degrades gracefully on other Latin-script languages (phrases still form) but the stopword boundaries are English.
  • Long documents work (scoring is linear), but RAKE favors longer phrases; very long texts benefit from topN around 20-30 and reading topWords alongside.

FAQ

Why phrases instead of single words? "machine learning pipeline" as one keyword beats "machine", "learning", "pipeline" as three. RAKE's whole design is multi-word candidate extraction — single words are still available in topWords.

How is the score computed? Per RAKE: each word gets degree(w)/freq(w) (degree = total length of phrases it appears in); a phrase's score is the sum of its words' scores. Higher = more central and more phrase-forming.

Can I use it on scraped pages? Yes — strip HTML first (pair with our webpage-text-extractor), then batch the plain text here.

Is numeric content handled? Pure numbers are treated as phrase boundaries (rarely useful as keywords); alphanumeric tokens like "gpt-4" survive.

Why did some rows come back ok: false? Those entries were not text strings (numbers, nulls, objects in the array). Recorded, never charged.

Use from code or AI agents

curl -s "https://api.apify.com/v2/acts/EliAI~text-keyword-extractor/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-X POST -H 'Content-Type: application/json' \
-d '{"text": "Paste any article here to get its keywords."}'

Agents: connect Apify MCP and call the EliAI/text-keyword-extractor tool.

  • Capability: RAKE keyword-phrase extraction with scores + top words for one or many texts
  • Required input: text (string) or texts (array)
  • Returns: one record per text; keywords is the ranked phrase list
  • Bounded: 200 texts per run, topN up to 100; failures isolate per text
  • Side effects: none (texts never leave the run)