Keyboard Support

Contact and Search

Keyman.com Homepage

Header bottom

Keyman.com

On this page

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.

Endpoints

The two endpoints below can be used interchangeably. api.keyman.com is the modern endpoint; future services will be available there.

  • https://api.keyman.com/cloud/4.0
  • https://r.keymanweb.com/api/4.0

Interfaces

CallDescription
GET https://api.keyman.com/cloud/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://api.keyman.com/cloud/1.0/languages/aaa Returns a Language object for a language identified by the language code aaa.
GET http://api.keyman.com/cloud/1.0/keyboards Returns a Keyboards object, that contains a list of all keyboards on the server.
GET http://api.keyman.com/cloud/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.

ParameterDescription
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.
languageidtype Optional. Can currently be "iso6393" or "bcp47". If absent, then "iso6393" is used.
version Optional. The version of Keyman Engine, e.g. "10.0". If absent, uses "2.0". The server will filter keyboards that are available for that version of Keyman Engine. (See KeymanWeb Versioning for details on valid version numbers.)

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://api.keyman.com/cloud/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"
         }
       ]
     },
     ...
  ]
}