Keyboard search API 1.0 Specification
Documents the api.keyman.com/search endpoint.
This API is deprecated and has been replaced with version 2.0.
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 identifiersc[ountry]
: searches only for countries that matchl[anguage]
: searches only for languages that matchk[eyboard]
: searches only for keyboards that matchlegacy
: searches only for keyboards with a specific integer legacy identifier (combine withk:
)all
: returns all languages that match the result, even if no keyboards are available for the language
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.
{
"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": "[email protected]",
"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"
}
]
}
{
"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.5, 2019-12-13
- Added deprecated field to keyboard_info
- 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