ToolYourToolYourAPI Docs

Text Utilities

Text manipulation tools — REST and TypeScript SDK via slug-based POST.

TypeScript SDK

Namespace: ty.text. Each slug below → ty.text.{camelCase}(body) (e.g. text-case-converter → textCaseConverter). Full table: SDK Tool Map → Text Utilities.

import { ToolYour } from "@toolyour/sdk";
const ty = ToolYour({ apiKey: process.env.TOOLYOUR_API_KEY! });

await ty.text.textCaseConverter({ text: "hello world", case: "uppercase" });
await ty.text.convertToSlug({ text: "My Blog Post Title" });
await ty.text.textStats({ text: "Paste article here…" });

Base path: /api/v1/text-utilities

List tools

curl -s "https://api.toolyour.com/api/v1/text-utilities/catalog"

No API key required for the catalog.

Run a tool

Case converter (browser: /digital-tools/text-case-converter; MCP: text_case_converter_post):

curl -X POST "https://api.toolyour.com/api/v1/text-utilities/text-case-converter" \
  -H "Content-Type: application/json" \
  -H "X-Api-Key: $API_KEY" \
  -d '{"text":"hello world","case":"titleCase","mode":"single"}'
await ty.text.textCaseConverter({
  text: "hello world",
  case: "titleCase",
  mode: "single",
});

Add commas to a list (browser: /digital-tools/comma-separate; MCP: comma_separate_post):

curl -X POST "https://api.toolyour.com/api/v1/text-utilities/comma-separate" \
  -H "Content-Type: application/json" \
  -H "X-Api-Key: $API_KEY" \
  -d '{"text":"alpha\nbeta\ngamma","mode":"lines","dedupe":true,"trim":true}'
await ty.text.commaSeparate({
  text: "alpha\nbeta\ngamma",
  mode: "lines",
  dedupe: true,
  trim: true,
});

Sort lines / online list sorter (browser: /digital-tools/sort-lines; MCP: sort_lines_post):

curl -X POST "https://api.toolyour.com/api/v1/text-utilities/sort-lines" \
  -H "Content-Type: application/json" \
  -H "X-Api-Key: $API_KEY" \
  -d '{"text":"zebra\napple\nmango","order":"asc","sortMode":"alpha","trim":true,"removeEmpty":true}'
await ty.text.sortLines({
  text: "zebra\napple\nmango",
  order: "asc",
  sortMode: "alpha",
  trim: true,
  removeEmpty: true,
});

Compare two texts / text diff (browser: /digital-tools/compare-texts; MCP: compare_texts_post):

curl -X POST "https://api.toolyour.com/api/v1/text-utilities/compare-texts" \
  -H "Content-Type: application/json" \
  -H "X-Api-Key: $API_KEY" \
  -d '{"textA":"alpha\nbeta\ngamma","textB":"alpha\nbeta\ndelta","mode":"lines","caseInsensitive":true}'
await ty.text.compareTexts({
  textA: "alpha\nbeta\ngamma",
  textB: "alpha\nbeta\ndelta",
  mode: "lines",
  caseInsensitive: true,
});

Slug generator / title to URL slug (browser: /digital-tools/convert-to-slug; MCP: convert_to_slug_post):

curl -X POST "https://api.toolyour.com/api/v1/text-utilities/convert-to-slug" \
  -H "Content-Type: application/json" \
  -H "X-Api-Key: $API_KEY" \
  -d '{"text":"Hello World! My Blog Post","mode":"single","delimiter":"-","maxLength":80}'
await ty.text.convertToSlug({
  text: "Hello World! My Blog Post",
  mode: "single",
  delimiter: "-",
  maxLength: 80,
});

Word counter / text statistics (browser: /digital-tools/text-stats; MCP: text_stats_post):

curl -X POST "https://api.toolyour.com/api/v1/text-utilities/text-stats" \
  -H "Content-Type: application/json" \
  -H "X-Api-Key: $API_KEY" \
  -d '{"text":"Paste article here…","mode":"single","wpm":200,"topN":10}'
await ty.text.textStats({
  text: "Paste article here…",
  mode: "single",
  wpm: 200,
  topN: 10,
});

Available slugs

text-case-converter, reverse-text, remove-spaces, remove-line-breaks, convert-to-slug, convert-to-hashtags, comma-separate, sort-words, sort-lines, repeat-text, dummy-text-generator, random-word-generator, number-to-words, words-to-number, compare-texts, text-stats, convert-to-xml-tags

Request body fields vary by tool — check the Text Utilities entries in the API reference.

On this page