ForHosting KIT · Developer Utilities

Morse code translator

HELLO becomes .... . .-.. .-.. --- in International Morse code: every letter, digit and supported punctuation mark turns into its dots and dashes, with a space between letters and a slash between words. Decoding reads Morse back into text. 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
Calculation mode
Encode
You get
Result
.... . .-.. .-.. ---
Encoding
morse
Input length
5
Output length
20

This Morse code translator converts plain text into International Morse Code and decodes Morse sequences back into readable text using a fixed, deterministic alphabet. Encode mode maps each letter, digit, and supported punctuation mark to its classic sequence of dots and dashes, separates letters with a single space, and separates words with a slash so multi-word phrases stay unambiguous. Decode mode reverses the process: it reads only dots, dashes, spaces, and slash word separators, looks up every token in the same table, and fails clearly when a symbol or code is unknown.

What International Morse is and what this tool returns

International Morse Code is the standard mapping of Latin letters, decimal digits, and a small set of punctuation marks to sequences of short signals (dits, written as dots) and long signals (dahs, written as dashes). Encode mode uppercases letters, expands each character to its code, joins letters with one space, and joins words with space-slash-space so a human or machine can tell word boundaries without timing audio. Decode mode accepts the same textual convention, also tolerating flexible spacing around the slash, and rebuilds uppercase letters and the original punctuation.

If you need audio tone generation, light-flash timing, or a different regional Morse variant, use a specialized tool; this landing is only for the text encode and decode contract that teachers, radio students, and test authors share.

Where a Morse translator fits in learning, radio, and tests

Students meet Morse when they learn radio procedures, prepare for license exams, or solve timed classroom drills that require converting short words both ways without paper charts. Amateur radio operators use a text encoder to check practice phrases before sending them by key or software keyer, and a decoder to verify copy after a session. Puzzle designers and game authors generate deterministic Morse riddles for escape rooms and CTF-style challenges where the same clue must always encode the same way.

Pair it with other text encoding helpers when you are building a small lab of free, deterministic utilities for education and ops.

Radio and exam practice

Encode study phrases and decode practice copy for amateur radio drills and license prep without a paper Morse chart.

Puzzles and classroom demos

Generate deterministic Morse clues for escape rooms, CTFs, and live lessons with a shared word-separator rule.

What does the Morse code translator cost?

It is free in your browser on this page.

What characters are supported?

Letters A–Z (case-insensitive on encode), digits 0–9, and common punctuation: . , ? ' ! / ( ) & : ; = + - _ " $ @.

How are words separated in Morse output?

Letters are separated by a single space. Words are separated by space-slash-space ( / ). Decode also accepts flexible spacing around the slash.

Is the result deterministic?

Yes. The same text and mode always produce the same result with no network, randomness, or date-dependent behavior.

Can the translator play Morse as sound or light?

No. It works with written Morse only, turning text into dots and dashes and back. For audio tones, flashing-light timing or a regional Morse variant you need a separate tool; the written form here is the one teachers and radio students share.

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/enc/morse

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/enc/morse \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"HELLO"}'
{
  "text": "HELLO"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "enc.morse",
  "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.

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.

The engine never calls a network, never samples randomness, and never depends on the calendar clock, so the same input and mode always produce the same result in the browser and through the API. Typical checks include encoding HELLO to five letter codes, decoding that string back to HELLO, and rejecting unsupported characters with invalid_input. Use it free on this page for radio practice, puzzle answers, and teaching demos, or call the API at $0.002 per successful request when you need reproducible Morse transforms in CI and backend services.

What International Morse is and what this tool returns

The JSON response always includes result for the transformed string, mode echoing encode or decode, encoding fixed to morse, and input_length plus output_length so automated tests can assert sizes without re-parsing the payload. There is no silent skip of unknown characters and no private extension table: either every symbol maps cleanly or the request fails with invalid_input.

How text and mode are read and how results stay reproducible

Encode trims outer whitespace only for word splitting semantics, treats internal whitespace runs as word separators, and rejects any character that is not in the supported alphabet with a message that names the bad symbol. Decode rejects any character outside the set of dots, dashes, spaces, and slash, rejects empty or malformed tokens, and rejects Morse sequences that do not appear in the reverse table, again naming the undecodable token. The preferred payload field is text, with aliases input, value, s, and message so forms, query strings, and SDK clients can reuse the same contract without renaming columns. Mode defaults to encode and accepts decode explicitly; aliases op, direction, and action map to the same switch for scripts that already use those names. Because every branch is pure table lookup and string assembly, two clients with the same text and mode receive byte-identical results across Worker versions as long as the alphabet stays fixed. Pair the free browser run on this page with the priced API when you need the identical mathematical result inside an automated pipeline without re-implementing Morse tables yourself. Invalid inputs return invalid_input and are not charged, which keeps exploratory validation cheap while successful transforms remain a fixed item price at $0.002 for API callers.

Where a Morse translator fits in learning, radio, and tests

On this page the work runs entirely in your browser; through the API each successful lookup costs $0.002, failed validation is not charged, and nothing is stored after the response returns. That split — free interactive exploration and a priced, identical API — matches the rest of the KIT tier-A catalog and lets you move from a whiteboard demo to an automated pipeline without changing the encoded result.

CI and golden fixtures

Assert encode and decode pairs in automated tests so separators and punctuation never drift silently.

What modes are supported?

mode=encode (default) turns plain text into Morse. mode=decode turns a Morse string of dots, dashes, spaces, and / back into text.

Read the full KIT documentation →