# Tanod Text > Text tools: stats, language, case, lines, replace, extract, keywords, summary, sentiment, diff. A focused part of Tanod (https://tanod.dev/llms.txt covers every family), over HTTP and MCP. > > Pay per call in USDC on Base or Polygon or Solana with x402, or on Tempo with MPP; no account or API key. Free tier: a small daily per-IP > pool per family; over HTTP add the header `X-Tanod-Free: 1` to an unpaid call (without it every unpaid call gets the 402); over MCP > the free tier is automatic. > Every result is automated and heuristic, not an audit: findings can be false positives, and a clean result is not proof that code or a package is free of risk. > Tanod is operated by an autonomous AI agent on behalf of its owner. Scans run automatically; no person reviews individual results. ## API - [OpenAPI spec](https://text.tanod.dev/openapi.json): machine-readable description of this family's 19 routes. - [x402 resources](https://text.tanod.dev/.well-known/x402) - MCP: `https://tanod.dev/mcp/text` (server `tanod-text`) ## Routes - `POST https://text.tanod.dev/v1/text/stats` (count_words_readability_score): Count words and score the readability of a text (utilpeek) Use when an agent needs word, sentence and character counts, reading time or readability of a text. - `POST https://text.tanod.dev/v1/text/language` (detect_text_language): Detect the language of a text (75 languages, offline) (utilpeek) Use when an agent must identify which language a piece of text is written in. - `POST https://text.tanod.dev/v1/markdown` (convert_markdown_to_html): Convert Markdown to sanitized HTML (CommonMark or GFM) (utilpeek) Use when an agent must render Markdown as sanitized HTML for display. - `POST https://text.tanod.dev/v1/html-to-text` (convert_html_to_text): Convert HTML to Markdown or plain text (nothing fetched) (utilpeek) Use when an agent holds an HTML document and needs it as plain text or Markdown. - `POST https://text.tanod.dev/v1/diff` (diff_two_texts): Diff two texts: unified line diff, word or character changes (utilpeek) Use when an agent must show exactly what changed between two versions of a text. - `POST https://text.tanod.dev/v1/slug` (make_url_slug): Make a URL slug from text (Latin, Greek and Cyrillic transliteration) (utilpeek) Use when an agent must turn a title or phrase into a URL-friendly slug. - `POST https://text.tanod.dev/v1/text/case` (convert_text_case): Convert text case: title, sentence, snake, camel, kebab, ... (utilpeek) Use when an agent must change a text to title, sentence, snake, camel or kebab case. - `POST https://text.tanod.dev/v1/text/lines` (sort_dedupe_text_lines): Sort, dedupe, trim, shuffle or number the lines of a text (utilpeek) Use when an agent must clean up a list of lines by trimming, deduplicating, sorting or numbering. - `POST https://text.tanod.dev/v1/text/replace` (find_replace_text_regex): Find and replace in text (literal or linear-time RE2 regex) (utilpeek) Use when an agent must do a literal or regex find-and-replace on a text. - `POST https://text.tanod.dev/v1/text/extract` (extract_emails_urls_from_text): Extract emails, URLs, domains, IPs, dates and crypto addresses from text (utilpeek) Use when an agent must pull emails, URLs, domains, IPs, dates or crypto addresses out of free text. - `POST https://text.tanod.dev/v1/text/frequency` (count_word_frequency): Count word and n-gram frequencies in a text (utilpeek) Use when an agent needs the most frequent words or n-grams of a text with counts. - `POST https://text.tanod.dev/v1/text/keywords` (extract_keywords_from_text): Extract the keywords and keyphrases of a text (RAKE) (utilpeek) Use when an agent needs the key phrases of a text without calling a language model. - `POST https://text.tanod.dev/v1/text/summarize` (summarize_text): Summarize a text by picking its key sentences (extractive, LexRank) (utilpeek) Use when an agent needs the most central sentences of a long text, quoted verbatim. - `POST https://text.tanod.dev/v1/text/sentiment` (analyze_text_sentiment): Analyze the sentiment of an English text (VADER) (utilpeek) Use when an agent must score an English text as positive, negative or neutral. - `POST https://text.tanod.dev/v1/text/spellcheck` (spellcheck_text): Spellcheck a text with suggestions (en, es, fr, de, pt) (utilpeek) Use when an agent must find misspelled words in a text and get suggested corrections. - `POST https://text.tanod.dev/v1/text/unicode` (detect_invisible_unicode_homoglyphs): Find invisible, bidi and homoglyph Unicode characters in text (utilpeek) Use when an agent must detect invisible, bidirectional or look-alike characters in a text. - `POST https://text.tanod.dev/v1/text/lorem` (generate_lorem_ipsum): Generate seeded lorem ipsum or English placeholder text (utilpeek) Use when an agent needs placeholder text of a set length, repeatable from a seed. - `POST https://text.tanod.dev/v1/text/numbers` (convert_numbers_to_words): Convert numbers to English words (and back) (utilpeek) Use when an agent must convert numbers to English words or words back to numbers. - `POST https://text.tanod.dev/v1/text/subtitles-convert` (convert_subtitles_srt_vtt_json): Convert subtitles between SRT, WebVTT and JSON, with a time shift (utilpeek) Use when an agent must convert subtitles between SRT, WebVTT and JSON segments or shift their timing.