Hebrew numeral converter and gematria free
Write a whole number in Hebrew letters or read Hebrew letters back as a number: 5 becomes ה׳ with its geresh, and forty-two is mem plus bet. It follows the traditional spellings for fifteen and sixteen. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Calculation mode
- Number to Hebrew numerals
- Input number
- 5
- Hebrew numeral
- ה׳
- Gematria value
- 5
Converts integers to Hebrew numerals with geresh and gershayim conventions and reads gematria values back. Free, deterministic, and private in your browser. No account required.
How Hebrew numerals work
Hebrew numerals assign each letter a fixed additive value: alef is one, bet is two, and so on through tet for nine, yod for ten, kaf for twenty, and up to tav for four hundred. Larger values are built by writing several letters in descending order and summing them, so a number such as forty-two becomes mem plus bet. Thousands are written with a separate thousands digit marked by a geresh after the letter, then the remainder of the number.
The converter accepts any integer from one through nine thousand nine hundred ninety-nine, validates the type and range before arithmetic begins, and returns the composed Hebrew string together with the gematria total, which equals the original integer for a successful encode.
Special forms, punctuation, and reverse mode
Traditional writing avoids combinations that look like sacred names, so fifteen and sixteen use tet-vav and tet-zayin rather than yod-heh or yod-vav. Multi-letter forms place gershayim before the final letter, while a single letter takes a trailing geresh. Empty strings and non-letter noise are rejected early so clients never see silent zero results.
Determinism, limits, and integration
The implementation is pure parse-tier logic with no network, clocks, or randomness, so identical inputs always produce identical outputs. Out-of-range values outside one to nine thousand nine hundred ninety-nine fail with stable English message substrings the harness can match. Use the published examples for encode, decode, and error paths before wiring UI metrics.
What you can do with it
Homework and exams
Check classic gematria and numeral problems quickly with stable, reproducible answers.
Automation
Call the same pure function from scripts without installing a spreadsheet or CAS.
FAQ
Is this free?
Yes. Tier A runs entirely in your browser without an account.
How is forty-two written in Hebrew numerals?
As mem plus bet: mem is worth forty and bet is worth two. Letters are written from the largest value down and added together, and because there are two letters, the gershayim mark goes before the last one.
Why are fifteen and sixteen written tet-vav and tet-zayin?
Tradition avoids letter pairs that look like a sacred name. Instead of yod-heh and yod-vav, fifteen is written tet-vav and sixteen tet-zayin, and the converter applies that convention for you.
Which numbers can it convert?
Any whole number from one to nine thousand nine hundred ninety-nine. Values outside that range are refused with a clear message, so you never get a silent or made-up result.
Can I turn Hebrew letters back into a number?
Yes. Choose the reverse direction and type the Hebrew numeral: the geresh and gershayim marks are set aside, each letter is looked up and the values are added up. Unknown characters are refused.
Related tools
For developers — API access
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.
API endpoint
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.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/math/hebrew-numerals \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"mode":"to_hebrew","n":1}'const res = await fetch("https://api.kit.forhosting.com/math/hebrew-numerals", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"mode": "to_hebrew",
"n": 1
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/hebrew-numerals",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"mode": "to_hebrew",
"n": 1
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/hebrew-numerals", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"mode":"to_hebrew","n":1}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"mode":"to_hebrew","n":1}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/hebrew-numerals", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"mode": "to_hebrew",
"n": 1
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.hebrew_numerals",
"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.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
Special forms, punctuation, and reverse mode
When you choose from_hebrew mode, the same letter table runs in reverse: geresh and gershayim are stripped, each remaining character is looked up, and unknown glyphs raise a clear invalid_input error.
Determinism, limits, and integration
Review the input schema for mode, n, and hebrew fields and bind only the documented success keys so clients never guess field names.
Integration use cases
Teaching demos
Show worked encode and decode examples with golden fixtures that match the free widget and the API.
Technical questions
Does it call the network?
No. The parse engine keeps everything on-device.
What if my input is invalid?
You receive invalid_input with a clear English message.
Are results stable?
Yes. Deterministic math and golden examples freeze the contract.
Who authors this capacity?
Aspire on the ForHosting KIT workshop.