The full API can be found here. Each scheme is it's own type so you can dispatch based on the scheme of the uri. A uri can be created either with the generic constructor (uri ) or with a scheme specific constructor (http "//common-lisp.net/projects/cl-uri" :fragment "download").