You can build your web site with the same technologies we use. The entire <UIKey> experience is built on an Open Source web framework (PHP): Vae Soli!.
Vae Soli! contains a number of predefined widgets to interact with <UIKey>: a registration form, a search form, a permalink creation form, etc.
Our Application Programming Interface permits two types of interaction:
With the Get interactions, you, as a developer, you can retrieve information from <UIKey> databases.
With the Set interactions you can set information into <UIKey> databases: add, update and delete.
The interactions with <UIKey> adhere to the principles of web services going over HTTP. The various HTTP requests do take place via our list of protocols.
<UIKey> uses a limited character set: 148 characters are allowed when building keys:
… which translates to the following character set (it starts with a blank):
As the key length can go up to 120 characters, there are 2.700261643301888696052576509549e+260 unique possibilities in <UIKey>.
<UIKey> is available on two domains that are considered as aliases
of each other and can be used interchangeably :
ui.tl. The latter is a handy shortening.
As exposed before, the means to interact with <UIKey> are called "protocols". Each protocol achieves a well-defined and pretty limited interaction. When <UIKey> responds, it does this in two possible ways:
The default response mode is
html as indicated above.
<UIKey> protocols are used via simple web services as exposed
<UIKey> provides 2 return types:
html (default) or
In order to obtain the response in xml, simply include an additional
parameter in your request:
xml mode does NOT apply on the
'f' protocol for obvious reasons.
'a'protocol : account
'a' protocol is used to
confirm an account. It is used by <UIKey> to activate an
account that has been created by the registration page or via
'auth'protocol : authentication
'auth' protocol is used to
provide universal authentication services. It is used internally
by <UIKey> and by many sites built with Vae Soli!
Many authentication services rely on a simple pair of a User Account + Password. This is the very nature of <UIKey>: a target URL is associated to a key. Therefore, <UIKey> can serve as a generic authentication service.
When passwords are submitted to <UIKey>, they are NEVER stored as raw material. Instead, they're transformed and hashed in such a way that even <UIKey>'s personnel NEVER knows any password. This is what makes <UIKey> an ideal generic authentication service.
'c'protocol : create
'c' protocol is used to create
a key in the <UIKey> databases programmatically.
The creation of a key can be successful or can fail. You can indicate where UIKey must branch the execution in case of failure or even in case of success:
'cat'protocol : categories
'cat' protocol allows you to
retrieve keys of a given category, a given language, a given
country. Multiple categories can be extracted in one run with a
tokenized string of categories (';' is the separator):
… will extract all keys of category 1 or 4.
If you use more parameters, like
country, you will narrow the selection.
… will extract all keys of category 1 or 4 and whose language is
… will extract all keys of category 1 or 4 and whose language is
'fr' (French) and whose country context is set to
'US' (United States).
… this will do the same as before but will return the result in XML.
'cv'protocol : resumes / CVs
'd'protocol : document
This protocol is not ready yet. Many other protocols are
actually specialized and more specific 'document' protocols:
'del'protocol : delete
This protocol can be used by the owner of a key to remove the key from the <UIKey> registry.
Once a key has been removed from the registry there is NO way to restore it: that's what is meant by physically and permanently removed.
As stated before, only the owner of a key can delete it!
'edit'protocol : edit/modify
This protocol can be used by the owner of a key to change few of its properties:
http://www.ui.tl/?ed=public&desc=Here enter a valuable description&target=http://www.mydomain.com/res/
'ev'protocol : events
'f'protocol : follow
'f' protocol is used to
redirect the user to the target URL. You know a given key exists
in <UIKey> databases and you simply want to redirect the
user to the final destination: you follow the target
UIKey is the key to follow. The
'f' protocol works with any key
that is associated to a URL.
'j'protocol : jobs
'koo'protocol : keys of owner
'koo' protocol is there to
see what keys have been registered by a given owner.
The parameter that is expected in this protocol is not a key as
one may expect: it is rather the 'id' of the owner that is used.
If one needs to gain more information about the owner of a key,
then it is possible to use the
'n'protocol : news
'o'protocol : owner
'o' protocol is used to
provide information about the owner of a key.
'p'protocol : permalink
<UIKey>'s permalink shortens any URL. You can let <UIKey> create the key for you or you can try to force the key thanks to a prefix (if you're bit lucky though!). If the prefix already exists, <UIKey> will create an automatic key instead. Are you lucky today?
'p' protocol you can
create permalinks (also called short URLs) in
In its simplest form, only the
'p' parameter must
be passed as illustrated below:
In that case, <UIKey> responds in html. But … you can also inform <UIKey> where it needs to go in case of success or failure.
'qr'protocol : qr-code
'qr' protocol makes it
easy to create QR-Codes in <UIKey>. This protocol is
actually used internally by <UIKey> for example in the
'r'protocol : recommend
'r' protocol is used to
recommend a key. With this, users of <UIKey> can determine
which keys are popular for them.
It is all possible to condemn a key/target URL with the same protocol. Example : "http://www.uikey.org/?r=UIKey&no".
http://www.ui.tl/?r=UIKey // Recommend (counter is incremented) http://www.ui.tl/?r=UIKey&no // Do not recomment (counter is decremented)
's'protocol : statistics
'su'protocol : subscribe
't'protocol : target
't' protocol is the reverse of
'w' protocol protocol of <UIKey> : given
a target URI it will return the associated key. Example:
'w'protocol : whatis
'w' protocol is the most widely spread
protocol of <UIKey>. It gives the details of a key. Whatis this
'whoami'protocol : who am I
'whoami' protocol can be used
when the visitor has signed in. In such case it makes it easy to
remember with which identity the visitor operates on
The protocol does not expect any parameter: the current user identity is assumed.
Keys can be associated to one or multiple categories. The categories used by <UIKey> are NOT fixed yet: so far, they're a combination of NACE, NAF, MCC codes and object types.
At the moment these categories become FINAL they will be commmunicated to the public.
 … www.uikey.org and www.ui.tl point to exactly the same site: they are aliases.