Scrapers / Developer & File Tools

Slugify
hipersoft/slugify-permalink
Turn titles and text into clean URL slugs in bulk, with transliteration, custom separators, lowercasing and length limits. Export a ready-to-use slug for every row.
Total users
2Monthly users
1Total runs
77Per slug generated
$0.002Last rebuilt
Oct 28, 2026Overview
Turn titles and text into clean URL slugs in bulk. Paste a list of titles and get a safe, readable permalink for every one — with transliteration (café → cafe, Größe → grosse), custom separators, lowercasing, length limits and automatic uniqueness. Ideal for CMS migrations and publishing at scale.

What it does
- Converts any string into a URL-safe slug (
Hello World!→hello-world). - Transliterates accents and non-Latin characters to ASCII.
- Custom separator, optional lowercase, and a max length cap.
- Ensures uniqueness across the batch by adding a numeric suffix to repeats.
Use cases
- CMS migration — generate permalinks for thousands of posts/products from a spreadsheet.
- Publishing — slugify article titles before import.
- E-commerce — build clean category/product URLs at scale.
Input
{ "texts": ["Hello World! My First Post", "Café León — 2026 Edition"], "separator": "-", "lowercase": true, "maxLength": 0, "ensureUnique": true }
| Field | Type | Description |
|---|---|---|
texts |
array | Strings/titles to slugify — one slug per entry. |
separator |
string | Character between words. Default -. |
lowercase |
boolean | Lowercase the slug. Default true. |
maxLength |
integer | Trim to at most N characters (0 = no limit). |
ensureUnique |
boolean | Add a suffix when a slug repeats. Default true. |
Output

{ "original": "Hello World! My First Post", "slug": "hello-world-my-first-post" }
Output schema
| Field | Type | Description |
|---|---|---|
original |
string | The input string. |
slug |
string | The generated URL slug. |
FAQ
Does it handle accents and other languages? Yes — accents and many non-Latin scripts are transliterated to ASCII.
What export formats are supported? JSON, CSV, Excel and XML, plus the Apify API.
Can I automate it? Yes — connect it via integrations on the Apify platform including Make, Zapier and the Apify API.
Notes
Original clean-room implementation.
Input
| Field | Type | Description |
|---|---|---|
texts requiredTexts / titles | array | The strings or titles to turn into URL slugs — one slug is generated per entry. |
separatorWord separator | string | Character used between words in the slug. Default: "-" |
lowercaseLowercase | boolean | Convert the slug to lowercase. Default: true |
maxLengthMax length | integer | Trim the slug to at most this many characters (0 = no limit). Default: 0 |
ensureUniqueEnsure unique | boolean | Append a numeric suffix when the same slug occurs more than once in the batch. Default: true |
API
curl -X POST "https://api.apify.com/v2/acts/hipersoft~slugify-permalink/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"texts": [
"Hello World! My First Post",
"Café León — 2026 Edition"
]
}'from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("hipersoft/slugify-permalink").call(run_input={
"texts": [
"Hello World! My First Post",
"Café León — 2026 Edition"
]
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('hipersoft/slugify-permalink').call({
"texts": [
"Hello World! My First Post",
"Café León — 2026 Edition"
]
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);Pricing
| Event | Price | Paid plans from |
|---|---|---|
| Slug generated One URL slug generated from a title/string | $0.002 | $0.001 |
You pay only for what the run returns. Set a maximum cost per run and it stops cleanly at that limit.
Related scrapers
Bulk Image Downloader
Download thousands of images from a list of URLs and store each in the key-value store with a public link. Returns content type, size, dimensions and SHA-256 per image. Bulk-ready. Great for datasets, backups and media pipelines.
8,102 runs · 103 users · $0.056 / url processedText to Speech
Convert any text to natural-sounding speech as an MP3 download. 300+ premium neural voices across 70+ languages, adjustable rate, pitch and volume. Great for voiceovers, videos, accessibility and audio content. No setup.
278 runs · 22 users · $0.01 / audio generatedGoogle Maps Email Extractor
Search Google Maps for businesses, then crawl each business website to extract emails, social profiles and extra phone numbers. Turns any Maps search into a ready lead list. No setup.
159 runs · 8 users · $0.006 / business lead scrapedWebsite Screenshot
Capture full-page or viewport screenshots of any URL as PNG or JPEG, at any device size. For monitoring, previews, thumbnails and automation workflows.
156 runs · 3 users · $0.004 / screenshot capturedBulk URL Status Checker
Check thousands of URLs over plain HTTP: status codes, broken links (404/410/5xx), full redirect chains, response time, content type, page title and SSL certificate expiry.
154 runs · 13 users · $0.002 / url checkedGoogle Search Scraper
Scrape Google Search results (organic listings) for any query: title, URL, displayed URL, snippet and position. Multi-query, per-country/language, pagination. Uses Google SERP proxy — reliable, no captcha, no setup.
121 runs · 8 users · $0.001 / result scrapedSend the site and the fields. We build it and you get it first.