---
title: Text Utilities API
slug: text-utilities-api
url: https://apyhub.com/freedailypro/service/text-utilities-api
provider: FreeDailyPro
tags: [text-utilities, word-count, slug-generator, find-replace, lorem-ipsum, text-extraction]
auth: api_key
version: 1.0.0
service_type: sync
endpoints: 7
atoms: 10
mcp: true
---

# Text Utilities API

Easily count words, sort text, find and replace, and create slugs using the Text Utilities API. Also generate lorem ipsum and extract URLs and emails.

## Endpoints

| Method | URL | Description | Atoms |
| --- | --- | --- | --- |
| POST | `https://api.eu.apyhub.com/freedailypro/text-utilities-api/text/word-count` | What it does Counts the words, characters (with and without spaces), sentences and paragraphs in a… | 10 |
| POST | `https://api.eu.apyhub.com/freedailypro/text-utilities-api/text/sort` | What it does Sorts text alphabetically, either line by line or word by word. You can sort ascending… | 10 |
| POST | `https://api.eu.apyhub.com/freedailypro/text-utilities-api/text/find-replace` | What it does Finds text and replaces it with something else. You can match plain text or a regular… | 10 |
| POST | `https://api.eu.apyhub.com/freedailypro/text-utilities-api/text/lorem` | What it does Generates lorem ipsum placeholder text for mockups, wireframes and test data. Choose h… | 10 |
| POST | `https://api.eu.apyhub.com/freedailypro/text-utilities-api/text/slug` | What it does Turns a title or phrase into a clean, URL-friendly slug, for example "The Best APIs in… | 10 |
| POST | `https://api.eu.apyhub.com/freedailypro/text-utilities-api/text/extract-urls` | What it does Finds every web link in a piece of text and returns them as a list, in the order they… | 10 |
| POST | `https://api.eu.apyhub.com/freedailypro/text-utilities-api/text/extract-emails` | What it does Finds every email address in a piece of text and returns them as a list, in the order… | 10 |

## Endpoint reference

### Word Count & Reading Time

`POST https://api.eu.apyhub.com/freedailypro/text-utilities-api/text/word-count` · 10 atoms · accepts `application/json` · returns `application/json`

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `text` | body | string | yes |  |
| `wordsPerMinute` | body | number | no |  |

#### Quickstart

Count the words in a piece of text by sending the required `text` field.

```bash
curl -X POST "https://api.eu.apyhub.com/freedailypro/text-utilities-api/text/word-count" \
  -H "apy-token: $APY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"text":"This is a short example sentence."}'
```

#### What you'll get back

The live response to the request above:

```json
{
  "tool": "Word counter client and server side from freedailypro",
  "result": {
    "words": 6,
    "characters": 33,
    "charactersNoSpaces": 28,
    "sentences": 1,
    "paragraphs": 1,
    "readingTimeMinutes": 1
  }
}
```

### Sort Lines or Words

`POST https://api.eu.apyhub.com/freedailypro/text-utilities-api/text/sort` · 10 atoms · accepts `application/json` · returns `application/json`

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `mode` | body | string | no | One of: lines, words. |
| `text` | body | string | yes |  |
| `order` | body | string | no | One of: asc, desc. |
| `unique` | body | boolean | no |  |
| `caseSensitive` | body | boolean | no |  |

#### Quickstart

Sort a block of text by lines or words with the required text field.

```bash
curl -X POST "https://api.eu.apyhub.com/freedailypro/text-utilities-api/text/sort" \
  -H "apy-token: $APY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"text":"banana\napple\ncherry"}'
```

#### What you'll get back

The live response to the request above:

```json
{
  "tool": "Text sorter client and server side from freedailypro",
  "result": "apple\nbanana\ncherry"
}
```

### Find & Replace Text

`POST https://api.eu.apyhub.com/freedailypro/text-utilities-api/text/find-replace` · 10 atoms · accepts `application/json` · returns `application/json`

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `find` | body | string | yes |  |
| `text` | body | string | yes |  |
| `replace` | body | string | yes |  |
| `useRegex` | body | boolean | no |  |
| `replaceAll` | body | boolean | no |  |
| `caseSensitive` | body | boolean | no |  |

#### Quickstart

Replace text in a string by sending the text, the search term, and the replacement value.

```bash
curl -X POST "https://api.eu.apyhub.com/freedailypro/text-utilities-api/text/find-replace" \
  -H "apy-token: $APY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"text":"Hello world, welcome to the world of text utilities.","find":"world","replace":"universe"}'
```

#### What you'll get back

The live response to the request above:

```json
{
  "tool": "Find replace client and server side from freedailypro",
  "result": "Hello universe, welcome to the universe of text utilities.",
  "replacementCount": 2
}
```

### Lorem Ipsum Generator

`POST https://api.eu.apyhub.com/freedailypro/text-utilities-api/text/lorem` · 10 atoms · accepts `application/json` · returns `application/json`

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `paragraphs` | body | number | no |  |
| `startWithLorem` | body | boolean | no |  |
| `wordsPerParagraph` | body | number | no |  |

#### Quickstart

Generate a Lorem Ipsum text sample with the default minimal JSON body.

```bash
curl -X POST "https://api.eu.apyhub.com/freedailypro/text-utilities-api/text/lorem" \
  -H "apy-token: $APY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"paragraphs":1,"startWithLorem":true,"wordsPerParagraph":5}'
```

#### What you'll get back

The live response to the request above:

```json
{
  "tool": "Lorem ipsum generator client and server side from freedailypro",
  "result": "Lorem ipsum dolor sit amet."
}
```

### URL Slug Generator

`POST https://api.eu.apyhub.com/freedailypro/text-utilities-api/text/slug` · 10 atoms · accepts `application/json` · returns `application/json`

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `text` | body | string | yes |  |
| `lowercase` | body | boolean | no |  |
| `maxLength` | body | number | no |  |
| `separator` | body | string | no |  |
| `removeStopWords` | body | boolean | no |  |

#### Quickstart

Generate a slug from a text string by sending the required `text` field.

```bash
curl -X POST "https://api.eu.apyhub.com/freedailypro/text-utilities-api/text/slug" \
  -H "apy-token: $APY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"text":"Hello World"}'
```

#### What you'll get back

The live response to the request above:

```json
{
  "tool": "Slug generator client and server side from freedailypro",
  "result": "hello-world"
}
```

### Extract URLs from Text

`POST https://api.eu.apyhub.com/freedailypro/text-utilities-api/text/extract-urls` · 10 atoms · accepts `application/json` · returns `application/json`

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `text` | body | string | yes |  |

#### Quickstart

Send a text string to extract URLs from it.

```bash
curl -X POST "https://api.eu.apyhub.com/freedailypro/text-utilities-api/text/extract-urls" \
  -H "apy-token: $APY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"text":"Check out https://apyhub.com and https://docs.apyhub.com for details."}'
```

#### What you'll get back

The live response to the request above:

```json
{
  "tool": "Url extractor client and server side from freedailypro",
  "result": [
    "https://apyhub.com",
    "https://docs.apyhub.com"
  ]
}
```

### Extract Emails from Text

`POST https://api.eu.apyhub.com/freedailypro/text-utilities-api/text/extract-emails` · 10 atoms · accepts `application/json` · returns `application/json`

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `text` | body | string | yes |  |

#### Quickstart

Send the text you want to scan for email addresses in the request body.

```bash
curl -X POST "https://api.eu.apyhub.com/freedailypro/text-utilities-api/text/extract-emails" \
  -H "apy-token: $APY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"text":"Please contact jane.doe@example.com or support@company.org for help."}'
```

#### What you'll get back

The live response to the request above:

```json
{
  "tool": "Email extractor client and server side from freedailypro",
  "result": [
    "jane.doe@example.com",
    "support@company.org"
  ]
}
```

## About

## What it does
Text Utilities gives you a small set of text-processing endpoints for common content operations. Send text in, get back counts, transformed text, extracted contacts and URLs, or generated placeholder copy.

Use `Text Utilities` when you need to measure content length, estimate reading time, normalize text into a slug, sort lines or words, or replace matching text with a controlled rule set. The word-count endpoint returns words, characters, charactersNoSpaces, sentences, paragraphs, and readingTimeMinutes. The find-and-replace endpoint returns the updated text plus replacementCount. The extract endpoints return arrays of URLs or email addresses found in the input text.

You can also generate lorem ipsum with a chosen number of paragraphs and words per paragraph, or shape a slug from a text string with optional lowercase handling, separator control, stop-word removal, and maxLength. That makes `Text Utilities` useful for CMS workflows, content moderation checks, editorial tools, and internal automation where text needs to be measured or rewritten before it is stored or published.

The endpoints are straightforward to compose in pipelines: validate a draft, extract contact data, generate a slug, then write the processed output into your app or database.

## Usage

Base URL: `https://api.eu.apyhub.com` (default region — see
`GET https://apyhub.com/api/public/regions` for the rest).

Authenticate with an ApyHub API key in the `apy-token` header.
Full docs and a live playground: https://apyhub.com/freedailypro/service/text-utilities-api
