ForHosting KIT · Audio & Voice

DTMF Tone Frequency Lookup for Telephone Keypad Keys

A DTMF tone represents one telephone keypad key by playing two frequencies at the same time: one from a low-frequency row and one from a high-frequency column.

● BetaFree · in your browser
Use it from WebAPIEmailTelegramApp soon

Enter any digit from 0 through 9, the asterisk, or the number sign to receive its exact standard pair in hertz. The lookup is deterministic, immediate, and useful for checking telephony software, tone generators, decoders, documentation, and test fixtures without consulting a keypad matrix manually.

How a keypad key becomes two frequencies

Dual-tone multi-frequency signaling, usually shortened to DTMF, arranges the telephone keypad as a frequency matrix. Every horizontal row has one low frequency, and every vertical column has one high frequency. Pressing a key combines the row and column frequencies, giving that position a distinctive pair. For example, keys 1, 2, and 3 share the same low row frequency but use different high column frequencies. This lookup returns both components separately and also returns them together as an ordered pair, with the low frequency first. That structure makes the result convenient for a person reading a specification and for code preparing an oscillator, detector, or test assertion. The result describes frequencies in hertz; it does not synthesize an audio file, estimate tone duration, or analyze a recording. Because the table is fixed by the familiar DTMF keypad plan, the same accepted key always produces the same output, with no rounding, network request, or device-dependent calculation involved.

Which keypad characters are accepted

The input is exactly one character from a standard 12-key consumer telephone keypad: the digits 0 through 9, the asterisk, or the number sign. The character is treated literally, so a number should be supplied as text when calling the API. Spaces, words, multiple characters, negative signs, and punctuation other than the two keypad symbols are rejected with an input error. Some technical DTMF specifications also describe a fourth column containing the control keys A, B, C, and D. Those keys appeared in specialized military and network-control equipment, but they are not present on the standard telephone keypad covered by this capability, so they are intentionally rejected. Keeping the accepted set narrow prevents an accidental assumption about which keypad layout is being used. If you are building a form, the declared input choices can be presented as a selector. If you are integrating through code, validate or stringify the intended key before sending it rather than relying on automatic numeric conversion.

Using the result in telephony work

The returned low and high frequencies are useful as reference data wherever software needs to agree with a telephone keypad. A tone generator can use the pair to configure two oscillators before applying its own amplitude, sample rate, and duration settings. A decoder test can label a known pair with the key it should recognize. Quality-assurance teams can turn the response into stable fixtures for interactive voice response menus, dialers, softphones, gateways, and embedded devices. The lookup can also help explain why a detector confuses neighboring keys: keys in the same row share their low component, while keys in the same column share their high component. This capability does not judge twist, tolerance, cadence, signal level, or whether recorded audio meets a telecommunications standard; those questions require measurements from an actual signal. It provides the nominal frequency identity only. Run it locally in the browser for an occasional check, or call the API for $0.002 per request when a workflow needs a small, predictable JSON response.

Configure a DTMF tone generator

Retrieve the nominal low and high oscillator frequencies for the keypad key your application needs to emit.

Build decoder test fixtures

Create clear expected values that associate a keypad character with its standard dual-frequency pair.

Check telephony documentation

Confirm a frequency pair while reviewing IVR flows, dialer behavior, gateway settings, or technical notes.

Which characters can I enter?

Enter exactly one of the digits 0 through 9, an asterisk, or a number sign.

Why are the A, B, C, and D DTMF keys rejected?

They belong to a specialized fourth DTMF column and are not found on the standard 12-key consumer telephone keypad covered here.

Does this tool generate an audible tone?

No. It returns the nominal frequency pair as data; it does not synthesize, play, or download audio.

Can it analyze a recording of keypad tones?

No. Audio analysis requires a decoder that measures frequencies in a signal. This capability only looks up the pair for a known key.

What does the API request cost?

Each API request costs $0.002. The same deterministic lookup can also run in your browser.

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/audio/dtmf-tone-lookup

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/audio/dtmf-tone-lookup \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"key":"5"}'
{
  "key": "5"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "audio.dtmf_tone_lookup",
  "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_mb200
max_minutes180
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.

Read the full KIT documentation →