KeymanWeb Server Data API
The KeymanWeb Subscription Server has a RESTful JSON API which allows you to query it for information about available languages, keyboards and fonts.
Version Information and History
Version: 1.0
API usage
Version 1.0 of the API is a RESTful web service that returns only UTF-8 JSON format data. It can be called over HTTP or HTTPS. URIs in the data will reflect the protocol that is used to query the web service.
Interfaces
| Call | Description |
|---|---|
| GET https://r.keymanweb.com/api/1.0/languages | Returns a Languages object, that contains a list of all language and keyboard combinations available on the server. This call will return full details of every language, keyboard and font combination. It is typically around 100KB. |
| GET https://r.keymanweb.com/api/1.0/languages/aaa | Returns a Language object for a language identified by the language code aaa. |
| GET http://r.keymanweb.com/api/1.0/keyboards | Returns a Keyboards object, that contains a list of all keyboards on the server. |
| GET http://r.keymanweb.com/api/1.0/keyboards/european | Returns a Keyboard object for the keyboard identified by id european. |
Parameters
The parameters below are optional and can be provided as query parameters in the URL.
| Parameter | Description |
|---|---|
| device | Optional. Can currently be "windows", "macosx", "iphone", "ipad", "androidphone", "androidtablet", "mobile", "desktop", "tablet", "any". The server will filter keyboards according to the device type. If absent, then "all" is used. |
Structure
- Languages object. A list of languages available on the server. Contains the following members:
- languages: Array of Language objects (required)
- Keyboards object. A list of languages available on the server or for a given language. Contains the following members:
- keyboards: Array of Keyboard objects (required)
- Language object. Contains the following members:
- name: Name of language (required)
- id: ISO639-3 language code (required)
- keyboards: Array of Keyboard objects (optional)
- Keyboard object. Contains the following members:
- name: Name of keyboard (required)
- id: ID of keyboard, always matches the filename of the keyboard (required)
- uri: Canonical URI where keyboard .js can be downloaded (required)
- default: true if the keyboard is the recommended default for the language (if absent, then false).
- rtl: true if the keyboard targets a right-to-left script (if absent, then false).
- lastModified: Date the keyboard file was last updated. (required)
- fileSize: Size of the keyboard file in bytes. (required)
- fonts: array of Font objects that are available for use with the keyboard. (optional)
- languages: array of Language objects that are linked to the keyboard. (optional)
- Font object:
- name: Font face name as compiled into the font. (required)
- uri: Canonical URI where font .ttf/.otf can be downloaded. (required)
- fileSize: Size of the font file in bytes. (required)
- lastModified: Date the font file was last updated. (required)
- default: true if the font is the recommended default for the keyboard (if absent, then false).
Example Call
GET https://r.keymanweb.com/api/1.0/languages
Returns:
{"languages":
[
{"name":"Ghotuo",
"id":"aaa",
"keyboards":
[
{"id":"naijanfd10",
"name":"Naija",
"default":true,
"uri":"http:\/\/r.keymanweb.com\/kmw\/naijanfd10.js",
"fileSize":1351,
"lastModified":"2012-03-02T16:36:15+11:00"
}
]
},
...
]
}