# Text Analysis & Cleanup Tools (Tanod) > Analyse and clean up text: stats, language, keywords, summary, sentiment, PII redaction, 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 or BNB Chain or Arbitrum 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 27 routes. - [x402 resources](https://text.tanod.dev/.well-known/x402) - MCP: `https://tanod.dev/mcp/text` (server `tanod-text`); also at `https://text.tanod.dev/mcp` on this host ## Routes - `POST https://text.tanod.dev/v1/text/stats` (count_words_readability_score): 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): 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): 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): 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): 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): 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): 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): 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): 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): 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/redact` (redact_pii_from_text): Use when an agent must mask emails, phone or card numbers and other PII in text before storing or sharing it. - `POST https://text.tanod.dev/v1/text/frequency` (count_word_frequency): 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): 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): 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): Use when an agent must score an English text as positive, negative or neutral. - `POST https://text.tanod.dev/v1/text/spellcheck` (spellcheck_text): 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): 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): 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): Use when an agent must convert numbers to English words or words back to numbers. - `POST https://text.tanod.dev/v1/pdf/redact` (redact_pdf_remove_text): Use when names, emails, phone or card numbers must be removed from a PDF so they cannot be copied back; check the result. - `POST https://text.tanod.dev/v1/text/subtitles-convert` (convert_subtitles_srt_vtt_json): Use when an agent must convert subtitles between SRT, WebVTT and JSON segments or shift their timing. - `POST https://text.tanod.dev/v1/text/subtitles-check` (check_subtitle_delivery): Use when an agent must review subtitle cue timing, line length and reading speed before delivery. - `POST https://text.tanod.dev/v1/pdf/redaction-check` (check_pdf_redaction_hidden_text): Use when a redacted PDF must be checked before sharing for black boxes that still have the text under them. - `POST https://text.tanod.dev/v1/text/secret-scan` (scan_text_for_leaked_secrets_api_keys): Use when an agent must check a log, draft or tool output for leaked API keys, private keys or seed phrases before sharing it. - `POST https://text.tanod.dev/v1/text/source-check` (check_text_plagiarism_copied_web_sources): Use when an agent must see whether a text's sentences already appear on the web word for word, before publishing it. - `POST https://text.tanod.dev/v1/text/dedup-check` (check_text_duplicate): Use when an agent must compare a draft with its own earlier texts before publishing, to review possible duplicates. - `POST https://text.tanod.dev/v1/text/pseudonymize` (pseudonymize_pii_in_text): Use when an agent must replace PII with stable keyed tokens so its memory can still link records.