Keyboard Support

Contact and Search

Keyman.com Homepage

Header bottom

Keyman.com

Index

On this page

Keyboard search API 1.0 Specification

Documents the api.keyman.com/search endpoint.

Parameters

q
The search query. A string to search for. The following special identifiers can be used to filter the search:
  • id: searches only against identifiers
  • c[ountry]: searches only for countries that match
  • l[anguage]: searches only for languages that match
  • k[eyboard]: searches only for keyboards that match
  • legacy: searches only for keyboards with a specific integer legacy identifier (combine with k:)
  • all: returns all languages that match the result, even if no keyboards are available for the language
Wildcards are not permitted, except for the special l:* which is used to return all languages supported
platform
Optionally, limit the results for keyboards to those that work on a target platform. Note: this does not limit language or country. Possible values: windows, macos, linux, desktopWeb, mobileWeb, android, ios

Search Object

A valid response will start with a Search object.

Member Notes
languages Array of SearchLanguage objects that matched the search query. The query searches against id and name, and matches alternate names for the language as well as the primary name specified by BCP 47.
keyboards Array of .keyboard_info objects that matched the search query. The query searches against id, name, and description.
countries Array of SearchCountry objects that matched the search query. The query searches against id and name.
rangematch An optional textual description of the search that can be used to prefix the results.

SearchLanguage Object

This represents a single language in the search results.

Member Notes
id The BCP 47 id of the language.
name A name for the language.
keyboards An array of keyboard identifiers that are available for the language.

SearchCountry Object

This represents a single language in the search results.

Member Notes
id The two letter RFC 3066 code for the country
name A name for the country
area The region of the world that the country is in
languages An array of SearchLanguage objects

Schema

A validating schema for the object is online at https://api.keyman.com/schemas/search.json.

Rate limiting and usage

There is currently no rate limiting for searches.

Examples

These examples were run from the live data and can be re-run at any time.

q=khmer

{
    "languages": [
        {
            "id": "km",
            "name": "Khmer (Battambang Khmer)",
            "keyboards": [
                "kbdkhmr",
                "khmer10",
                "khmer_angkor"
            ]
        }
    ],
    "keyboards": [
        {
            "id": "kbdkhmr",
            "name": "Khmer Basic",
            "links": [],
            "license": "freeware",
            "version": "1.0.1",
            "legacyId": 545,
            "encodings": [
                "unicode"
            ],
            "languages": [
                "km"
            ],
            "authorName": "Tavultesoft",
            "sourcePath": "legacy/kbd/kbdkhmr",
            "authorEmail": "support@tavultesoft.com",
            "description": "This keyboard layout is designed for Khmer.  It includes an on screen keyboard which can be viewed by clicking on the Keyman icon and selecting the On Screen Keyboard menu item. The package also includes the Khmer font Khmer OS. The keyboard layout follows the Windows Vista Khmer layout.",
            "packageFileSize": 110334,
            "packageFilename": "kbdkhmr.kmp",
            "packageIncludes": [
                "fonts",
                "visualKeyboard",
                "welcome"
            ],
            "platformSupport": {
                "macos": "full",
                "windows": "full"
            },
            "lastModifiedDate": "2013-02-18T11:24:02Z",
            "minKeymanVersion": "7.0"
        },
        {
            "id": "khmer_angkor",
            "name": "khmer_angkor",
            "license": "mit",
            "related": {
                "khmer10": {
                    "deprecates": true
                }
            },
            "version": "1.0",
            "encodings": [
                "unicode"
            ],
            "languages": [
                "km"
            ],
            "authorName": "Keyman",
            "jsFileSize": 58055,
            "jsFilename": "khmer_angkor.js",
            "sourcePath": "release/k/khmer_angkor",
            "description": "

Khmer Unicode keyboard layout using the NiDA keyboard layout.

", "packageFileSize": 3072743, "packageFilename": "khmer_angkor.kmp", "packageIncludes": [ "welcome", "visualKeyboard", "documentation" ], "platformSupport": { "ios": "full", "macos": "full", "android": "full", "windows": "full", "mobileWeb": "full", "desktopWeb": "full" }, "lastModifiedDate": "2018-02-06T04:51:21.539Z", "minKeymanVersion": "10.0" }, { "id": "khmer10", "name": "NiDA Khmer", "links": [], "license": "freeware", "version": "1.0", "legacyId": 401, "encodings": [ "unicode" ], "languages": [ "km" ], "authorName": "Andrew Cunningham", "jsFileSize": 11824, "jsFilename": "khmer10.js", "sourcePath": "legacy/k/khmer10", "description": "Khmer Unicode keyboard layout using the NiDA keyboard layout.", "packageFileSize": 110008, "packageFilename": "khmer10.kmp", "packageIncludes": [ "fonts", "visualKeyboard" ], "platformSupport": { "ios": "basic", "macos": "full", "android": "basic", "windows": "full", "desktopWeb": "full" }, "lastModifiedDate": "2007-02-08T13:43:29Z", "documentationFileSize": 22745, "documentationFilename": "khmer10.html", "minKeymanVersion": "5.0" } ] }

q=c:lao

{
    "rangetext": "Countries matching 'lao'",
    "countries": [
        {
            "id": "LA",
            "name": "Laos",
            "area": "Asia",
            "languages": [
                {
                    "id": "lo",
                    "country_id": "LA",
                    "name": "Lao",
                    "keyboards": [
                        "basiclao",
                        "enhlao",
                        "kbdlao",
                        "lao 2008",
                        "laounicodebasic_on_thaikbd",
                        "lao_2008_basic"
                    ]
                },
                {
                    "id": "kjg",
                    "country_id": "LA",
                    "name": "Khmu",
                    "keyboards": [
                        "kmhmu"
                    ]
                }
            ]
        }
    ]
}

Version History

1.0.4, 2018-06-26
Added legacy query filter
1.0.3, 2018-06-14
Added platform parameter
1.0.2, 2018-02-28
Renamed minKeymanDesktopVersion to minKeymanVersion
1.0.1, 2018-02-06
Added SearchCountry definition.
1.0, 2018-01-01
Initial version