API
Content
URI schema
Example URI
The basic syntax for the URIID URIs are the central part of the API. All URIs follow the schema as given in the example URI. They consist of three essential parts: prefix, type, and identifier.
Prefix
The prefix has the fixed value of "https://uriid.org/".
Type
The type provides the type of the identifier. It is a UUID or an alias. It matches the regex /^([0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}|[a-z]+|[a-zA-Z])$/.
If the type is an alias it needs to be translated into a UUID via the list of aliases. If it is a single letter it also needs to be case normalised according to the rules of the type.
Defined aliases
Please see also the machine-readable list at /v0/types.json .
Alias | Real type | Format | Normalisation |
---|---|---|---|
uuid | 8be115d2-dc2f-4a98-91e1-a6e3075cbc31 | /^[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/ | Convert to lower case |
oid | d08dc905-bbf6-4183-b219-67723c3c8374 | /^[1-3](?:\.[1-9][0-9]*)+$/ | None |
uri | a8d1637d-af19-49e9-9ef8-6bc1fbcf6439 | /^[a-zA-Z][a-zA-Z0-9\+\.\-]+:/ | As per RFC 3986 |
wikidata-identifier | ce7aae1e-a210-4214-926a-0ebca56d77e3 | /^[QPL][1-9][0-9]*$/ | Convert to upper case |
gtin | 82d529be-0f00-4b4f-a43f-4a22de5f5312 | /^[0-9]*$/ | Strip leading zeros. Strip leading/tailing spaces. |
sid | f87a38cb-fd13-4e15-866c-e49901adbec5 | /^[0-9]*$/ | Strip leading zeros. Strip leading/tailing spaces. |
Identifier
The identifier is the type specific part. The identifier forms a pair with its type which makes it meaningful. Care must be taken that this is an opaque string. It may contain all reserved characters (including "/") and all unicode characters. Therefore, this part must always be correctly escaped.
Query
Optionally a URL may be followed by any number of query parameters. Applications may use query parameters in order to include additional information such as rendering hints. It is strongly recommended to keep the amount of query parameters to a minimum. Query parameter names must be valid UUIDs (case-insensitive, lowercase recommended) or from the list of well known parameters.
A query parameter name may be prefixed by a single "-" to mark them as required. Required parameters indicate that the parameter needs to be understood in order to correctly handle the information. It is strongly recommended to avoid the need for required query parameters. Parameters not marked as required cannot be stripped from the URI while any other may be stripped.
Well known parameters
Name | Use |
---|---|
language-tags | Sets the language to be used for displaying information on the subject. Uses the same format as HTTP's Accept-Language:-header. |
API endpoints
All endpoints are mounted below https://api.uriid.org. Unless otherwise indicated they accept the GET-method.
/v0/types.json
This endpoint lists all known type aliases. For aliases the type is referenced in the alias_for property.
This may also include additional information on types.
Example output
{ "types": { "uuid": { "alias_for": "8be115d2-dc2f-4a98-91e1-a6e3075cbc31" }, ... } }