ForHosting KIT · Unit converters

Leet speak converter

Turn plain text into 1337 speak with one fixed table: Hello World becomes #3110 W0r1d and elite becomes 31173. Spaces, punctuation and emoji stay put, so the phrase keeps its shape. Free in your browser.

  • Free
  • Runs in your browser
  • No sign-up
  • Your data stays on your device
Use it from WebAPIEmailTelegramApp soon
If you enter
Text
Hello World
You get
Result
#3110 W0r1d
Length
11
Substituted
7
Alphabet
a4 b8 c( e3 g9 h# i1 l1 o0 s5 t7 z2

Leet speak, often written 1337 speak, is the letter-to-digit substitution style that turns ordinary English into a look-alike string such as a 1337 greeting for Hello and 31173 for elite. This leet speak converter applies a fixed basic table in one direction only: it reads a plain-text string, replaces mapped Latin letters with digits and symbols, and returns the converted string. Letters that have no entry in the table keep their original character and case; spaces, punctuation, emoji, and digits already in the input pass through unchanged so phrases keep their shape. The input must be a string. There is no decode path, no random glyph pack, and no network call: the same text always yields the same 1337 output.

How the basic leet speak table replaces letters

Classic leet speak is a letter-to-digit substitution, not a cryptographic cipher and not a keyed encoding. People have used look-alike glyphs in gamer handles, bulletin-board nicknames, and puzzle copy for decades: the letter a looks a bit like the digit four, e looks like three, o looks like zero, and so on. This leet speak converter implements one documented basic table and applies it in a single direction.

Each character of the input is inspected once. If the character, compared case-insensitively, is a mapped Latin letter, it is replaced by the corresponding digit or symbol from the table: a becomes four, b becomes eight, c becomes an opening parenthesis, e becomes three, g becomes nine, h becomes a hash mark, i and l both become one, o becomes zero, s becomes five, t becomes seven, and z becomes two.

Letters that do not appear in the table keep their original glyph and case, so a capital W stays W and a lowercase r stays r. Spaces, punctuation, emoji, and digits that already sit in the input pass through unchanged, which is why a phrase such as Hello World remains a readable phrase after conversion rather than collapsing into a packed blob. There is no random seed, no wall-clock timestamp, and no network lookup in the path: every step is a table lookup.

Where a leet speak converter earns its keep

Introductory internet-culture and programming courses often ask students to implement a letter-to-digit table; a single trusted leet speak converter speeds homework demos and auto-graders that need a stable oracle. Capture-the-flag warm-ups and puzzle hunts still hide 1337-style messages, and setters want a fast, predictable transform rather than a general cryptanalysis suite. Product and community teams stylize handles, quiz labels, spoiler tags, and event names in leet form for a playful tone without installing a language-specific library.

If you need a bidirectional translator that also decodes leet glyphs back toward English, a rotation cipher, Base64, Braille, or strong authenticated encryption, treat those as separate search intents and landings rather than overloading this one-way converter. Keep requests inside the documented length limit, pin the result string in tests, and you get reproducible 1337 output for nicknames, puzzles, and edge workers without standing up extra infrastructure of your own.

Classroom substitution demos

Give students a ground-truth letter-to-digit oracle for homework and auto-graders that only need plain text converted into 1337.

Puzzle and CTF 1337 copy

Encode challenge phrases into classic leet speak without writing a one-off substitution script for every problem set.

What is leet speak?

Leet speak (1337 speak) substitutes Latin letters with look-alike digits and symbols—for example a→4, e→3, i→1, o→0, s→5, t→7. It is stylistic obfuscation, not cryptographic security.

How do I convert text into leet speak?

Send your string in the text field. Letters in the basic table are replaced with digits and symbols; other characters pass through unchanged. The converted string is returned in result.

What happens if the input is not a string?

Numbers, objects, arrays, booleans, and missing text are rejected. Failed validation is not billed.

Does this converter decode 1337 back to English?

No. This page is a one-way converter from plain text to leet speak. Bidirectional translation is a different search intent and a different landing.

What does the leet speak converter cost?

The browser tool is free and runs locally.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/conv/leet-speak

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.

curl -X POST https://api.kit.forhosting.com/conv/leet-speak \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"Hello World"}'
{
  "text": "Hello World"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "conv.leet_speak",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

max_chars65536
HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

Numbers, objects, arrays, and missing text fail with invalid_input instead of a guessed conversion. Successful API calls cost $0.002 per item; validation failures are not billed.

What you send and what you get back

Send a required string field named text that contains the plain message you want converted. Missing text fails with a message that names the field. Classic checks include converting Hello World into a 1337-style greeting and converting elite into 31173. Aliases such as input, value, message, content, and s are accepted for the same field so scripts can reuse an existing payload shape. The value must be a JSON string. Numbers, booleans, objects, arrays, and null are rejected with invalid_input rather than coerced, matching the contract that this converter only accepts text. Strings longer than the published maximum of sixty-five thousand five hundred thirty-six characters are also rejected so a Worker isolate cannot be flooded with an unbounded buffer. Empty strings are valid input: they convert to an empty result with zero substitutions. On success the response echoes the original text, returns result as the converted leet speak string, length as the number of characters in that result, substituted as the count of characters that hit the table, and alphabet as a compact label of the basic mapping so a client can assert which profile it hit. Failed validation does not consume prepaid balance. Pricing for successful API calls is the published base of $0.002 per item.

Where a leet speak converter earns its keep

API pricing is the published base of $0.002 per successful item, and failed validation does not consume balance.

Nickname and handle styling

Turn a plain username or quiz label into basic leet speak in the browser, with the same table the API will use later in scripts.

Read the full KIT documentation →