Police ten-code translator
Type 10-4 and read Acknowledgement (OK / message received), or type a phrase such as message received to get the code back. One fixed APCO-style list means a script, novel or scanner log always gets the same meaning. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Text
- 10-4
- Result
- 10-4: Acknowledgement (OK / message received)
- Calculation mode
- To meaning
- Quantity
- 1
- Alphabet
- apco_ten_code
Police ten-codes such as 10-4, 10-20, and 10-33 are short radio signals used by many public-safety agencies to keep routine traffic brief and consistent. Students, writers, scanners hobbyists, and software teams often need a reliable map from a code to its plain-language meaning—and the reverse path from a phrase like message received back to the matching ten-code. This police ten-code translator accepts a string of one or more codes or a free-text phrase, applies a fixed APCO-style dictionary, and returns structured items with the canonical 10-N form and meaning.
What ten-codes are and why radios use them
Ten-codes are short spoken signals built from the number ten and a second number, such as 10-4, 10-20 or 10-33. Many public-safety agencies use them on the radio so that routine traffic stays brief and everyone says the same thing the same way. Away from the radio room, students, writers, scanner hobbyists and software teams need the same reference: what a code they heard means, and which code matches a phrase they want to say. This translator works in both directions with a single fixed list in the APCO style, with the meanings written in English.
Consistent answers from messy notes
Codes rarely arrive in a tidy form. A script may say 10 4, a forum post 10.4 and a scanner log 104; all three are read as 10-4. You can paste a whole sentence, and every code inside it is picked out and listed with its meaning, with repeats counted once. When a code or a phrase is not in the list, the translator says so instead of inventing a definition, so a wrong meaning never slips into your notes. Writers rely on this to keep novel, script and game dialogue consistent: the same radio line gets the same meaning every time it is written or edited.
What you can do with it
Writers and media continuity
Keep novel, script, and game dialogue consistent by translating ten-codes to a single reference meaning set every time a radio line is generated or edited.
FAQ
How do I look up what 10-4 means?
The items and result fields return the acknowledgement / message received meaning from the reference dictionary.
How do I convert a phrase into a ten-code?
The result field returns the matching code (for example 10-4 or 10-20).
Are these meanings the same for every police department?
No. Agencies publish local variants. This tool uses a common APCO-style reference set for education, media, and software tests—not a substitute for your department’s official signals.
Can I type a ten-code without the hyphen?
Yes. 10-4, 10 4, 10.4 and the compact 104 are all read as the same code, so lines pasted from chat logs, novels or scanner notes work without cleaning them up first.
Can I translate several ten-codes at once?
Yes. Put them in one line separated by spaces, commas or ordinary words. Each recognised code gets its own meaning, and a code that appears twice, such as a repeated 10-20, is counted only once.
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/enc/ten-code \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"10-4"}'const res = await fetch("https://api.kit.forhosting.com/enc/ten-code", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "10-4"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/ten-code",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "10-4"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/ten-code", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"10-4"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"10-4"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/ten-code", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"text": "10-4"
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.ten_code",
"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
Unknown codes and phrases fail with invalid_input and a clear message instead of inventing a definition. The algorithm is pure table lookup: no model, no network, and no clock, so the same input always yields the same JSON for tests and SDKs.
Convert ten-codes to plain-language meanings
Accepted forms include 10-4, 10 4, 10.4, and compact 104 style tokens so pastes from chat logs, novels, or scanner notes still parse. Multiple codes may appear in one string separated by spaces, commas, or plain prose; each recognized code becomes an item with a canonical code field such as 10-4 and a meaning field drawn from the fixed APCO-style reference dictionary. Duplicate codes are collapsed so a repeated 10-20 does not inflate the count. Identical inputs always produce identical outputs because the path is pure table lookup with no network, no random salt, and no wall clock. Send a JSON body with the required string field text set to one or more police ten-codes, and leave mode at its default to_meaning or set mode to to_meaning explicitly. The response also includes result as a semicolon-joined human summary, count as the number of unique resolved codes, mode equal to to_meaning, and alphabet equal to apco_ten_code. Aliases input, value, s, code, phrase, and query are accepted for the text field; direction, op, and action may stand in for mode. Use to_meaning whenever you need a paste-ready definition for training cards, script notes, novel continuity, or a dispatch simulation that must display the same wording every run.
Look up phrases as ten-codes and reject unknowns
Exact matches win first; longer phrases may also match by substantial token overlap so intoxicated driver still resolves to 10-55 without requiring the full formal definition string. Empty text fails the same way. Prefer this capability when search intent is police ten code translator, 10-4 meaning, what does 10-20 mean, or reverse ten-code lookup; free-form agency policy manuals and full radio procedure coaching belong to training products, not this fixed table. Remember that real departments may publish local variants; this tool documents a common reference set for education and media work, not a guarantee of every jurisdiction’s SOPs. Set mode to to_code and put a plain-language phrase in text—for example message received, location, en route, or need assistance. The translator normalizes case and punctuation, then matches against dictionary meanings and a curated set of everyday aliases such as OK or roger for 10-4, where are you for 10-20, and need backup for 10-78. On success the response returns result as the matching code or semicolon-joined codes when several are equally strong, items pairing each code with its canonical meaning, count, mode to_code, and alphabet apco_ten_code. Any phrase that cannot be matched raises invalid_input with an explicit unknown phrase message naming the input—exactly the contract quiz engines and content pipelines need when a typo would otherwise invent a wrong radio signal. Validation failures are not charged on the prepaid API, so operators can probe bad pastes safely.
API usage, pricing, workflows, and practical limits
Call the free in-browser police ten-code translator for homework drills, writer research, amateur scanner glossaries, classroom demos, and one-off 10-4 checks without maintaining a spreadsheet of signals. A typical workflow decodes a line of radio chatter into meanings for a subtitle track, stores the items array beside each timestamp, then reverse-looks up key phrases when generating practice quizzes so students type 10-33 for emergency. Authors shipping SDKs can map the items array into a two-column table of code and meaning for UI copy buttons, while mode and alphabet labels make OpenAPI examples self-explanatory for readers comparing radio-code styles. Use the prepaid KIT API when a learning app, fiction-writing assistant, game dialogue system, or SDK needs the same to_meaning or to_code step under balance at $0.002 per successful item; failed validation never consumes balance after the engine rejects the request. Pair this endpoint with NATO phonetic spelling when call signs mix letters and ten-codes, but keep the steps separate so each landing page matches a single search intent.
Integration use cases
Study cards and academy quizzes
Decode 10-4, 10-20, and 10-33 into plain meanings for flashcards, then reverse-look up student answers so typos raise invalid_input instead of silent false credits.
CI fixtures for glossary pipelines
Services that embed a ten-code glossary pin to_meaning, to_code, and unknown-code goldens so dictionary edits cannot ship without failing continuous integration.
Technical questions
What happens on an unknown code or phrase?
The task fails with invalid_input naming the unknown ten-code or phrase. Validation failures are not charged on the prepaid API.
Is the police ten-code translator free?
The browser widget runs free on your device. API calls use prepaid KIT balance at $0.002 per successful item.